]>
Commit | Line | Data |
---|---|---|
ed45f693 | 1 | #ifndef ALIANALYSISTASKCHECKPERFORMANCECASCADEPP276_H |
2 | #define ALIANALYSISTASKCHECKPERFORMANCECASCADEPP276_H | |
3 | ||
4 | /* See cxx source for full Copyright notice */ | |
5 | ||
6 | // //----------------------------------------------------------------- | |
7 | // // AliAnalysisTaskCheckPerformanceCascadePbPb class | |
8 | // // This task is for a performance study of cascade identification. | |
9 | // // It works with MC info and ESD and AOD tree | |
74457772 | 10 | // // Origin : A.Maire Jan2010, antonin.maire@ires.in2p3.fr |
ed45f693 | 11 | // // Modified : M.Nicassio Feb2011, maria.nicassio@ba.infn.it |
74457772 | 12 | // // Modified : D.Colella Feb2012, domenico.colella@ba.infn.it |
ed45f693 | 13 | // //----------------------------------------------------------------- |
14 | ||
15 | class TList; | |
16 | class TH1F; | |
17 | class TH2F; | |
18 | class TH3F; | |
19 | ||
20 | class AliESDEvent; | |
21 | class AliESDtrackCuts; | |
22 | class AliPhysicsSelection; | |
23 | class AliCFContainer; | |
24 | class AliPIDResponse; | |
df984074 | 25 | class AliAnalysisUtils; |
ed45f693 | 26 | |
27 | #include "AliAnalysisTaskSE.h" | |
28 | ||
29 | class AliAnalysisTaskCheckPerformanceCascadepp276 : public AliAnalysisTaskSE { | |
30 | public: | |
31 | ||
32 | AliAnalysisTaskCheckPerformanceCascadepp276(); | |
33 | AliAnalysisTaskCheckPerformanceCascadepp276(const char *name ); | |
34 | virtual ~AliAnalysisTaskCheckPerformanceCascadepp276(); | |
35 | ||
36 | virtual void UserCreateOutputObjects(); | |
37 | virtual void UserExec(Option_t *option); | |
38 | virtual void Terminate(Option_t *); | |
39 | ||
df984074 | 40 | void SetAnalysisType (const char* analysisType = "ESD") { fAnalysisType = analysisType; } |
41 | void SetCollidingSystem (const char* collidingSystem = "pp" ) { fCollidingSystem = collidingSystem; } | |
42 | void SetRelaunchV0CascVertexers (Bool_t rerunV0CascVertexers = 0 ) { fkRerunV0CascVertexers = rerunV0CascVertexers; } | |
43 | void SetSDDSelection (Bool_t sddOnSelection = kTRUE) { fkSDDselectionOn = sddOnSelection; } | |
44 | void SetQualityCutZprimVtxPos (Bool_t qualityCutZprimVtxPos = kTRUE) { fkQualityCutZprimVtxPos = qualityCutZprimVtxPos; } | |
45 | void SetRejectEventPileUp (Bool_t rejectPileUp = kTRUE) { fkRejectEventPileUp = rejectPileUp; } | |
46 | void SetQualityCutNoTPConlyPrimVtx (Bool_t qualityCutNoTPConlyPrimVtx = kTRUE) { fkQualityCutNoTPConlyPrimVtx = qualityCutNoTPConlyPrimVtx; } | |
47 | void SetQualityCutTPCrefit (Bool_t qualityCutTPCrefit = kTRUE) { fkQualityCutTPCrefit = qualityCutTPCrefit; } | |
48 | void SetQualityCutnTPCcls (Bool_t qualityCutnTPCcls = kTRUE) { fkQualityCutnTPCcls = qualityCutnTPCcls; } | |
49 | void SetWithSDDOn (Bool_t withsddOn = kTRUE) { fwithSDD = withsddOn; } | |
50 | void SetQualityCutMinnTPCcls (Int_t minnTPCcls = 70 ) { fMinnTPCcls = minnTPCcls; } | |
51 | void SetExtraSelections (Bool_t extraSelections = 0 ) { fkExtraSelections = extraSelections; } | |
52 | void SetVertexRange (Float_t vtxrange = 0. ) { fVtxRange = vtxrange; } | |
53 | void SetVertexRangeMin (Float_t vtxrangemin = 0. ) { fVtxRangeMin = vtxrangemin; } | |
54 | void SetApplyAccCut (Bool_t acccut = kFALSE){ fApplyAccCut = acccut; } | |
55 | void SetMinptCutOnDaughterTracks (Float_t minptdaughtrks = 0. ) { fMinPtCutOnDaughterTracks = minptdaughtrks; } | |
56 | void SetEtaCutOnDaughterTracks (Float_t etadaughtrks = 0. ) { fEtaCutOnDaughterTracks = etadaughtrks; } | |
ed45f693 | 57 | |
58 | private: | |
59 | // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ... | |
60 | // your data member object is created on the worker nodes and streaming is not needed. | |
61 | // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14 | |
62 | ||
63 | TString fAnalysisType; // "ESD" or "AOD" analysis type | |
64 | AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition | |
df984074 | 65 | AliAnalysisUtils *fUtils; |
66 | TString fCollidingSystem; // "pPb" or "pp" colliding system | |
67 | // AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition | |
ed45f693 | 68 | AliPIDResponse *fPIDResponse; //! PID response object |
df984074 | 69 | // AliAnalysisUtils *fUtils; |
ed45f693 | 70 | |
71 | Bool_t fkRerunV0CascVertexers; // Boolean : kTRUE = relaunch both V0 + Cascade vertexers | |
93900229 | 72 | Bool_t fkSDDselectionOn; // Boolean : kTRUE = enable the selection based on the SDD status |
ed45f693 | 73 | Bool_t fkQualityCutZprimVtxPos; // Boolean : kTRUE = cut on the prim.vtx z-position |
74 | Bool_t fkRejectEventPileUp; // Boolean : kTRUE = enable the rejection of events tagged as pile-up by SPD (AliESDEvent::IsPileupFromSPD) | |
75 | Bool_t fkQualityCutNoTPConlyPrimVtx; // Boolean : kTRUE = prim vtx should be SPD or Tracking vertex | |
76 | Bool_t fkQualityCutTPCrefit; // Boolean : kTRUE = ask for TPCrefit for the 3 daughter tracks | |
93900229 | 77 | Bool_t fkQualityCutnTPCcls; // Boolean : kTRUE = ask for n TPC clusters for each daughter track |
78 | Bool_t fwithSDD; // Boolean : kTRUE = select events with SDD reco | |
79 | Int_t fMinnTPCcls; // Boolean : set the value for the minimum number of TPC clusters | |
ed45f693 | 80 | Bool_t fkExtraSelections; // Boolean : kTRUE = apply tighter selections, before starting the analysis |
81 | Float_t fVtxRange; // to select events with |zvtx|<fVtxRange cm | |
93900229 | 82 | Float_t fVtxRangeMin; // to select events with |zvtx|>fVtxRangeMin cm |
ed45f693 | 83 | Bool_t fApplyAccCut; // flag to apply acceptance cuts to MC cascades |
84 | Float_t fMinPtCutOnDaughterTracks; // minimum pt cut on daughter tracks | |
85 | Float_t fEtaCutOnDaughterTracks; // pseudorapidity cut on daughter tracks | |
86 | ||
87 | Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related (if fkRerunV0CascVertexers) | |
88 | Double_t fCascSels[8]; // Array to store the 8 values for the different selections Casc. related (if fkRerunV0CascVertexers) | |
89 | ||
df984074 | 90 | TList *fListHistCascade; //! List of Cascade histograms |
ed45f693 | 91 | // - General Plots |
92 | // Cascade multiplicity plots | |
93 | TH1F *fHistCascadeMultiplicityBeforeAnySel; | |
94 | TH1F *fHistCascadeMultiplicityAfterSDDSel; | |
95 | TH1F *fHistCascadeMultiplicityAfterPhysicsSel; | |
ed45f693 | 96 | TH1F *fHistCascadeMultiplicityForSelEvtNoTPCOnly; |
97 | TH1F *fHistCascadeMultiplicityForSelEvtNoTPCOnlyNoPileup; | |
74457772 | 98 | TH1F *fHistCascadeMultiplicityAfterVertexCutSel; |
ed45f693 | 99 | TH1F *fHistnXiPlusPerEvTot; // After any event selections, in all the eta and pt range |
100 | TH1F *fHistnXiMinusPerEvTot; // After any event selections, in all the eta and pt range | |
101 | TH1F *fHistnOmegaPlusPerEvTot; // After any event selections, in all the eta and pt range | |
102 | TH1F *fHistnOmegaMinusPerEvTot; // After any event selections, in all the eta and pt range | |
103 | TH1F *fHistnXiPlusPerEv; // After any event selections, in the detector acceptance and over a pt minimum | |
104 | TH1F *fHistnXiMinusPerEv; // After any event selections, in the detector acceptance and over a pt minimum | |
105 | TH1F *fHistnOmegaPlusPerEv; // After any event selections, in the detector acceptance and over a pt minimum | |
106 | TH1F *fHistnOmegaMinusPerEv; // After any event selections, in the detector acceptance and over a pt minimum | |
107 | TH1F *fHistnAssoXiMinus; // For the Reconstructed-Associated cascades | |
108 | TH1F *fHistnAssoXiPlus; // For the Reconstructed-Associated cascades | |
109 | TH1F *fHistnAssoOmegaMinus; // For the Reconstructed-Associated cascades | |
110 | TH1F *fHistnAssoOmegaPlus; // For the Reconstructed-Associated cascades | |
111 | // Tracks multiplicity plots | |
112 | TH1F *fHistTrackMultiplicityBeforeAnySel; | |
113 | TH1F *fHistTrackMultiplicityAfterSDDSel; | |
74457772 | 114 | TH1F *fHistTrackMultiplicityAfterPhysicsSel; |
ed45f693 | 115 | TH1F *fHistTrackMultiplicityForSelEvtNoTPCOnly; |
116 | TH1F *fHistTrackMultiplicityForSelEvtNoTPCOnlyNoPileup; | |
74457772 | 117 | TH1F *fHistTrackMultiplicityAfterVertexCutSel; |
ed45f693 | 118 | // Vertex position plots (BestVertex) |
74457772 | 119 | TH1F *fHistPVx; // After any selections but before |Z| < 10 cm |
120 | TH1F *fHistPVy; // After any selections but before |Z| < 10 cm | |
121 | TH1F *fHistPVz; // After any selections but before |Z| < 10 cm | |
ed45f693 | 122 | TH1F *fHistPVxAnalysis; // After any event selections |
123 | TH1F *fHistPVyAnalysis; // After any event selections | |
124 | TH1F *fHistPVzAnalysis; // After any event selections | |
125 | // - Plots before Physics Selection | |
126 | TH3D *f3dHistGenPtVsGenYvsNtracksXiMinus; // After the SDD event selection (For efficinecy calculation) | |
127 | TH3D *f3dHistGenPtVsGenctauvsYXiMinus; // After the SDD event selection (For efficinecy calculation) | |
128 | TH3D *f3dHistGenPtVsGenYvsNtracksXiPlus; // After the SDD event selection (For efficinecy calculation) | |
129 | TH3D *f3dHistGenPtVsGenctauvsYXiPlus; // After the SDD event selection (For efficinecy calculation) | |
130 | TH3D *f3dHistGenPtVsGenYvsNtracksOmegaMinus; // After the SDD event selection (For efficinecy calculation) | |
131 | TH3D *f3dHistGenPtVsGenctauvsYOmegaMinus; // After the SDD event selection (For efficinecy calculation) | |
132 | TH3D *f3dHistGenPtVsGenYvsNtracksOmegaPlus; // After the SDD event selection (For efficinecy calculation) | |
133 | TH3D *f3dHistGenPtVsGenctauvsYOmegaPlus; // After the SDD event selection (For efficinecy calculation) | |
134 | ||
135 | // - Generated cascade plots | |
136 | // After all the event selections | |
137 | //Xi- | |
138 | TH1F *fHistEtaGenCascXiMinus; // In all the eta and pt range (as they are generated) | |
139 | TH1F *fHistThetaGenCascXiMinus; // In all the eta and pt range (as they are generated) | |
140 | TH3D *f3dHistGenPtVsGenYvsNtracksXiMinusPhysEff; // | |
141 | TH3D *f3dHistGenPtVsGenctauvsYXiMinusPhysEff; // | |
142 | TH2D *f2dHistGenPtVsGenYFdblXiMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
143 | TH1F *fHistThetaLambdaXiMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
144 | TH1F *fHistThetaBachXiMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
145 | TH1F *fHistThetaMesDghterXiMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
146 | TH1F *fHistThetaBarDghterXiMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
147 | TH1F *fHistPtBachXiMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
148 | TH1F *fHistPtMesDghterXiMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
149 | TH1F *fHistPtBarDghterXiMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
150 | //Xi+ | |
151 | TH1F *fHistEtaGenCascXiPlus; // In all the eta and pt range (as they are generated) | |
152 | TH1F *fHistThetaGenCascXiPlus; // In all the eta and pt range (as they are generated) | |
153 | TH3D *f3dHistGenPtVsGenYvsNtracksXiPlusPhysEff; // | |
154 | TH3D *f3dHistGenPtVsGenctauvsYXiPlusPhysEff; // | |
155 | TH2D *f2dHistGenPtVsGenYFdblXiPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
156 | TH1F *fHistThetaLambdaXiPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
157 | TH1F *fHistThetaBachXiPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
158 | TH1F *fHistThetaMesDghterXiPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
159 | TH1F *fHistThetaBarDghterXiPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
160 | TH1F *fHistPtBachXiPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
161 | TH1F *fHistPtMesDghterXiPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
162 | TH1F *fHistPtBarDghterXiPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
163 | //Omega- | |
164 | TH1F *fHistEtaGenCascOmegaMinus; // In all the eta and pt range (as they are generated) | |
165 | TH1F *fHistThetaGenCascOmegaMinus; // In all the eta and pt range (as they are generated) | |
166 | TH3D *f3dHistGenPtVsGenYvsNtracksOmegaMinusPhysEff; // | |
167 | TH3D *f3dHistGenPtVsGenctauvsYOmegaMinusPhysEff; // | |
168 | TH2D *f2dHistGenPtVsGenYFdblOmegaMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
169 | TH1F *fHistThetaLambdaOmegaMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
170 | TH1F *fHistThetaBachOmegaMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
171 | TH1F *fHistThetaMesDghterOmegaMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
172 | TH1F *fHistThetaBarDghterOmegaMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
173 | TH1F *fHistPtBachOmegaMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
174 | TH1F *fHistPtMesDghterOmegaMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
175 | TH1F *fHistPtBarDghterOmegaMinus; // In the detector acceptance and over a pt minimum (Findable particle) | |
176 | //Omega+ | |
177 | TH1F *fHistEtaGenCascOmegaPlus; // In all the eta and pt range (as they are generated) | |
178 | TH1F *fHistThetaGenCascOmegaPlus; // In all the eta and pt range (as they are generated) | |
179 | TH3D *f3dHistGenPtVsGenYvsNtracksOmegaPlusPhysEff; // | |
180 | TH3D *f3dHistGenPtVsGenctauvsYOmegaPlusPhysEff; // | |
181 | TH2D *f2dHistGenPtVsGenYFdblOmegaPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
182 | TH1F *fHistThetaLambdaOmegaPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
183 | TH1F *fHistThetaBachOmegaPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
184 | TH1F *fHistThetaMesDghterOmegaPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
185 | TH1F *fHistThetaBarDghterOmegaPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
186 | TH1F *fHistPtBachOmegaPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
187 | TH1F *fHistPtMesDghterOmegaPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
188 | TH1F *fHistPtBarDghterOmegaPlus; // In the detector acceptance and over a pt minimum (Findable particle) | |
189 | ||
190 | // - Associated to MC cascade plots | |
191 | TH1F *fHistMassXiMinus; // For the Reconstructed-Associated cascades | |
192 | TH1F *fHistMassXiPlus; // For the Reconstructed-Associated cascades | |
193 | TH1F *fHistMassOmegaMinus; // For the Reconstructed-Associated cascades | |
194 | TH1F *fHistMassOmegaPlus; // For the Reconstructed-Associated cascades | |
195 | // Effective mass histos with combined PID | |
196 | TH1F *fHistMassWithCombPIDXiMinus; | |
197 | TH1F *fHistMassWithCombPIDXiPlus; | |
198 | TH1F *fHistMassWithCombPIDOmegaMinus; | |
199 | TH1F *fHistMassWithCombPIDOmegaPlus; | |
200 | // PID Probability versus MC Pt(bachelor track) | |
201 | TH2F *f2dHistPIDprobaKaonVsMCPtBach; | |
202 | TH2F *f2dHistPIDprobaPionVsMCPtBach; | |
203 | // Effective mass histos with perfect MC PID on the bachelor | |
204 | TH1F *fHistMassWithMcPIDXiMinus; | |
205 | TH1F *fHistMassWithMcPIDXiPlus; | |
206 | TH1F *fHistMassWithMcPIDOmegaMinus; | |
207 | TH1F *fHistMassWithMcPIDOmegaPlus; | |
208 | // Effective mass histos for the cascade candidates associated with MC | |
209 | TH1F *fHistAsMCMassXiMinus; | |
210 | TH1F *fHistAsMCMassXiPlus; | |
211 | TH1F *fHistAsMCMassOmegaMinus; | |
212 | TH1F *fHistAsMCMassOmegaPlus; | |
213 | // Generated Pt Vs generated y, for the cascade candidates associated with MC + Info Comb. PID | |
214 | TH2F *f2dHistAsMCandCombPIDGenPtVsGenYXiMinus; | |
215 | TH2F *f2dHistAsMCandCombPIDGenPtVsGenYXiPlus; | |
216 | TH2F *f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus; | |
217 | TH2F *f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus; | |
218 | // Generated Pt Vs generated y, for the cascade candidates associated with MC | |
219 | TH2F *f2dHistAsMCGenPtVsGenYXiMinus; | |
220 | TH2F *f2dHistAsMCGenPtVsGenYXiPlus; | |
221 | TH2F *f2dHistAsMCGenPtVsGenYOmegaMinus; | |
222 | TH2F *f2dHistAsMCGenPtVsGenYOmegaPlus; | |
223 | // Generated Eta of the the cascade candidates associated with MC | |
224 | TH1F *fHistAsMCGenEtaXiMinus; | |
225 | TH1F *fHistAsMCGenEtaXiPlus; | |
226 | TH1F *fHistAsMCGenEtaOmegaMinus; | |
227 | TH1F *fHistAsMCGenEtaOmegaPlus; | |
228 | // Resolution in Pt as function of generated Pt | |
229 | TH2F *f2dHistAsMCResPtXiMinus; | |
230 | TH2F *f2dHistAsMCResPtXiPlus; | |
231 | TH2F *f2dHistAsMCResPtOmegaMinus; | |
232 | TH2F *f2dHistAsMCResPtOmegaPlus; | |
233 | // Resolution in R(2D) as function of generated R | |
234 | TH2F *f2dHistAsMCResRXiMinus; | |
235 | TH2F *f2dHistAsMCResRXiPlus; | |
236 | TH2F *f2dHistAsMCResROmegaMinus; | |
237 | TH2F *f2dHistAsMCResROmegaPlus; | |
238 | // Resolution in phi as function of generated Pt | |
239 | TH2F *f2dHistAsMCResPhiXiMinus; | |
240 | TH2F *f2dHistAsMCResPhiXiPlus; | |
241 | TH2F *f2dHistAsMCResPhiOmegaMinus; | |
242 | TH2F *f2dHistAsMCResPhiOmegaPlus; | |
243 | // Correlation between proton (antiproton) daughter MC pt and Xi/Omega MC pt (to apply Geat/Fluka correction) | |
244 | TH2F *f2dHistAsMCptProtonMCptXiMinus; | |
245 | TH2F *f2dHistAsMCptAntiprotonMCptXiPlus; | |
246 | TH2F *f2dHistAsMCptProtonMCptOmegaMinus; | |
247 | TH2F *f2dHistAsMCptAntiprotonMCptOmegaPlus; | |
248 | // QA plots | |
249 | TH1F *fHistV0toXiCosineOfPointingAngle; | |
250 | TH2F *fHistV0CosineOfPointingAnglevsPtXi; | |
251 | TH2F *fHistV0CosineOfPointingAnglevsPtOmega; | |
252 | ||
253 | // Containers | |
254 | AliCFContainer *fCFContCascadePIDAsXiMinus; | |
255 | AliCFContainer *fCFContCascadePIDAsXiPlus; | |
256 | AliCFContainer *fCFContCascadePIDAsOmegaMinus; | |
257 | AliCFContainer *fCFContCascadePIDAsOmegaPlus; | |
258 | AliCFContainer *fCFContAsCascadeCuts; | |
259 | ||
260 | ||
261 | ||
262 | AliAnalysisTaskCheckPerformanceCascadepp276(const AliAnalysisTaskCheckPerformanceCascadepp276&); // not implemented | |
263 | AliAnalysisTaskCheckPerformanceCascadepp276& operator=(const AliAnalysisTaskCheckPerformanceCascadepp276&); // not implemented | |
264 | ||
265 | ClassDef(AliAnalysisTaskCheckPerformanceCascadepp276, 8); | |
266 | }; | |
267 | ||
268 | #endif |