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_
static std::string GetKinName(KinType)
virtual std::string GetString() const
static KinType GetKinType(const std::string &)
virtual double Eval(const std::vector< double > &) const
virtual std::string GetInputString() const
std::string Parse(const std::string &)
virtual std::vector< Smear::KinType > Variables() const
std::string mInput
Original formula (before parsing)