]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckPerformanceCascadepp276.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Cascades / AliAnalysisTaskCheckPerformanceCascadepp276.h
CommitLineData
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
15class TList;
16class TH1F;
17class TH2F;
18class TH3F;
19
20class AliESDEvent;
21class AliESDtrackCuts;
22class AliPhysicsSelection;
23class AliCFContainer;
24class AliPIDResponse;
df984074 25class AliAnalysisUtils;
ed45f693 26
27#include "AliAnalysisTaskSE.h"
28
29class 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