ROOT logo
Podd » SRC » THaFormula

class THaFormula: public TFormula


 THaFormula

 A formula that is aware of the analyzer's global variables, similar
 to TFormula;s parameters. Unlike TFormula, an arbitrary number of
 global variables may be referenced in a THaFormula.

 THaFormulas containing arrays are arrays themselves. Each element
 (instance) of such an array formula may be evaluated separately.


Function Members (Methods)

public:
THaFormula()
THaFormula(const THaFormula& rhs)
THaFormula(const char* name, const char* formula, Bool_t do_register = kTRUE, const THaVarList* vlst = gHaVars, const THaCutList* clst = gHaCuts)
virtual~THaFormula()
voidTObject::AbstractMethod(const char* method) const
virtual voidTFormula::Analyze(const char* schain, Int_t& err, Int_t offset = 0)
virtual Bool_tTFormula::AnalyzeFunction(TString& chaine, Int_t& err, Int_t offset = 0)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTFormula::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual Int_tCompile(const char* expression = "")
virtual voidTFormula::Copy(TObject& formula) const
virtual Int_tDefinedCut(TString& variable)
virtual Int_tDefinedGlobalVariable(TString& variable)
virtual Int_tDefinedSpecialFunction(TString& name)
virtual char*DefinedString(Int_t i)
virtual Double_tDefinedValue(Int_t i)
virtual Int_tDefinedVariable(TString& variable, Int_t& action)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual Double_tEval()
virtual Double_tEval(Double_t, Double_t = 0.0, Double_t = 0.0, Double_t = 0.0) const
virtual Double_tEvalInstance(Int_t instance)
virtual Double_tTFormula::EvalPar(const Double_t* x, const Double_t* params = 0)
virtual Double_tTFormula::EvalParOld(const Double_t* x, const Double_t* params = 0)
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual TStringTFormula::GetExpFormula(Option_t* option = "") const
virtual const char*TObject::GetIconName() const
virtual const TObject*TFormula::GetLinearPart(Int_t i)
virtual const char*TNamed::GetName() const
virtual Int_tGetNdata() const
virtual Int_tTFormula::GetNdim() const
virtual Int_tTFormula::GetNpar() const
virtual Int_tTFormula::GetNumber() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tTFormula::GetParameter(Int_t ipar) const
Double_tTFormula::GetParameter(const char* name) const
virtual Double_t*TFormula::GetParameters() const
virtual voidTFormula::GetParameters(Double_t* params)
virtual const char*TFormula::GetParName(Int_t ipar) const
virtual Int_tTFormula::GetParNumber(const char* name) const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tIsArray() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
Bool_tIsError() const
virtual Bool_tTObject::IsFolder() const
Bool_tIsInvalid() const
virtual Bool_tTFormula::IsLinear()
virtual Bool_tTFormula::IsNormalized()
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tIsVarArray() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
THaFormula&operator=(const THaFormula& rhs)
voidTFormula::Optimize()
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
virtual voidTFormula::ProcessLinear(TString& replaceformula)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCutList(const THaCutList* lst)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetList(const THaVarList* lst)
static voidTFormula::SetMaxima(Int_t maxop = 1000, Int_t maxpar = 1000, Int_t maxconst = 1000)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
virtual voidTFormula::SetNumber(Int_t number)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTFormula::SetParameter(const char* name, Double_t parvalue)
virtual voidTFormula::SetParameter(Int_t ipar, Double_t parvalue)
virtual voidTFormula::SetParameters(const Double_t* params)
virtual voidTFormula::SetParameters(Double_t p0, Double_t p1, Double_t p2 = 0, Double_t p3 = 0, Double_t p4 = 0, Double_t p5 = 0, Double_t p6 = 0, Double_t p7 = 0, Double_t p8 = 0, Double_t p9 = 0, Double_t p10 = 0)MENU
virtual voidTFormula::SetParName(Int_t ipar, const char* name)
virtual voidTFormula::SetParNames(const char* name0 = "p0", const char* name1 = "p1", const char* name2 = "p2", const char* name3 = "p3", const char* name4 = "p4", const char* name5 = "p5", const char* name6 = "p6", const char* name7 = "p7", const char* name8 = "p8", const char* name9 = "p9", const char* name10 = "p10")MENU
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTFormula::Update()
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual Bool_tTFormula::CheckOperands(Int_t operation, Int_t& err)
virtual Bool_tTFormula::CheckOperands(Int_t leftoperand, Int_t rightoperartion, Int_t& err)
voidTFormula::ClearFormula(Option_t* option = "")
virtual voidTFormula::Convert(UInt_t fromVersion)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Double_tEvalInstanceUnchecked(Int_t instance)
Double_tTFormula::EvalParFast(const Double_t* x, const Double_t* params)
Double_tTFormula::EvalPrimitive(const Double_t* x, const Double_t* params)
Double_tTFormula::EvalPrimitive0(const Double_t* x, const Double_t* params)
Double_tTFormula::EvalPrimitive1(const Double_t* x, const Double_t* params)
Double_tTFormula::EvalPrimitive2(const Double_t* x, const Double_t* params)
Double_tTFormula::EvalPrimitive3(const Double_t* x, const Double_t* params)
Double_tTFormula::EvalPrimitive4(const Double_t* x, const Double_t* params)
Short_tTFormula::GetAction(Int_t code) const
Short_tTFormula::GetActionOptimized(Int_t code) const
Int_tTFormula::GetActionParam(Int_t code) const
Int_tTFormula::GetActionParamOptimized(Int_t code) const
Int_tGetNdataUnchecked() const
Int_t*TFormula::GetOper() const
Int_t*TFormula::GetOperOptimized() const
Int_tInit(const char* name, const char* expression)
virtual Bool_tIsString(Int_t oper) const
voidTFormula::MakePrimitive(const char* expr, Int_t pos)
voidTObject::MakeZombie()
Int_tTFormula::PreCompile()
virtual voidRegisterFormula(Bool_t add = kTRUE)
voidTFormula::SetAction(Int_t code, Int_t value, Int_t param = 0)
voidTFormula::SetActionOptimized(Int_t code, Int_t value, Int_t param = 0)
virtual Bool_tTFormula::StringToNumber(Int_t code)

Data Members

public:
static Option_t *constkPRINTBRIEF
static Option_t *constkPRINTFULL
protected:
TBitsTFormula::fAlreadyFound! cache for information
Double_t*TFormula::fConst[fNconst] Array of fNconst formula constants
const THaCutList*fCutListPointer to list of cuts
TString*TFormula::fExpr[fNoper] List of expressions
TString*TFormula::fExprOptimized![fNOperOptimized] List of expressions
TObjArrayTFormula::fFunctionsArray of function calls to make
Int_tfInstanceCurrent instance to evaluate
TObjArrayTFormula::fLinearPartsLinear parts if the formula is linear (contains '|' or "++")
Int_tTFormula::fNOperOptimized!Number of operators after optimization
TStringTNamed::fNameobject identifier
TString*TFormula::fNames[fNpar] Array of parameter names
Int_tTFormula::fNconstNumber of constants
Int_tTFormula::fNdimDimension of function (1=1-Dim, 2=2-Dim,etc)
Int_tTFormula::fNoperNumber of operators
Int_tTFormula::fNparNumber of parameters
Int_tTFormula::fNstringNumber of different constants character strings
Int_tTFormula::fNumberformula number identifier
Int_tTFormula::fNvalNumber of different variables in expression
TOperOffset*TFormula::fOperOffset![fNOperOptimized] Offsets of operrands
Int_t*TFormula::fOperOptimized![fNOperOptimized] List of operators. (See documentation for changes made at version 7)
G__p2memfuncTFormula::fOptimal!pointer to optimal function
Double_t*TFormula::fParams[fNpar] Array of fNpar parameters
TFormulaPrimitive**TFormula::fPredefined![fNPar] predefined function
TStringTNamed::fTitleobject title
vector<FVarDef_t>fVarDefGlobal variables referenced in formula
const THaVarList*fVarListPointer to list of variables

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

THaFormula()
 Default constructor
THaFormula(const char* name, const char* formula, Bool_t do_register = kTRUE, const THaVarList* vlst = gHaVars, const THaCutList* clst = gHaCuts)
 Create a formula 'expression' with name 'name' and symbolic variables
 from the list 'lst'.
Int_t Init(const char* name, const char* expression)
 Common initialization called from the constructors
THaFormula(const THaFormula& rhs)
 Copy ctor
~THaFormula()
 Destructor
THaFormula& operator=(const THaFormula& rhs)
Int_t Compile(const char* expression = "")
 Parse the given expression, or, if empty, parse the title.
 Return 0 on success, 1 if error in expression.
char* DefinedString(Int_t i)
 Get pointer to the i-th string variable. If the variable is not
 a string, return pointer to an empty string.
Bool_t IsString(Int_t oper) const
Double_t DefinedValue(Int_t i)
 Get value of i-th variable in the formula
 If the i-th variable is a cut, return its last result
 (calculated at the last evaluation).
 If the variable is a string, return value of its character value
Int_t DefinedVariable(TString& variable, Int_t& action)
 Check if name is in the list of global objects
Int_t DefinedCut(TString& variable)
 Check if 'name' is a known cut. If so, enter it in the local list of
 variables used in this formula.
Int_t DefinedGlobalVariable(TString& variable)
 Check if 'name' is a known global variable. If so, enter it in the
 local list of variables used in this formula.
Int_t DefinedSpecialFunction(TString& name)
 Check if 'name' is a predefined special function
Double_t Eval()
 Evaluate this formula
Double_t EvalInstance(Int_t instance)
 Evaluate this formula
Int_t GetNdataUnchecked() const
 Return minimum of sizes of all referenced arrays
Int_t GetNdata() const
 Get number of available instances of this formula
void Print(Option_t* option = "") const
 Print this formula to stdout
 Options:
   "BRIEF" -- short, one line
   "FULL"  -- full, multiple lines
void RegisterFormula(Bool_t add = kTRUE)
 Store/remove this formula in/from ROOT's list of functions
Double_t EvalInstanceUnchecked(Int_t instance)
Double_t Eval()
 Requires ROOT >= 4.02/04
Bool_t IsArray() const
{ return TestBit(kArrayFormula); }
Bool_t IsVarArray() const
{ return TestBit(kVarArray); }
Bool_t IsError() const
{ return TestBit(kError); }
Bool_t IsInvalid() const
{ return TestBit(kInvalid); }
void SetList(const THaVarList* lst)
{ fVarList = lst; }
void SetCutList(const THaCutList* lst)
{ fCutList = lst; }