]>
Commit | Line | Data |
---|---|---|
5376e016 CP |
1 | #ifndef ALIANALYSISMUMUEVENTCUTTER_H |
2 | #define ALIANALYSISMUMUEVENTCUTTER_H | |
3 | ||
4 | /** | |
5 | * | |
6 | * \class AliAnalysisMuMuEventCutter | |
7 | * | |
8 | * \brief Various event cuts used in AliAnalysisTaskMuMu | |
9 | * | |
10 | * \author L. Aphecetche and J. Martin-Bianco | |
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: | |
26 | AliAnalysisMuMuEventCutter(TList* triggerClassesToConsider=0x0); | |
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"; } | |
43 | ||
44 | Bool_t IsAbsZBelowValue(const AliVEvent& event, const Double_t& z) const; | |
45 | void NameOfIsAbsZBelowValue(TString& name, const Double_t& z) const; | |
46 | ||
47 | Bool_t IsAbsZSPDBelowValue(const AliVEvent& event, const Double_t& z) const; | |
48 | void NameOfIsAbsZSPDBelowValue(TString& name, const Double_t& z) const; | |
49 | ||
50 | Bool_t IsSPDzVertexInRange(AliVEvent& event, const Double_t& zMin, const Double_t& zMax) const; | |
51 | void NameOfIsSPDzVertexInRange(TString& name, const Double_t& zMin, const Double_t& zMax) const; | |
52 | ||
53 | Bool_t IsSPDzQA(const AliVEvent& event/*, const AliVVertex& vertex2Test*/, const Double_t& zResCut, const Double_t& zDifCut) const; | |
54 | void NameOfIsSPDzQA(TString& name, const Double_t& zResCut, const Double_t& zDifCut) const; | |
55 | ||
56 | Bool_t HasSPDVertex(AliVEvent& event) const; | |
57 | void NameOfHasSPDVertex(TString& name) const { name = "HASSPD"; } | |
58 | ||
59 | Bool_t IsMeandNchdEtaInRange(AliVEvent& event, const Double_t& dNchdEtaMin, const Double_t& dNchdEtaMax) const; | |
60 | void NameOfIsMeandNchdEtaInRange(TString& name, const Double_t& dNchdEtaMin, const Double_t& dNchdEtaMax) const; | |
61 | ||
62 | Bool_t IsTZEROPileUp(const AliVEvent& event) const; | |
63 | void NameOfIsTZEROPileUp(TString& name) const { name="TZEROPILEUP"; } | |
64 | ||
65 | AliMuonEventCuts* MuonEventCuts() const; | |
66 | ||
67 | // enum EEventCut | |
68 | // { | |
69 | // kEventIR2PILEUP = BIT( 6), /// events with pile-up (using AliAnalysisUtils::IsOutOfBunchPileUp) | |
70 | // | |
71 | // kEventGOODVERTEX = BIT(10), /// events with a good vertex | |
72 | // kEventZPOS = BIT(14), /// events with z > 0 | |
73 | // kEventZNEG = BIT(15), /// events with z < 0 | |
74 | // | |
75 | // kEventTRKLETA1 = BIT(20), /// event with at least one tracklet in |eta| < fTrackletEtaCutValue[0] | |
76 | ||
77 | // kEvent0TVX = BIT(31), /// events with 0TVX L0 input | |
78 | // kEventV0AND = BIT(32), /// events with both 0V0C and 0V0A L0 inputs | |
79 | // kEvent0SM2 = BIT(33), /// events with 0SM2 L0 input | |
80 | // kEvent0MSL = BIT(34), /// events with 0MSL input | |
81 | // }; | |
82 | ||
83 | private: | |
84 | ||
0804b4cc | 85 | /// not implemented on purpose |
86 | AliAnalysisMuMuEventCutter& operator=(const AliAnalysisMuMuEventCutter& rhs); | |
87 | /// not implemented on purpose | |
88 | AliAnalysisMuMuEventCutter(const AliAnalysisMuMuEventCutter& rhs); | |
89 | ||
5376e016 CP |
90 | mutable AliMuonEventCuts* fMuonEventCuts; // common cuts for muon events (from Diego) |
91 | ||
92 | ClassDef(AliAnalysisMuMuEventCutter,1) // default event cutters for AliAnalysisTaskMuMu | |
93 | }; | |
94 | ||
95 | #endif |