ROOT logo
Podd » SRC » THaCut

class THaCut: public THaFormula

 THaCut -- Class for a cut (a.k.a. test)

 This is a slightly expanded version of a THaFormula that supports
 statistics counters and caches the result of the last evaluation.

Function Members (Methods)

THaCut(const THaCut& rhs)
THaCut(const char* name, const char* expression, const char* block, const THaVarList* vlst = gHaVars, const THaCutList* clst = gHaCuts)
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_tTHaFormula::Compile(const char* expression = "")
virtual voidTFormula::Copy(TObject& formula) const
virtual Int_tTHaFormula::DefinedCut(TString& variable)
virtual Int_tTHaFormula::DefinedGlobalVariable(TString& variable)
virtual Int_tTHaFormula::DefinedSpecialFunction(TString& name)
virtual char*THaFormula::DefinedString(Int_t i)
virtual Double_tTHaFormula::DefinedValue(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_tTHaFormula::EvalInstance(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
const char*GetBlockname() 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)
THaCut::EvalModeGetMode() const
virtual const char*TNamed::GetName() const
UInt_tGetNCalled() const
virtual Int_tTHaFormula::GetNdata() const
virtual Int_tTFormula::GetNdim() const
virtual Int_tTFormula::GetNpar() const
UInt_tGetNPassed() 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
Bool_tGetResult() 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_tTHaFormula::IsError() const
virtual Bool_tTObject::IsFolder() const
Bool_tTHaFormula::IsInvalid() 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)
THaCut&operator=(const THaCut& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual voidTFormula::ProcessLinear(TString& replaceformula)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidReset()
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)
virtual voidSetBlockname(const Text_t* name)
voidTHaFormula::SetCutList(const THaCutList* lst)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidTHaFormula::SetList(const THaVarList* lst)
static voidTFormula::SetMaxima(Int_t maxop = 1000, Int_t maxpar = 1000, Int_t maxconst = 1000)
virtual voidSetName(const Text_t* name)
virtual voidSetNameTitle(const Text_t* name, const Text_t* 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
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
Bool_tEvalElement(Int_t instance)
Double_tTHaFormula::EvalInstanceUnchecked(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_tTHaFormula::GetNdataUnchecked() const
Int_t*TFormula::GetOper() const
Int_t*TFormula::GetOperOptimized() const
Int_tTHaFormula::Init(const char* name, const char* expression)
virtual Bool_tTHaFormula::IsString(Int_t oper) const
voidTFormula::MakePrimitive(const char* expr, Int_t pos)
THaCut::EvalModeParsePrefix(TString& expr)
virtual voidTHaFormula::RegisterFormula(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

TBitsTFormula::fAlreadyFound! cache for information
TStringfBlocknameName of block this cut belongs to
Double_t*TFormula::fConst[fNconst] Array of fNconst formula constants
const THaCutList*THaFormula::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_tTHaFormula::fInstanceCurrent instance to evaluate
Bool_tfLastResultResult of last evaluation of this formula
TObjArrayTFormula::fLinearPartsLinear parts if the formula is linear (contains '|' or "++")
THaCut::EvalModefModeEvaluation mode of array expressions (AND/OR etc)
UInt_tfNCalledNumber of times this cut has been evaluated
Int_tTFormula::fNOperOptimized!Number of operators after optimization
UInt_tfNPassedNumber of times this cut was true when evaluated
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>THaFormula::fVarDefGlobal variables referenced in formula
const THaVarList*THaFormula::fVarListPointer to list of variables

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

 Default constructor
THaCut(const char* name, const char* expression, const char* block, const THaVarList* vlst = gHaVars, const THaCutList* clst = gHaCuts)
 Create a cut 'name' according to 'expression'.
 The cut may use global variables from the list 'vlst' and other,
 previously defined cuts from 'clst'.

 Unlike the behavior of THaFormula, THaCuts do NOT store themselves in
 ROOT's list of functions. Otherwise existing cuts used in new cut
 expressions would get reparsed instead of queried. This wouldn't
 work properly with a non-default array evaluation mode (OR/XOR).
THaCut(const THaCut& rhs)
 Copy ctor
THaCut& operator=(const THaCut& rhs)
Int_t DefinedVariable(TString& variable, Int_t& action)
 Check if 'name' is in the list of existing cuts.
 If so, store pointer to the cut for use by DefinedValue().
 Otherwise, assume 'name' is a global variable and pass it on
 to THaFormula::DefinedVariable().
Bool_t EvalElement(Int_t instance)
Double_t Eval()
 Evaluate the cut and increment counters. The Double_t return value
 is awkward, but results are usually retrieved via GetResult anyway.
 Problems like this will go away if Eval() is templatized.
void Print(Option_t* opt = "") const
 Print this cut.
   "BRIEF" -- short (default)
   "FULL"  -- extended
   "LINE"  -- one-line (for listings)
   "STATS" -- one-line (listing of statistics only)
void SetBlockname(const Text_t* name)
 Set name of block (=group of cuts) for this cut.
 The block name is used only for informational purposes within the
 THaCut class.
void SetName(const Text_t* name)
 Set name of the cut
 This method overrides the one provided by TNamed
 so that the name can only be set if it is empty.
 This avoids problems with hash values since THaCuts are
 elements of a THashList.
 Alternatively, we could rehash the associated table(s), but that
 would be much more involved.
void SetNameTitle(const Text_t* name, const Text_t* title)
 Set name and formula of the object, only if not yet initialized
void Reset()
 Reset cut result and statistics counters
void ClearResult()
 Requires ROOT >= 4.00/00
Bool_t EvalCut()
 For backward compatibility
{ Eval(); return fLastResult; }
const char* GetBlockname() const
{ return fBlockname.Data(); }
EvalMode GetMode() const
{ return fMode; }
UInt_t GetNCalled() const
{ return fNCalled; }
UInt_t GetNPassed() const
{ return fNPassed; }
Bool_t GetResult() const
{ return fLastResult; }
Bool_t IsArray() const
{ return kFALSE; }
Bool_t IsVarArray() const
{ return kFALSE; }
EvalMode ParsePrefix(TString& expr)