]>
Commit | Line | Data |
---|---|---|
5376e016 CP |
1 | #ifndef ALIANALYSISMUMUEVENTCUTTER_H |
2 | #define ALIANALYSISMUMUEVENTCUTTER_H | |
3 | ||
4 | /** | |
16560e8e | 5 | * |
5376e016 CP |
6 | * \class AliAnalysisMuMuEventCutter |
7 | * | |
8 | * \brief Various event cuts used in AliAnalysisTaskMuMu | |
9 | * | |
16560e8e | 10 | * \author L. Aphecetche and J. Martin Blanco |
5376e016 CP |
11 | * |
12 | */ | |
13 | ||
14 | #include "TObject.h" | |
15 | #include "TString.h" | |
16 | ||
17 | class AliMuonEventCuts; | |
18 | class TList; | |
19 | class AliVEvent; | |
20 | class AliVVertex; | |
21 | class AliInputEventHandler; | |
22 | ||
23 | class AliAnalysisMuMuEventCutter : public TObject | |
24 | { | |
25 | public: | |
16560e8e | 26 | AliAnalysisMuMuEventCutter(TList* triggerClassesToConsider=0x0, TList* triggerInputsMap=0x0); |
5376e016 CP |
27 | virtual ~AliAnalysisMuMuEventCutter(); |
28 | ||
29 | Bool_t SelectTriggerClass(const TString& firedTriggerClasses, TString& acceptedClasses, | |
30 | UInt_t L0, UInt_t L1, UInt_t L2) const; | |
31 | ||
32 | Bool_t IsTrue(const AliVEvent& /*event*/) const { return kTRUE; } | |
33 | void NameOfIsTrue(TString& name) const { name="ALL"; } | |
34 | ||
35 | Bool_t IsFalse(const AliVEvent& /*event*/) const { return kFALSE; } | |
36 | void NameOfIsFalse(TString& name) const { name="NONE"; } | |
37 | ||
38 | Bool_t IsPhysicsSelected(const AliInputEventHandler& eventHandler) const; | |
39 | void NameOfIsPhysicsSelected(TString& name) const { name="PSALL"; } | |
40 | ||
41 | Bool_t IsPhysicsSelectedVDM(const AliVEvent& event) const; | |
42 | void NameOfIsPhysicsSelectedVDM(TString& name) const { name="VDM"; } | |
16560e8e | 43 | |
44 | Bool_t IsMCEventNSD(const AliVEvent& event) const; | |
45 | void NameOfIsMCEventNSD(TString& name) const { name="NSD"; } | |
5376e016 CP |
46 | |
47 | Bool_t IsAbsZBelowValue(const AliVEvent& event, const Double_t& z) const; | |
48 | void NameOfIsAbsZBelowValue(TString& name, const Double_t& z) const; | |
49 | ||
50 | Bool_t IsAbsZSPDBelowValue(const AliVEvent& event, const Double_t& z) const; | |
51 | void NameOfIsAbsZSPDBelowValue(TString& name, const Double_t& z) const; | |
52 | ||
53 | Bool_t IsSPDzVertexInRange(AliVEvent& event, const Double_t& zMin, const Double_t& zMax) const; | |
54 | void NameOfIsSPDzVertexInRange(TString& name, const Double_t& zMin, const Double_t& zMax) const; | |
55 | ||
56 | Bool_t IsSPDzQA(const AliVEvent& event/*, const AliVVertex& vertex2Test*/, const Double_t& zResCut, const Double_t& zDifCut) const; | |
57 | void NameOfIsSPDzQA(TString& name, const Double_t& zResCut, const Double_t& zDifCut) const; | |
58 | ||
59 | Bool_t HasSPDVertex(AliVEvent& event) const; | |
60 | void NameOfHasSPDVertex(TString& name) const { name = "HASSPD"; } | |
61 | ||
62 | Bool_t IsMeandNchdEtaInRange(AliVEvent& event, const Double_t& dNchdEtaMin, const Double_t& dNchdEtaMax) const; | |
63 | void NameOfIsMeandNchdEtaInRange(TString& name, const Double_t& dNchdEtaMin, const Double_t& dNchdEtaMax) const; | |
64 | ||
65 | Bool_t IsTZEROPileUp(const AliVEvent& event) const; | |
66 | void NameOfIsTZEROPileUp(TString& name) const { name="TZEROPILEUP"; } | |
67 | ||
68 | AliMuonEventCuts* MuonEventCuts() const; | |
69 | ||
70 | // enum EEventCut | |
71 | // { | |
72 | // kEventIR2PILEUP = BIT( 6), /// events with pile-up (using AliAnalysisUtils::IsOutOfBunchPileUp) | |
73 | // | |
74 | // kEventGOODVERTEX = BIT(10), /// events with a good vertex | |
75 | // kEventZPOS = BIT(14), /// events with z > 0 | |
76 | // kEventZNEG = BIT(15), /// events with z < 0 | |
77 | // | |
78 | // kEventTRKLETA1 = BIT(20), /// event with at least one tracklet in |eta| < fTrackletEtaCutValue[0] | |
79 | ||
80 | // kEvent0TVX = BIT(31), /// events with 0TVX L0 input | |
81 | // kEventV0AND = BIT(32), /// events with both 0V0C and 0V0A L0 inputs | |
82 | // kEvent0SM2 = BIT(33), /// events with 0SM2 L0 input | |
83 | // kEvent0MSL = BIT(34), /// events with 0MSL input | |
84 | // }; | |
85 | ||
86 | private: | |
87 | ||
0804b4cc | 88 | /// not implemented on purpose |
89 | AliAnalysisMuMuEventCutter& operator=(const AliAnalysisMuMuEventCutter& rhs); | |
90 | /// not implemented on purpose | |
91 | AliAnalysisMuMuEventCutter(const AliAnalysisMuMuEventCutter& rhs); | |
92 | ||
5376e016 CP |
93 | mutable AliMuonEventCuts* fMuonEventCuts; // common cuts for muon events (from Diego) |
94 | ||
95 | ClassDef(AliAnalysisMuMuEventCutter,1) // default event cutters for AliAnalysisTaskMuMu | |
96 | }; | |
97 | ||
98 | #endif |