Hall A ROOT/C++ Analyzer (podd)
Loading...
Searching...
No Matches
THaCut.h
Go to the documentation of this file.
1#ifndef Podd_THaCut_h_
2#define Podd_THaCut_h_
3
5//
6// THaCut
7//
9
10#include "THaFormula.h"
11
12class THaCut : public THaFormula {
13
14public:
15 THaCut();
16 THaCut( const char* name, const char* expression, const char* block,
17 const THaVarList* vlst = gHaVars, const THaCutList* clst = gHaCuts );
18 THaCut( const THaCut& ) = default;
19 THaCut& operator=( const THaCut& ) = default;
20 virtual ~THaCut() = default;
21
22 using THaFormula::Eval;
23
24 enum EvalMode { kModeErr = -1, kAND, kOR, kXOR };
25
26 void ClearResult() { fLastResult = false; }
27 // Requires ROOT >= 4.00/00
28 virtual Int_t DefinedVariable( TString& variable, Int_t& action );
29 virtual Double_t Eval();
30 // For backward compatibility
31 Bool_t EvalCut() { Eval(); return fLastResult; }
32 const char* GetBlockname() const { return fBlockname.Data(); }
33 EvalMode GetMode() const { return fMode; }
34 UInt_t GetNCalled() const { return fNCalled; }
35 UInt_t GetNPassed() const { return fNPassed; }
36 Bool_t GetResult() const { return fLastResult; }
37 virtual Bool_t IsArray() const { return false; }
38 virtual Bool_t IsVarArray() const { return false; }
39 virtual void Print( Option_t *opt="" ) const;
40 virtual void Reset();
41 virtual void SetBlockname( const Text_t* name );
42 virtual void SetName( const Text_t* name );
43 virtual void SetNameTitle( const Text_t* name, const Text_t* title );
44
45protected:
46 Bool_t fLastResult; // Result of last evaluation of this formula
47 TString fBlockname; // Name of block this cut belongs to
48 UInt_t fNCalled; // Number of times this cut has been evaluated
49 UInt_t fNPassed; // Number of times this cut was true when evaluated
50 EvalMode fMode; // Evaluation mode of array expressions (AND/OR etc)
51
52 Bool_t EvalElement( Int_t instance );
54
55 ClassDef(THaCut,0) // A logical cut (a.k.a. test)
56};
57
58#endif
int Int_t
unsigned int UInt_t
bool Bool_t
char Text_t
double Double_t
const char Option_t
#define ClassDef(name, id)
char name[80]
R__EXTERN class THaVarList * gHaVars
Definition THaGlobals.h:11
R__EXTERN class THaCutList * gHaCuts
Definition THaGlobals.h:12
virtual Double_t Eval()
Definition THaCut.cxx:90
virtual Bool_t IsArray() const
Definition THaCut.h:37
UInt_t fNPassed
Definition THaCut.h:49
virtual void SetBlockname(const Text_t *name)
Definition THaCut.cxx:258
EvalMode
Definition THaCut.h:24
@ kOR
Definition THaCut.h:24
@ kAND
Definition THaCut.h:24
@ kXOR
Definition THaCut.h:24
@ kModeErr
Definition THaCut.h:24
virtual Bool_t IsVarArray() const
Definition THaCut.h:38
EvalMode GetMode() const
Definition THaCut.h:33
Bool_t EvalCut()
Definition THaCut.h:31
UInt_t GetNPassed() const
Definition THaCut.h:35
virtual void SetNameTitle(const Text_t *name, const Text_t *title)
Definition THaCut.cxx:283
EvalMode ParsePrefix(TString &expr)
Definition THaCut.cxx:149
Bool_t fLastResult
Definition THaCut.h:46
UInt_t GetNCalled() const
Definition THaCut.h:34
virtual void Print(Option_t *opt="") const
Definition THaCut.cxx:200
virtual void SetName(const Text_t *name)
Definition THaCut.cxx:268
THaCut & operator=(const THaCut &)=default
EvalMode fMode
Definition THaCut.h:50
const char * GetBlockname() const
Definition THaCut.h:32
void ClearResult()
Definition THaCut.h:26
Bool_t EvalElement(Int_t instance)
Definition THaCut.cxx:84
Bool_t GetResult() const
Definition THaCut.h:36
TString fBlockname
Definition THaCut.h:47
virtual void Reset()
Definition THaCut.cxx:292
THaCut(const THaCut &)=default
THaCut()
Definition THaCut.cxx:25
virtual Int_t DefinedVariable(TString &variable, Int_t &action)
Definition THaCut.cxx:64
virtual ~THaCut()=default
UInt_t fNCalled
Definition THaCut.h:48
virtual Double_t Eval()
const char * Data() const