eic-smear  1.0.3
A collection of ROOT classes for Monte Carlo events and a fast-smearing code simulating detector effects for the Electron-Ion Collider task force
FormulaString.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_FORMULASTRING_H_
11 #define INCLUDE_EICSMEAR_SMEAR_FORMULASTRING_H_
12 
13 #include <string>
14 #include <vector>
15 
16 #include <TObject.h>
17 
18 #include "eicsmear/smear/Smear.h" // For KinType enum
19 
20 class TFormula;
21 
22 namespace Smear {
23 
27 class FormulaString : public TObject {
28  public:
32  virtual ~FormulaString();
33 
40  FormulaString();
41 
59  explicit FormulaString(const std::string&);
60 
69  virtual double Eval(const std::vector<double>&) const;
70 
77  virtual std::vector<Smear::KinType> Variables() const;
78 
82  virtual std::string GetString() const;
83 
87  virtual std::string GetInputString() const;
88 
92  static std::string GetKinName(KinType);
93 
98  static KinType GetKinType(const std::string&);
99 
100  protected:
105  std::string Parse(const std::string&);
106 
107  TFormula* mFormula;
108  std::string mInput;
109  std::vector<Smear::KinType> mVariables;
110 
111  ClassDef(Smear::FormulaString, 1)
112 };
113 
114 } // namespace Smear
115 
116 #endif // INCLUDE_EICSMEAR_SMEAR_FORMULASTRING_H_
Smear::FormulaString::Eval
virtual double Eval(const std::vector< double > &) const
Evaluate the formula with the provided arguments.
Definition: FormulaString.cxx:86
Smear::FormulaString::~FormulaString
virtual ~FormulaString()
Destructor.
Definition: FormulaString.cxx:68
Smear::FormulaString::GetKinType
static KinType GetKinType(const std::string &)
Returns the KinType corresponding to the variable name, or kInvalidKinType if the name is invalid.
Definition: FormulaString.cxx:145
Smear
Definition: Acceptance.cxx:16
Smear::FormulaString::mFormula
TFormula * mFormula
Definition: FormulaString.h:107
Smear::FormulaString::GetString
virtual std::string GetString() const
Returns the processed formula string with variables substituted.
Definition: FormulaString.cxx:133
Smear.h
Smear::FormulaString::GetInputString
virtual std::string GetInputString() const
Returns the unprocessed input formula string.
Definition: FormulaString.cxx:141
Smear::FormulaString::mVariables
std::vector< Smear::KinType > mVariables
Definition: FormulaString.h:109
Smear::FormulaString::mInput
std::string mInput
Original formula (before parsing)
Definition: FormulaString.h:108
Smear::FormulaString
A formula described by a string with up to four variables.
Definition: FormulaString.h:27
Smear::FormulaString::Variables
virtual std::vector< Smear::KinType > Variables() const
Returns a vector of Smear::KinType corresponding to the variables named in the constructor string.
Definition: FormulaString.cxx:98
Smear::FormulaString::Parse
std::string Parse(const std::string &)
Process the input string, containing "P", "theta" etc into a version with "x", "y",...
Definition: FormulaString.cxx:102
Smear::FormulaString::FormulaString
FormulaString()
Default construtor.
Definition: FormulaString.cxx:75
Smear::KinType
KinType
Enumerator listing particle wise kinematic variables.
Definition: Smear.h:43
Smear::FormulaString::GetKinName
static std::string GetKinName(KinType)
Returns the name corresponding the a Smear::KinType.
Definition: FormulaString.cxx:153