Hall A ROOT/C++ Analyzer (podd)
Loading...
Searching...
No Matches
THaCutList.h
Go to the documentation of this file.
1#ifndef Podd_THaCutList_h_
2#define Podd_THaCutList_h_
3
5//
6// THaCutList.h
7//
9
10#include "THashList.h"
11#include "THaCut.h"
12#include "THaNamedList.h"
13
14class TList;
15class THaVarList;
16class THaPrintOption;
17
18// Utility class that provides the PrintOpt method
19class THaHashList : public THashList {
20public:
22 Int_t rehash = 0) : THashList(capacity,rehash) {}
23 explicit THaHashList(TObject* parent,
25 Int_t rehash = 0) : THashList(parent,capacity,rehash) {}
26 virtual ~THaHashList() = default;
27
28 virtual void PrintOpt( Option_t* opt ) const;
29 ClassDef(THaHashList,1) //A THashList list with a PrintOpt method
30};
31
33
34public:
35 static const char* const kDefaultBlockName;
36 static const char* const kDefaultCutFile;
37
39
40 THaCutList();
41 THaCutList( const THaCutList& clst );
42 explicit THaCutList( const THaVarList* lst );
43 virtual ~THaCutList();
44
45 virtual void Clear( Option_t* opt="" );
46 virtual void ClearAll( Option_t* opt="" );
47 virtual void ClearBlock( const char* block=kDefaultBlockName,
48 Option_t* opt="" );
49 virtual void Compile();
50 virtual Int_t Define( const char* cutname, const char* expr,
51 const char* block=kDefaultBlockName );
52 virtual Int_t Define( const char* cutname, const char* expr,
53 const THaVarList* lst,
54 const char* block=kDefaultBlockName );
55 virtual Int_t Eval();
56 virtual Int_t EvalBlock( const char* block=kDefaultBlockName );
57 THaCut* FindCut( const char* name ) const
58 { return static_cast<THaCut*>(fCuts->FindObject( name )); }
59 THaNamedList* FindBlock( const char* block ) const
60 { return static_cast<THaNamedList*>(fBlocks->FindObject( block )); }
61 const THashList* GetCutList() const { return fCuts; } //These might disappear
62 const THashList* GetBlockList() const { return fBlocks; } //in future versions
63 Int_t GetNblocks() const { return fBlocks->GetSize(); }
64 Int_t GetSize() const { return fCuts->GetSize(); }
65 virtual Int_t Load( const char* filename=kDefaultCutFile );
66 virtual void Print( Option_t* option="" ) const;
67 virtual void PrintCut( const char* cutname, Option_t* option="" ) const;
68 virtual void PrintBlock( const char* block=kDefaultBlockName,
69 Option_t* option="" ) const;
70 virtual void Reset();
71 virtual Int_t Result( const char* cutname = "", EWarnMode mode=kWarn );
72 virtual Int_t Remove( const char* cutname );
73 virtual Int_t RemoveBlock( const char* block=kDefaultBlockName );
74 virtual void SetList( THaVarList* lst );
75
76 static Int_t EvalBlock( const TList* plist );
77
78protected:
79 THaHashList* fCuts; //Hash list holding all cuts
80 THaHashList* fBlocks; //Hash list holding blocks of cuts.
81 //Elements of this table are THaNamedLists of THaCuts
82 const THaVarList* fVarList; //Pointer to list of variables
83
84 static void MakePrintOption( THaPrintOption& opt,
85 const TList* plist );
86
87 virtual void PrintHeader( const THaPrintOption& opt ) const;
88
89 ClassDef(THaCutList,0) //Hash list of TCuts with support for blocks of cuts
90};
91
92// Global utility function
94
95#endif
int Int_t
unsigned int UInt_t
const char Option_t
#define ClassDef(name, id)
char name[80]
UInt_t IntDigits(Int_t n)
virtual Int_t GetSize() const
Int_t GetNblocks() const
Definition THaCutList.h:63
virtual void PrintBlock(const char *block=kDefaultBlockName, Option_t *option="") const
virtual void PrintCut(const char *cutname, Option_t *option="") const
virtual void ClearBlock(const char *block=kDefaultBlockName, Option_t *opt="")
virtual void Clear(Option_t *opt="")
virtual ~THaCutList()
virtual void PrintHeader(const THaPrintOption &opt) const
THaHashList * fBlocks
Definition THaCutList.h:80
virtual Int_t RemoveBlock(const char *block=kDefaultBlockName)
virtual Int_t Eval()
virtual void Reset()
THaHashList * fCuts
Definition THaCutList.h:79
const THaVarList * fVarList
Definition THaCutList.h:82
virtual void SetList(THaVarList *lst)
virtual Int_t Load(const char *filename=kDefaultCutFile)
virtual Int_t Result(const char *cutname="", EWarnMode mode=kWarn)
virtual Int_t EvalBlock(const char *block=kDefaultBlockName)
virtual void Print(Option_t *option="") const
Int_t GetSize() const
Definition THaCutList.h:64
static const char *const kDefaultCutFile
Definition THaCutList.h:36
virtual Int_t Remove(const char *cutname)
static void MakePrintOption(THaPrintOption &opt, const TList *plist)
virtual void Compile()
THaNamedList * FindBlock(const char *block) const
Definition THaCutList.h:59
THaCut * FindCut(const char *name) const
Definition THaCutList.h:57
virtual Int_t Define(const char *cutname, const char *expr, const char *block=kDefaultBlockName)
const THashList * GetCutList() const
Definition THaCutList.h:61
virtual void ClearAll(Option_t *opt="")
const THashList * GetBlockList() const
Definition THaCutList.h:62
static const char *const kDefaultBlockName
Definition THaCutList.h:35
virtual ~THaHashList()=default
THaHashList(Int_t capacity=TCollection::kInitHashTableCapacity, Int_t rehash=0)
Definition THaCutList.h:21
THaHashList(TObject *parent, Int_t capacity=TCollection::kInitHashTableCapacity, Int_t rehash=0)
Definition THaCutList.h:23
virtual void PrintOpt(Option_t *opt) const
TObject * FindObject(const char *name) const override