]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliAnalysisMuMuCutRegistry.h
Merge branch 'TPCdev' of https://git.cern.ch/reps/AliRoot into TPCdev
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisMuMuCutRegistry.h
CommitLineData
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
19class AliVEvent;
16560e8e 20class AliAnalysisMuMuCutElementBar;
5376e016
CP
21class AliAnalysisMuMuCutCombination;
22class AliVParticle;
23class AliVEventHandler;
24
25class AliAnalysisMuMuCutRegistry : public TObject
26{
27public:
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
83private:
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
96private:
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