]>
Commit | Line | Data |
---|---|---|
5376e016 CP |
1 | #ifndef ALIANALYSISMUMUCUTREGISTRY_H |
2 | #define ALIANALYSISMUMUCUTREGISTRY_H | |
3 | ||
4 | /** | |
5 | * | |
6 | * \class AliAnalysisMuMuCutRegistry | |
7 | * | |
8 | * \brief Container of AliAnalysisMuMuCutElement and AliAnalysisMuMuCutCombination objects. | |
9 | * | |
10 | * \author L. Aphecetche (Subatech) | |
11 | * | |
12 | */ | |
13 | ||
14 | #include "TObject.h" | |
15 | #include "TString.h" | |
16 | #include "TMethodCall.h" | |
17 | #include "AliAnalysisMuMuCutElement.h" | |
18 | ||
19 | class AliVEvent; | |
16560e8e | 20 | class AliAnalysisMuMuCutElementBar; |
5376e016 CP |
21 | class AliAnalysisMuMuCutCombination; |
22 | class AliVParticle; | |
23 | class AliVEventHandler; | |
24 | ||
25 | class AliAnalysisMuMuCutRegistry : public TObject | |
26 | { | |
27 | public: | |
28 | AliAnalysisMuMuCutRegistry(); | |
29 | virtual ~AliAnalysisMuMuCutRegistry(); | |
30 | ||
31 | AliAnalysisMuMuCutElement* AddEventCut(TObject& cutClass, | |
16560e8e | 32 | const char* cutMethodName, |
33 | const char* cutMethodPrototype, | |
34 | const char* defaultParameters); | |
35 | ||
5376e016 | 36 | AliAnalysisMuMuCutElement* AddTrackCut(TObject& cutClass, |
16560e8e | 37 | const char* cutMethodName, |
38 | const char* cutMethodPrototype, | |
39 | const char* defaultParameters); | |
40 | ||
5376e016 CP |
41 | AliAnalysisMuMuCutElement* AddTrackPairCut(TObject& cutClass, |
42 | const char* cutMethodName, | |
43 | const char* cutMethodPrototype, | |
44 | const char* defaultParameters); | |
16560e8e | 45 | |
5376e016 CP |
46 | AliAnalysisMuMuCutElement* AddTriggerClassCut(TObject& cutClass, |
47 | const char* cutMethodName, | |
48 | const char* cutMethodPrototype, | |
49 | const char* defaultParameters); | |
50 | ||
51 | AliAnalysisMuMuCutElement* Not(const AliAnalysisMuMuCutElement& cutElement); | |
52 | ||
53 | AliAnalysisMuMuCutElement* AddCutElement(AliAnalysisMuMuCutElement* ce); | |
54 | ||
55 | Int_t AddCutCombination(const TObjArray& cutElements); | |
56 | ||
57 | Int_t AddCutCombination(AliAnalysisMuMuCutElement* ce1); | |
58 | Int_t AddCutCombination(AliAnalysisMuMuCutElement* ce1, AliAnalysisMuMuCutElement* ce2); | |
16560e8e | 59 | Int_t AddCutCombination(AliAnalysisMuMuCutElement* ce1, AliAnalysisMuMuCutElement* ce2, AliAnalysisMuMuCutElement* ce3); |
60 | Int_t AddCutCombination(AliAnalysisMuMuCutElement* ce1, AliAnalysisMuMuCutElement* ce2, AliAnalysisMuMuCutElement* ce3, | |
61 | AliAnalysisMuMuCutElement* ce4); | |
62 | Int_t AddCutCombination(AliAnalysisMuMuCutElement* ce1, AliAnalysisMuMuCutElement* ce2, AliAnalysisMuMuCutElement* ce3, | |
63 | AliAnalysisMuMuCutElement* ce4, AliAnalysisMuMuCutElement* ce5); | |
64 | Int_t AddCutCombination(AliAnalysisMuMuCutElement* ce1, AliAnalysisMuMuCutElement* ce2, AliAnalysisMuMuCutElement* ce3, | |
65 | AliAnalysisMuMuCutElement* ce4, AliAnalysisMuMuCutElement* ce5, AliAnalysisMuMuCutElement* ce6); | |
5376e016 | 66 | |
16560e8e | 67 | /// Get cut combinations of a given type |
5376e016 CP |
68 | const TObjArray* GetCutCombinations(AliAnalysisMuMuCutElement::ECutType type) const; |
69 | TObjArray* GetCutCombinations(AliAnalysisMuMuCutElement::ECutType type); | |
70 | ||
16560e8e | 71 | /// Get cut elements of a given type |
5376e016 CP |
72 | const TObjArray* GetCutElements(AliAnalysisMuMuCutElement::ECutType type) const; |
73 | TObjArray* GetCutElements(AliAnalysisMuMuCutElement::ECutType type); | |
74 | ||
75 | virtual void Print(Option_t* opt="") const; | |
76 | ||
77 | Bool_t AlwaysTrue(const AliVEvent& /*event*/) const { return kTRUE; } | |
78 | void NameOfAlwaysTrue(TString& name) const { name="ALL"; } | |
79 | Bool_t AlwaysTrue(const AliVEventHandler& /*eventHandler*/) const { return kTRUE; } | |
80 | Bool_t AlwaysTrue(const AliVParticle& /*part*/) const { return kTRUE; } | |
81 | Bool_t AlwaysTrue(const AliVParticle& /*p1*/, const AliVParticle& /*p2*/) const { return kTRUE; } | |
82 | ||
83 | private: | |
84 | ||
85 | /// not implemented on purpose | |
86 | AliAnalysisMuMuCutRegistry(const AliAnalysisMuMuCutRegistry& rhs); | |
87 | /// not implemented on purpose | |
88 | AliAnalysisMuMuCutRegistry& operator=(const AliAnalysisMuMuCutRegistry& rhs); | |
89 | ||
90 | AliAnalysisMuMuCutElement* CreateCutElement(AliAnalysisMuMuCutElement::ECutType expectedType, | |
91 | TObject& cutClass, | |
92 | const char* cutMethodName, | |
93 | const char* cutMethodPrototype, | |
94 | const char* defaultParameters); | |
95 | ||
96 | private: | |
97 | ||
98 | mutable TObjArray* fCutElements; // cut elements | |
99 | mutable TObjArray* fCutCombinations; // cut combinations | |
100 | ||
101 | ClassDef(AliAnalysisMuMuCutRegistry,1) // storage for cut pointers | |
102 | }; | |
103 | ||
104 | #endif |