28 class RooFormula :
public TNamed,
public RooPrintable {
32 RooFormula(
const char* name,
const char* formula,
const RooArgList& varList,
bool checkVariables =
true);
33 RooFormula(
const RooFormula& other,
const char* name=0);
34 virtual TObject* Clone(
const char* newName =
nullptr)
const {
return new RooFormula(*
this, newName);}
38 RooArgSet actualDependents()
const {
return usedVariables();}
39 Bool_t changeDependents(
const RooAbsCollection& newDeps, Bool_t mustReplaceAll, Bool_t nameChange) ;
43 RooAbsArg* getParameter(
const char* name)
const {
44 return usedVariables().find(name);
49 RooAbsArg* getParameter(Int_t index)
const {
50 return _origList.at(index);
53 Bool_t ok() {
return _tFormula !=
nullptr; }
55 Double_t eval(
const RooArgSet* nset=0)
const;
59 Bool_t reCompile(
const char* newFormula) ;
62 virtual void printValue(std::ostream& os)
const ;
63 virtual void printName(std::ostream& os)
const ;
64 virtual void printTitle(std::ostream& os)
const ;
65 virtual void printClassName(std::ostream& os)
const ;
66 virtual void printArgs(std::ostream& os)
const ;
67 void printMultiline(std::ostream& os, Int_t contents, Bool_t verbose=kFALSE, TString indent=
"")
const ;
69 virtual void Print(Option_t *options= 0)
const {
71 printStream(defaultPrintStream(),defaultPrintContents(options),defaultPrintStyle(options));
74 std::string formulaString()
const {
75 return _tFormula ? _tFormula->GetTitle() :
"";
79 RooFormula& operator=(
const RooFormula& other);
80 std::string processFormula(std::string origFormula)
const;
81 RooArgList usedVariables()
const;
82 std::string reconstructFormula(std::string internalRepr)
const;
83 std::vector<bool> findCategoryServers(
const RooAbsCollection& collection)
const;
86 std::vector<bool> _isCategory;
87 std::unique_ptr<TFormula> _tFormula;
89 ClassDef(RooFormula,0)