class THaFormula: public TFormula


     A THaFormula defines cuts and histogram expressions
     for the Hall A analyzer

  A THaFormula can contain any arithmetic expression including
  standard operators and mathematical functions separated by operators.
  Examples of valid expression:
          "x<y && sqrt(z)>3.2"

Function Members (Methods)

public:
THaFormula()
THaFormula(const THaFormula& rhs)
THaFormula(const char* name, const char* formula, 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(const TString& variable)
virtual Int_tDefinedGlobalVariable(const TString& variable)
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_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 TStringGetExpFormula(Option_t* opt = "") const
virtual const char*TObject::GetIconName() const
virtual const TObject*TFormula::GetLinearPart(Int_t i)
virtual const char*TNamed::GetName() 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_tTObject::IsEqual(const TObject* obj) const
Bool_tIsError() const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tTFormula::IsLinear()
virtual Bool_tTFormula::IsNormalized()
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
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 = "") constMENU
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(basic_ostream<char,char_traits<char> >& 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& insp, char* parent)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& 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:
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_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_t*TFormula::GetOper() const
Int_t*TFormula::GetOperOptimized() const
virtual Bool_tIsString(Int_t oper) const
voidTFormula::MakePrimitive(const char* expr, Int_t pos)
voidTObject::MakeZombie()
Int_tTFormula::PreCompile()
voidTFormula::SetAction(Int_t code, Int_t value, Int_t param = 0)
voidTFormula::SetActionOptimized(Int_t code, Int_t value, Int_t param = 0)

Data Members

public:
enum { kMAXCODES
};
enum EVariableType { kUndefined
kVariable
kCut
kString
};
enum TFormula::[unnamed] { kEnd
kAdd
kSubstract
kMultiply
kDivide
kModulo
kcos
ksin
ktan
kacos
kasin
katan
katan2
kfmod
kpow
ksq
ksqrt
kstrstr
kmin
kmax
klog
kexp
klog10
kpi
kabs
ksign
kint
kSignInv
krndm
kAnd
kOr
kEqual
kNotEqual
kLess
kGreater
kLessThan
kGreaterThan
kNot
kcosh
ksinh
ktanh
kacosh
kasinh
katanh
kStringEqual
kStringNotEqual
kBitAnd
kBitOr
kLeftShift
kRightShift
kexpo
kxexpo
kyexpo
kzexpo
kxyexpo
kgaus
kxgaus
kygaus
kzgaus
kxygaus
klandau
kxlandau
kylandau
kzlandau
kxylandau
kpol
kxpol
kypol
kzpol
kParameter
kConstant
kBoolOptimize
kStringConst
kVariable
kFunctionCall
kData
kUnary
kBinary
kThree
kDefinedVariable
kDefinedString
kPlusD
kPlusDD
kMultD
kMultDD
kBoolOptimizeOr
kBoolOptimizeAnd
kBoolSet
kFDM
kFD0
kFD1
kFD2
kFD3
kNotGlobal
kNormalized
kLinear
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
G__p2memfuncTFormula::fOptimal!pointer to optimal function
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
Bool_tfErrorFlag indicating error in expression
TString*TFormula::fExpr[fNoper] List of expressions
TString*TFormula::fExprOptimized![fNOperOptimized] List of expressions
TObjArrayTFormula::fFunctionsArray of function calls to make
TObjArrayTFormula::fLinearParts! Linear parts if the formula is linear (contains '|')
Int_tTFormula::fNOperOptimized!Number of operators after optimization
TStringTNamed::fNameobject identifier
TString*TFormula::fNames[fNpar] Array of parameter names
Int_tfNcodesNumber of global variables referenced in formula
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)
Double_t*TFormula::fParams[fNpar] Array of fNpar parameters
TFormulaPrimitive**TFormula::fPredefined![fNPar] predefined function
Bool_tfRegisterIf true, register this formula in ROOT's global list
TStringTNamed::fTitleobject title
THaFormula::FVarDef_t*fVarDefArray of variable definitions
const THaVarList*fVarListPointer to list of variables

Class Charts

Inheritance Chart:
TFormula
THaFormula
THaCut
THaVform

Function documentation

THaFormula(const char* name, const char* formula, const THaVarList* vlst = gHaVars, const THaCutList* clst = gHaCuts)
 Create a formula 'expression' with name 'name' and symbolic variables
 from the list 'lst'.
THaFormula(const THaFormula& rhs)
 Copy ctor
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.
~THaFormula()
 Destructor
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(const 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(const TString& variable)
 Check if 'name' is a known global variable. If so, enter it in the
 local list of variables used in this formula.
Double_t Eval( void )
 Evaluate this formula
TString GetExpFormula(Option_t* opt = "") const
 Override ROOT's TFormula::GetExpFormula because it does not handle
 kDefinedVariable and kDefinedString opcodes.
 For our purposes, the un-expanded expression is good enough
void Print(Option_t* option = "") const
 Print this formula to stdout
 Options:
   "BRIEF" -- short, one line
   "FULL"  -- full, multiple lines
THaFormula(const THaFormula& rhs)
{}
Double_t Eval()
Bool_t IsError()
{ return fError; }
void SetList(const THaVarList* lst)
{ fVarList = lst; }
void SetCutList(const THaCutList* lst)
{ fCutList = lst; }

Last change: Sat Nov 7 21:26:46 2009
Last generated: 2009-11-07 21:26

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.