]>
Commit | Line | Data |
---|---|---|
239a080a | 1 | #ifndef ALISPECTRABOTHEVENTCUTS_H |
2 | #define ALISPECTRABOTHEVENTCUTS_H | |
3 | ||
4 | /* See cxx source for full Copyright notice */ | |
5 | ||
6 | //------------------------------------------------------------------------- | |
7 | // AliSpectraBothEventCuts | |
8 | // | |
9 | // | |
10 | // | |
11 | // | |
12 | // Authors: Michele Floris, CERN, Philip Versteeg, UU, Redmer Bertens, UU | |
13 | //------------------------------------------------------------------------- | |
14 | ||
15 | class AliVEvent; | |
16 | class AliSpectraBothTrackCuts; | |
17 | //class AliSpectraBothHistoManager; | |
18 | ||
19 | #include "TH1I.h" | |
20 | #include "TNamed.h" | |
21 | #include "AliSpectraBothTrackCuts.h" | |
22 | class AliSpectraBothEventCuts : public TNamed | |
23 | { | |
24 | public: | |
25 | enum { kProcessedEvents = 0,kPhysSelEvents,kAcceptedEvents, kVtxRange, kVtxCentral, kVtxNoEvent, kQVector, kNVtxCuts}; | |
26 | enum {kDoNotCheckforSDD=0,kwithSDD,kwithoutSDD}; | |
27 | ||
28 | // Constructors | |
b3ea73e1 | 29 | AliSpectraBothEventCuts() : TNamed(), fAOD(0),fAODEvent(AliSpectraBothTrackCuts::kAODobject),fTrackBits(0), fIsMC(0), fCentEstimator(""), fUseCentPatchAOD049(0),fUseSDDPatchforLHC11a(kDoNotCheckforSDD),fTriggerSettings(AliVEvent::kMB),fTrackCuts(0), |
239a080a | 30 | fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fQVectorCutMin(0), fQVectorCutMax(0), fVertexCutMin(0), fVertexCutMax(0), fMultiplicityCutMin(0), fMultiplicityCutMax(0), fMaxChi2perNDFforVertex(0),fHistoCuts(0),fHistoVtxBefSel(0),fHistoVtxAftSel(0),fHistoEtaBefSel(0),fHistoEtaAftSel(0),fHistoNChAftSel(0),fHistoQVector(0),fHistoEP(0) {} |
31 | AliSpectraBothEventCuts(const char *name); | |
32 | virtual ~AliSpectraBothEventCuts() {} | |
33 | ||
34 | void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; }; | |
35 | Bool_t GetIsMC() const { return fIsMC;}; | |
b3ea73e1 | 36 | void SetCentEstimator(TString cent = "V0M") {fCentEstimator = cent; }; |
37 | TString GetCentFromV0() const { return fCentEstimator;}; | |
239a080a | 38 | |
39 | void SetUseCentPatchAOD049(Bool_t useCentPatchAOD049 = kFALSE) {fUseCentPatchAOD049 = useCentPatchAOD049; }; | |
40 | Bool_t GetUseCentPatchAOD049() const { return fUseCentPatchAOD049;}; | |
41 | void SetUseSDDPatchforLHC11a(Int_t useSDDPatchforLHC11a) {fUseSDDPatchforLHC11a=useSDDPatchforLHC11a;} ; | |
42 | Int_t GetUseSDDPatchforLHC11a() {return fUseSDDPatchforLHC11a;}; | |
43 | ||
1c23d41e | 44 | void SetTriggerSettings(UInt_t triggerSettings = AliVEvent::kMB) {fTriggerSettings = triggerSettings;}; |
45 | UInt_t GetTriggerSettings() {return fTriggerSettings;}; | |
46 | ||
47 | ||
48 | ||
239a080a | 49 | // Methods |
50 | Bool_t IsSelected(AliVEvent * aod,AliSpectraBothTrackCuts *trackcuts); | |
51 | Bool_t CheckVtxRange(); | |
52 | Bool_t CheckCentralityCut(); | |
53 | Bool_t CheckMultiplicityCut(); | |
54 | Bool_t CheckQVectorCut(); | |
55 | Bool_t CheckVtxChi2perNDF(); | |
56 | void SetCentralityCutMin(Float_t cut) { fCentralityCutMin = cut; } | |
57 | void SetCentralityCutMax(Float_t cut) { fCentralityCutMax = cut; } | |
58 | //void SetQVectorPosCut(Float_t min,Float_t max) { fQVectorPosCutMin = min; fQVectorPosCutMax = max; } | |
59 | //void SetQVectorNegCut(Float_t min,Float_t max) { fQVectorNegCutMin = min; fQVectorNegCutMax = max; } | |
60 | void SetQVectorCut(Float_t min,Float_t max) { fQVectorCutMin = min; fQVectorCutMax = max; } | |
61 | void SetVertexCut(Float_t min,Float_t max) { fVertexCutMin = min; fVertexCutMax = max; } | |
62 | void SetMultiplicityCut(Float_t min,Float_t max) { fMultiplicityCutMin = min; fMultiplicityCutMax = max; } | |
63 | void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;} | |
64 | void SetMaxChi2perNDFforVertex(Float_t cut) { fMaxChi2perNDFforVertex=cut;} | |
65 | ||
66 | UInt_t GetTrackType() const { return fTrackBits;} | |
67 | TH1I * GetHistoCuts() { return fHistoCuts; } | |
68 | TH1F * GetHistoVtxBefSel() { return fHistoVtxBefSel; } | |
69 | TH1F * GetHistoVtxAftSel() { return fHistoVtxAftSel; } | |
70 | TH1F * GetHistoEtaBefSel() { return fHistoEtaBefSel; } | |
71 | TH1F * GetHistoEtaAftSel() { return fHistoEtaAftSel; } | |
72 | TH1F * GetHistoNChAftSel() { return fHistoNChAftSel; } | |
73 | /* TH1F * GetHistoQVectorPos() { return fHistoQVectorPos; } */ | |
74 | /* TH1F * GetHistoQVectorNeg() { return fHistoQVectorNeg; } */ | |
75 | TH1F * GetHistoQVector() { return fHistoQVector; } | |
76 | TH1F * GetHistoEP() { return fHistoEP; } | |
77 | Float_t GetCentralityMin() const { return fCentralityCutMin; } | |
78 | Float_t GetCentralityMax() const { return fCentralityCutMax; } | |
79 | //Float_t GetQVectorPosCutMin() const { return fQVectorPosCutMin; } | |
80 | //Float_t GetQVectorPosCutMax() const { return fQVectorPosCutMax; } | |
81 | //Float_t GetQVectorNegCutMin() const { return fQVectorNegCutMin; } | |
82 | //Float_t GetQVectorNegCutMax() const { return fQVectorNegCutMax; } | |
83 | Float_t GetQVectorCutMin() const { return fQVectorCutMin; } | |
84 | Float_t GetQVectorCutMax() const { return fQVectorCutMax; } | |
85 | Float_t GetVertexCutMin() const { return fVertexCutMin; } | |
86 | Float_t GetVertexCutMax() const { return fVertexCutMax; } | |
87 | Float_t GetMultiplicityCutMin() const { return fMultiplicityCutMin; } | |
88 | Float_t GetMultiplicityCutMax() const { return fMultiplicityCutMax; } | |
89 | Float_t GetMaxChi2perNDFforVertex() const {return fMaxChi2perNDFforVertex;} | |
90 | ||
91 | void PrintCuts(); | |
92 | Double_t ApplyCentralityPatchAOD049(); | |
93 | ||
94 | Float_t NumberOfEvents() { return fHistoCuts->GetBinContent(kAcceptedEvents+1); } | |
95 | Float_t NumberOfProcessedEvents() { return fHistoCuts->GetBinContent(kProcessedEvents+1); } | |
96 | Float_t NumberOfPhysSelEvents() { return fHistoCuts->GetBinContent(kPhysSelEvents+1); } | |
97 | ||
98 | Long64_t Merge(TCollection* list); | |
99 | ||
100 | ||
101 | private: | |
102 | ||
103 | AliVEvent *fAOD; //! AOD event | |
104 | Int_t fAODEvent; // flag what type event is conected use values form AliSpeatraAODTrackCuts | |
105 | UInt_t fTrackBits; // Type of track to be used in the Qvector calculation | |
106 | Bool_t fIsMC;// true if processing MC | |
b3ea73e1 | 107 | TString fCentEstimator;// name of centrality estimator |
239a080a | 108 | Bool_t fUseCentPatchAOD049;// Patch for centrality selection on AOD049 |
109 | Int_t fUseSDDPatchforLHC11a; // if true will check for ALLNOTRD in fired trigger class | |
1c23d41e | 110 | UInt_t fTriggerSettings; // triger configuration |
239a080a | 111 | AliSpectraBothTrackCuts *fTrackCuts; //! track cuts |
112 | Bool_t fIsSelected; // True if cuts are selected | |
113 | Float_t fCentralityCutMin; // minimum centrality percentile | |
114 | Float_t fCentralityCutMax; // maximum centrality percentile | |
115 | /* Float_t fQVectorPosCutMin; // minimum qvecPos */ | |
116 | /* Float_t fQVectorPosCutMax; // maximum qvecPos */ | |
117 | /* Float_t fQVectorNegCutMin; // minimum qvecNeg */ | |
118 | /* Float_t fQVectorNegCutMax; // maximum qvecNeg */ | |
119 | Float_t fQVectorCutMin; // minimum qvecPos | |
120 | Float_t fQVectorCutMax; // maximum qvecPos | |
121 | Float_t fVertexCutMin; // minimum vertex position | |
122 | Float_t fVertexCutMax; // maximum vertex position | |
123 | Float_t fMultiplicityCutMin; // minimum multiplicity position | |
124 | Float_t fMultiplicityCutMax; // maximum multiplicity position | |
125 | Float_t fMaxChi2perNDFforVertex; // maximum value of Chi2perNDF of vertex | |
126 | TH1I *fHistoCuts; // Cuts statistics | |
127 | TH1F *fHistoVtxBefSel; // Vtx distr before event selection | |
128 | TH1F *fHistoVtxAftSel; // Vtx distr after event selection | |
129 | TH1F *fHistoEtaBefSel; // Eta distr before event selection | |
130 | TH1F *fHistoEtaAftSel; // Eta distr after event selection | |
131 | TH1F *fHistoNChAftSel; // NCh distr after event selection | |
132 | //TH1F *fHistoQVectorPos; // QVectorPos | |
133 | //TH1F *fHistoQVectorNeg; // QVectorNeg | |
134 | TH1F *fHistoQVector; // QVector | |
135 | TH1F *fHistoEP; // EP | |
136 | AliSpectraBothEventCuts(const AliSpectraBothEventCuts&); | |
137 | AliSpectraBothEventCuts& operator=(const AliSpectraBothEventCuts&); | |
138 | ||
b3ea73e1 | 139 | ClassDef(AliSpectraBothEventCuts, 5); |
239a080a | 140 | |
141 | }; | |
142 | #endif | |
143 |