]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/AliAnalysisTaskCheckPerformanceCascade.h
Request by Martin: added flag for big output
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisTaskCheckPerformanceCascade.h
CommitLineData
b67ec6f7 1#ifndef ALIANALYSISTASKCHECKPERFORMANCECASCADE_H
2#define ALIANALYSISTASKCHECKPERFORMANCECASCADE_H
3
4/* See cxx source for full Copyright notice */
5
7e504402 6// //-----------------------------------------------------------------
7// // AliAnalysisTaskCheckPerformanceCascade class
8// // This task is for a performance study of cascade identification.
9// // It works with MC info and ESD.
10// // Use with AOD tree = under development
11// // Origin : A.Maire Mar2009, antonin.maire@ires.in2p3.fr
12// // Modified : A.Maire Jan2010, antonin.maire@ires.in2p3.fr
13// //-----------------------------------------------------------------
b67ec6f7 14
15class TList;
16class TH1F;
17class TH2F;
18class AliESDEvent;
7e504402 19class AliESDpid;
c525f360 20class AliESDtrackCuts;
7e504402 21class AliCFContainer;
b67ec6f7 22
23#include "AliAnalysisTaskSE.h"
24
25class AliAnalysisTaskCheckPerformanceCascade : public AliAnalysisTaskSE {
26 public:
27
28 AliAnalysisTaskCheckPerformanceCascade();
29 AliAnalysisTaskCheckPerformanceCascade(const char *name );
9d670198 30 virtual ~AliAnalysisTaskCheckPerformanceCascade();
b67ec6f7 31
32 //virtual void ConnectInputData(Option_t *);
33 virtual void UserCreateOutputObjects();
34 virtual void UserExec(Option_t *option);
7e504402 35 virtual Int_t DoESDTrackWithTPCrefitMultiplicity(const AliESDEvent *lESDevent);
b67ec6f7 36 virtual void Terminate(Option_t *);
37
38 void SetDebugLevelCascade(Int_t lDebugCascade = 0) {fDebugCascade = lDebugCascade;}
39 void SetCollidingSystems (Short_t collidingSystems = 0) {fCollidingSystems = collidingSystems;}
b67ec6f7 40
c525f360 41 void SetAnalysisType (const char* analysisType = "ESD") { fAnalysisType = analysisType;}
42 void SetTriggerMaskType (const char* triggerMaskType = "kMB") { fTriggerMaskType = triggerMaskType;}
43
44 void SetRelaunchV0CascVertexers (Bool_t rerunV0CascVertexers = 0 ) { fkRerunV0CascVertexers = rerunV0CascVertexers; }
45 void SetQualityCutZprimVtxPos (Bool_t qualityCutZprimVtxPos = kTRUE) { fkQualityCutZprimVtxPos = qualityCutZprimVtxPos; }
46 void SetRejectEventPileUp (Bool_t rejectPileUp = kTRUE) { fkRejectEventPileUp = rejectPileUp; }
47 void SetQualityCutNoTPConlyPrimVtx (Bool_t qualityCutNoTPConlyPrimVtx = kTRUE) { fkQualityCutNoTPConlyPrimVtx = qualityCutNoTPConlyPrimVtx;}
48 void SetQualityCutTPCrefit (Bool_t qualityCutTPCrefit = kTRUE) { fkQualityCutTPCrefit = qualityCutTPCrefit; }
49 void SetQualityCut80TPCcls (Bool_t qualityCut80TPCcls = kTRUE) { fkQualityCut80TPCcls = qualityCut80TPCcls; }
50 void SetAlephParamFor1PadTPCCluster(Bool_t onePadTPCCluster = kTRUE) { fkIsDataRecoWith1PadTPCCluster = onePadTPCCluster ; }
51 void SetExtraSelections (Bool_t extraSelections = 0 ) { fkExtraSelections = extraSelections; }
9d670198 52
b67ec6f7 53 private:
9d670198 54 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
55 // your data member object is created on the worker nodes and streaming is not needed.
56 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
57
7e504402 58 Int_t fDebugCascade; // Denug Flag for this task devoted to cascade
59 TString fAnalysisType; // "ESD" or "AOD" analysis type
c525f360 60 TString fTriggerMaskType; // type of trigger to use in UserExec : AliVEvent::kMB or kHighMult ?
7e504402 61 Short_t fCollidingSystems; // 0 = pp collisions or 1 = AA collisions
62
c525f360 63 AliESDpid *fESDpid; // Tool data member to manage the TPC Bethe-Bloch info
64 AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition
9d670198 65 //TPaveText *fPaveTextBookKeeping; // TString to store all the relevant info necessary for book keeping (v0 cuts, cascade cuts, quality cuts, ...)
66
67 Bool_t fkRerunV0CascVertexers; // Boolean : kTRUE = relaunch both V0 + Cascade vertexers
68 Bool_t fkQualityCutZprimVtxPos; // Boolean : kTRUE = cut on the prim.vtx z-position
c525f360 69 Bool_t fkRejectEventPileUp; // Boolean : kTRUE = enable the rejection of events tagged as pile-up by SPD (AliESDEvent::IsPileupFromSPD)
9d670198 70 Bool_t fkQualityCutNoTPConlyPrimVtx; // Boolean : kTRUE = prim vtx should be SPD or Tracking vertex
71 Bool_t fkQualityCutTPCrefit; // Boolean : kTRUE = ask for TPCrefit for the 3 daughter tracks
72 Bool_t fkQualityCut80TPCcls; // Boolean : kTRUE = ask for 80 TPC clusters for each daughter track
c525f360 73 Bool_t fkIsDataRecoWith1PadTPCCluster; // Boolean : kTRUE = data reconstructed with the "one pad cluster" algo in TPC (important for the ALEPH param for TPC PID)
9d670198 74 Bool_t fkExtraSelections; // Boolean : kTRUE = apply tighter selections, before starting the analysis
75
76 Double_t fAlephParameters[5]; // Array to store the 5 param values for the TPC Bethe-Bloch parametrisation
77 Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related (if fkRerunV0CascVertexers)
78 Double_t fCascSels[8]; // Array to store the 8 values for the different selections Casc. related (if fkRerunV0CascVertexers)
79
b67ec6f7 80
81 TList *fListHistCascade; //! List of Cascade histograms
82 // - Histos
c525f360 83 TH1F *fHistMCTrackMultiplicity; //! MC Track multiplicity (gen. primaries)
84 // - Resolution of the multiplicity estimator
a786bd57 85 TH2F *f2dHistRecoPrimTrckMultVsMCMult; //! resolution of the multiplicity estimator (based on primary tracks)
86 TH2F *f2dHistRecoEstimateMultVsMCMult; //! resolution of the multiplicity estimator (based on ESDEvent::EstimateMultiplicity)
b67ec6f7 87
88
89 // proton
90 TH1F *fHistEtaGenProton; //! MC Pseudo-rapidity of any generated p+ (no cuts in acceptance)
91 TH1F *fHistEtaGenAntiProton; //! MC Pseudo-rapidity of any generated p+ (no cuts in acceptance)
92
93// Part 1 - Generated cascades
94
95 //--------------
96 // Xi-
97 TH1F *fHistEtaGenCascXiMinus; //! MC Pseudo-rapidity of any generated Xi- (no cuts in acceptance)
ff0753e1 98 TH2F *f2dHistGenPtVsGenYGenXiMinus; //! MC Pt Vs MC Y of generated Xi-
99
b67ec6f7 100 // - Histos planned for Xi- emitted within the acceptance (cuts in theta + pt of daughters)
101 // = findable cascades
102 TH1F *fHistThetaGenCascXiMinus; //! MC Theta angle of the generated Xi-
ff0753e1 103 TH2F *f2dHistGenPtVsGenYFdblXiMinus; //! MC Pt Vs MC y of the findable Xi-
b67ec6f7 104
105 TH1F *fHistThetaLambdaXiMinus; //! MC Theta angle of the Lambda daughter of the generated Xi-
db71a168 106 TH1F *fHistThetaBachXiMinus; //! MC Theta angle of the Bachelor (pi-)
b67ec6f7 107
108 TH1F *fHistThetaMesDghterXiMinus; //! MC Theta angle of the mesonic V0 daughter in the generated cascade, pi-
109 TH1F *fHistThetaBarDghterXiMinus; //! MC Theta angle of the baryonic V0 daughter in the generated cascade, p+
110
db71a168 111 TH1F *fHistPtBachXiMinus; //! MC Pt of the Bachelor (pi-) (Control Plot)
b67ec6f7 112 TH1F *fHistPtMesDghterXiMinus; //! MC Pt of the meson daughter of the 'Lambda0', pi- (Control Plot)
113 TH1F *fHistPtBarDghterXiMinus; //! MC Pt of the baryon daughter of the 'Lambda0', p+ (Control Plot)
114
115
116
117 //--------------
118 // Xi+
119 TH1F *fHistEtaGenCascXiPlus; //! MC Pseudo-rapidity of any generated Xi+ (no cuts in acceptance)
ff0753e1 120 TH2F *f2dHistGenPtVsGenYGenXiPlus; //! MC Pt Vs MC Y of generated Xi+
121
b67ec6f7 122 // - Histos planned for Xi+ emitted within the acceptance (cuts in theta + pt of daughters)
123 TH1F *fHistThetaGenCascXiPlus; //! MC Theta angle of the generated Xi+
ff0753e1 124 TH2F *f2dHistGenPtVsGenYFdblXiPlus; //! MC Pt Vs MC y of the findable Xi+
b67ec6f7 125
126 TH1F *fHistThetaLambdaXiPlus; //! MC Theta angle of the anti-Lambda daughter of the generated Xi+
db71a168 127 TH1F *fHistThetaBachXiPlus; //! MC Theta angle of the Bachelor (pi+)
b67ec6f7 128
129 TH1F *fHistThetaMesDghterXiPlus; //! MC Theta angle of the mesonic V0 daughter in the generated cascade, pi+
130 TH1F *fHistThetaBarDghterXiPlus; //! MC Theta angle of the baryonic V0 daughter in the generated cascade, p-
131
db71a168 132 TH1F *fHistPtBachXiPlus; //! MC Pt of the Bachelor (pi+) (Control Plot)
b67ec6f7 133 TH1F *fHistPtMesDghterXiPlus; //! MC Pt of the meson daughter of the 'Lambda0', pi+ (Control Plot)
134 TH1F *fHistPtBarDghterXiPlus; //! MC Pt of the baryon daughter of the 'Lambda0', p- (Control Plot)
135
136
137
138 //--------------
139 // Omega-
db71a168 140 TH1F *fHistEtaGenCascOmegaMinus; //! MC Pseudo-rapidity of any generated Omega- (no cuts in acceptance)
ff0753e1 141 TH2F *f2dHistGenPtVsGenYGenOmegaMinus; //! MC Pt Vs MC Y of generated Omega-
b67ec6f7 142
143 // - Histos planned for Omega- emitted within the acceptance (cuts in theta + pt of daughters)
144 TH1F *fHistThetaGenCascOmegaMinus; //! MC Theta angle of the generated Omega-
ff0753e1 145 TH2F *f2dHistGenPtVsGenYFdblOmegaMinus; //! MC Pt Vs MC y of the findable Omega-
b67ec6f7 146
147 TH1F *fHistThetaLambdaOmegaMinus; //! MC Theta angle of the Lambda daughter of the generated Omega-
148 TH1F *fHistThetaBachOmegaMinus; //! MC Theta angle of the Bachelor (K-)
149
db71a168 150 TH1F *fHistThetaMesDghterOmegaMinus; //! MC Theta angle of the mesonic V0 daughter in the generated cascade, pi-
151 TH1F *fHistThetaBarDghterOmegaMinus; //! MC Theta angle of the baryonic V0 daughter in the generated cascade, p+
b67ec6f7 152
153 TH1F *fHistPtBachOmegaMinus; //! MC Pt of the Bachelor (K-) (Control Plot)
154 TH1F *fHistPtMesDghterOmegaMinus; //! MC Pt of the meson daughter of the 'Lambda0', pi- (Control Plot)
155 TH1F *fHistPtBarDghterOmegaMinus; //! MC Pt of the baryon daughter of the 'Lambda0', p+ (Control Plot)
156
157
158
159 //--------------
160 // Omega+
161 TH1F *fHistEtaGenCascOmegaPlus; //! MC Pseudo-rapidity of any generated Omega+ (no cuts in acceptance)
ff0753e1 162 TH2F *f2dHistGenPtVsGenYGenOmegaPlus; //! MC Pt Vs MC Y of generated Omega+
b67ec6f7 163
b67ec6f7 164 // - Histos planned for Omega+ emitted within the acceptance (cuts in theta + pt of daughters)
165 TH1F *fHistThetaGenCascOmegaPlus; //! MC Theta angle of the generated Omega+
ff0753e1 166 TH2F *f2dHistGenPtVsGenYFdblOmegaPlus; //! MC Pt Vs MC y of the findable Omega+
b67ec6f7 167
168 TH1F *fHistThetaLambdaOmegaPlus; //! MC Theta angle of the anti-Lambda daughter of the generated Omega+
169 TH1F *fHistThetaBachOmegaPlus; //! MC Theta angle of the Bachelor (K+)
170
db71a168 171 TH1F *fHistThetaMesDghterOmegaPlus; //! MC Theta angle of the mesonic V0 daughter in the generated cascade, pi+
172 TH1F *fHistThetaBarDghterOmegaPlus; //! MC Theta angle of the baryonic V0 daughter in the generated cascade, p-
b67ec6f7 173
174 TH1F *fHistPtBachOmegaPlus; //! MC Pt of the Bachelor (K+) (Control Plot)
175 TH1F *fHistPtMesDghterOmegaPlus; //! MC Pt of the meson daughter of the 'Lambda0', pi+ (Control Plot)
176 TH1F *fHistPtBarDghterOmegaPlus; //! MC Pt of the baryon daughter of the 'Lambda0', p- (Control Plot)
177
178
179
180// Part 2 - Any reconstructed cascades + reconstructed cascades associated with MC
ff0753e1 181 // 2.1 - Effective mass and PID
b67ec6f7 182 // - Effective mass histos for all the cascade candidates
183 TH1F *fHistMassXiMinus; //! reconstructed cascade effective mass, under Xi- hyp.
184 TH1F *fHistMassXiPlus; //! reconstructed cascade effective mass, under Xi+ hyp.
185 TH1F *fHistMassOmegaMinus; //! reconstructed cascade effective mass, under Omega- hyp.
186 TH1F *fHistMassOmegaPlus; //! reconstructed cascade effective mass, under Omega+ hyp.
187
f87cd3db 188 // - Effective mass histos with reconstruction combined PID
189 TH1F *fHistMassWithCombPIDXiMinus; //! reconstructed Xi- effective mass, with bach. comb PID
190 TH1F *fHistMassWithCombPIDXiPlus; //! reconstructed Xi+ effective mass, with bach. comb PID
191 TH1F *fHistMassWithCombPIDOmegaMinus; //! reconstructed Omega- effective mass, with bach. comb PID
192 TH1F *fHistMassWithCombPIDOmegaPlus; //! reconstructed Omega+ effective mass, with bach. comb PID
f870ac91 193
194 // - PID Probability versus MC Pt(bachelor track)
195 TH2F *f2dHistPIDprobaKaonVsMCPtBach; //! Comb. PID probability for the bach. to be a Kaon Vs MC pt(bach)
196 TH2F *f2dHistPIDprobaPionVsMCPtBach; //! Comb. PID probability for the bach. to be a Pion Vs MC pt(bach)
f87cd3db 197
198 // - Effective mass histos with perfect MC PID
199 TH1F *fHistMassWithMcPIDXiMinus; //! reconstructed Xi- effective mass, with MC bach. PID
200 TH1F *fHistMassWithMcPIDXiPlus; //! reconstructed Xi+ effective mass, with MC bach. PID
201 TH1F *fHistMassWithMcPIDOmegaMinus; //! reconstructed Omega- effective mass, with MC bach. PID
202 TH1F *fHistMassWithMcPIDOmegaPlus; //! reconstructed Omega+ effective mass, with MC bach. PID
203
204
ff0753e1 205 // 2.2 - Associated candidates
f870ac91 206 // - Effective mass histos for the cascade candidates associated with MC, without PID info
b67ec6f7 207 TH1F *fHistAsMCMassXiMinus; //! reconstr. cascade effective mass, under Xi- hyp. for Associated cand.
208 TH1F *fHistAsMCMassXiPlus; //! reconstr. cascade effective mass, under Xi+ hyp. for Associated cand.
209 TH1F *fHistAsMCMassOmegaMinus; //! reconstr. cascade effective mass, under Omega- hyp. for Associated cand.
210 TH1F *fHistAsMCMassOmegaPlus; //! reconstr. cascade effective mass, under Omega+ hyp. for Associated cand.
211
ff0753e1 212 // - Generated Pt Vs generated Y of the cascade candidates associated with MC
213 // + having the proper maximum proba of combined PID for the bachelor
214 TH2F *f2dHistAsMCandCombPIDGenPtVsGenYXiMinus; //! Pt(gen) Vs Y(gen) from the MC Xi- associated with Reco cand + with PID info
215 TH2F *f2dHistAsMCandCombPIDGenPtVsGenYXiPlus; //! Pt(gen) Vs Y(gen) from the MC Xi+ associated with Reco cand + with PID info
216 TH2F *f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus; //! Pt(gen) Vs Y(gen) from the MC Omega- associated with Reco cand + with PID info
217 TH2F *f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus; //! Pt(gen) Vs Y(gen) from the MC Omega+ associated with Reco cand + with PID info
218
219 // - Generated Pt Vs generated Y, for the cascade candidates associated with MC, without PID info
220 TH2F *f2dHistAsMCGenPtVsGenYXiMinus; //! gen. Pt Vs gen. Rap. from the MC Xi- associated with a reconstr. cascade
221 TH2F *f2dHistAsMCGenPtVsGenYXiPlus; //! gen. Pt Vs gen. Rap. from the MC Xi+ associated with a reconstr. cascade
222 TH2F *f2dHistAsMCGenPtVsGenYOmegaMinus; //! gen. Pt Vs gen. Rap. from the MC Omega- associated with a reconstr. cascade
223 TH2F *f2dHistAsMCGenPtVsGenYOmegaPlus; //! gen. Pt Vs gen. Rap. from the MC Omega+ associated with a reconstr. cascade
b67ec6f7 224
f870ac91 225 // - Generated Eta of the the cascade candidates associated with MC, without PID info
b67ec6f7 226 TH1F *fHistAsMCGenEtaXiMinus; //! generated Eta from the MC Xi- associated with a reconstr. cascade
227 TH1F *fHistAsMCGenEtaXiPlus; //! generated Eta from the MC Xi+ associated with a reconstr. cascade
228 TH1F *fHistAsMCGenEtaOmegaMinus; //! generated Eta from the MC Omega- associated with a reconstr. cascade
229 TH1F *fHistAsMCGenEtaOmegaPlus; //! generated Eta from the MC Omega+ associated with a reconstr. cascade
230
231 // - Resolution in Pt as function of generated Pt
232 TH2F *f2dHistAsMCResPtXiMinus; //! resolution in Pt as function of gen. Pt, for Xi-
233 TH2F *f2dHistAsMCResPtXiPlus; //! resolution in Pt as function of gen. Pt, for Xi-
234 TH2F *f2dHistAsMCResPtOmegaMinus; //! resolution in Pt as function of gen. Pt, for Omega-
235 TH2F *f2dHistAsMCResPtOmegaPlus; //! resolution in Pt as function of gen. Pt, for Omega+
236
237 // - Resolution in R(2D) as function of generated R
ff0753e1 238 TH2F *f2dHistAsMCResRXiMinus; //! resolution in transv. R = f(transv. gen. R), for Xi-
239 TH2F *f2dHistAsMCResRXiPlus; //! resolution in transv. R = f(transv. gen. R), for Xi+
240 TH2F *f2dHistAsMCResROmegaMinus; //! resolution in transv. R = f(transv. gen. R), for Omega-
241 TH2F *f2dHistAsMCResROmegaPlus; //! resolution in transv. R = f(transv. gen. R), for Omega+
7e504402 242
c525f360 243 // - Resolution in phi as function of generated Pt
244 TH2F *f2dHistAsMCResPhiXiMinus; //! resolution in azimuth Phi = f(gen. Pt), for Xi-
245 TH2F *f2dHistAsMCResPhiXiPlus; //! resolution in azimuth Phi = f(gen. Pt), for Xi+
246 TH2F *f2dHistAsMCResPhiOmegaMinus; //! resolution in azimuth Phi = f(gen. Pt), for Omega-
247 TH2F *f2dHistAsMCResPhiOmegaPlus; //! resolution in azimuth Phi = f(gen. Pt), for Omega+
248
a786bd57 249 // - Correlation in Pt between the cascade and its (anti)proton daughter
250 TH2F *f2dHistAsMCPtProtonVsPtXiMinus; //! Pt(p) Vs Pt(XiMinus), for a associated-to-reco cascade
251 TH2F *f2dHistAsMCPtAntiProtonVsPtXiPlus; //! Pt(anti-p) Vs Pt(XiPlus), for a associated-to-reco cascade
252 TH2F *f2dHistAsMCPtProtonVsPtOmegaMinus; //! Pt(p) Vs Pt(OmegaMinus), for a associated-to-reco cascade
253 TH2F *f2dHistAsMCPtAntiProtonVsPtOmegaPlus; //! Pt(anti-p) Vs Pt(OmegaPlus), for a associated-to-reco cascade
254
255
c525f360 256
7e504402 257 // - Compilation of all PID plots (3D = casc. transv. momemtum Vs Casc Eff mass Vs Y), stored into an AliCFContainer
258 AliCFContainer *fCFContCascadePIDAsXiMinus; //! for Xi- : Container to store any 3D histos with the different PID flavours
259 AliCFContainer *fCFContCascadePIDAsXiPlus; //! for Xi+ : Container to store any 3D histos with the different PID flavours
260 AliCFContainer *fCFContCascadePIDAsOmegaMinus; //! for Omega-: Container to store any 3D histos with the different PID flavours
261 AliCFContainer *fCFContCascadePIDAsOmegaPlus; //! for Omega+: Container to store any 3D histos with the different PID flavours
262
9d670198 263 // - Towards the optimisation of topological selections/ systematics (on associated candidates)
264 AliCFContainer *fCFContAsCascadeCuts; //! Container meant to store all the relevant distributions corresponding to the cut variables
b67ec6f7 265
266 AliAnalysisTaskCheckPerformanceCascade(const AliAnalysisTaskCheckPerformanceCascade&); // not implemented
267 AliAnalysisTaskCheckPerformanceCascade& operator=(const AliAnalysisTaskCheckPerformanceCascade&); // not implemented
268
a786bd57 269 ClassDef(AliAnalysisTaskCheckPerformanceCascade, 6);
b67ec6f7 270};
271
272#endif