1 #ifndef AliAnalysisTaskITSTrackingCheck_cxx
2 #define AliAnalysisTaskITSTrackingCheck_cxx
4 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //*************************************************************************
8 // Class AliAnalysiTaskITSTrackingCheck
9 // AliAnalysisTask to extract from ESD tracks the information on the
10 // ITS tracking efficiency and resolutions
12 // Author: A.Dainese, andrea.dainese@pd.infn.it
13 //*************************************************************************
21 class AliESDtrackCuts;
23 #include "AliAnalysisTaskSE.h"
25 class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
28 AliAnalysisTaskITSTrackingCheck();
29 AliAnalysisTaskITSTrackingCheck(const char *name);
30 virtual ~AliAnalysisTaskITSTrackingCheck();
32 virtual void UserCreateOutputObjects();
33 virtual void UserExec(Option_t *option);
34 virtual void Terminate(Option_t *);
35 Bool_t GetReadMC() const { return fReadMC; }
36 void SetReadMC(Bool_t flag=kTRUE) { fReadMC=flag; }
37 void SetUsePhysSel() { fUsePhysSel=kTRUE; }
38 void SetReadRPLabels(Bool_t flag=kTRUE) { fReadRPLabels=flag; }
39 void SetFillNtuples(Bool_t flag=kTRUE) { fFillNtuples=flag; }
40 void SetUseITSSAforNtuples(Bool_t flag=kTRUE) { fUseITSSAforNtuples=flag; }
41 void SetESDtrackCutsTPC(AliESDtrackCuts *c) { fESDtrackCutsTPC=c; }
42 void SetESDtrackCutsITSTPC(AliESDtrackCuts *c) { fESDtrackCutsITSTPC=c; }
43 void SetMultiplicityRange(Int_t min,Int_t max) { fMinMult=min; fMaxMult=max; }
46 Bool_t fReadMC; // read Monte Carlo
47 Bool_t fReadRPLabels; // read MC labels from ITS.RecPoints
48 Bool_t fFillNtuples; // fill expert ntuples
49 Bool_t fUseITSSAforNtuples; // fill expert ntuples with ITSSA tracks
50 Bool_t fUsePhysSel; // use AliPhysicsSelection
51 AliESDEvent *fESD; // ESD object
52 Int_t fMinMult; // minimum multiplicity
53 Int_t fMaxMult; // maximum multiplicity
54 TList *fOutput; //! list send on output slot 0
55 TH1F *fHistNEvents; //! output hist
56 TH1F *fHistNEventsFrac; //! output hist
57 TH1F *fHistNtracks; //! output hist
58 TH1F *fHistNclsITSMI; //! output hist
59 TH1F *fHistNclsITSSA; //! output hist
60 TH1F *fHistNclsITSSAInAcc; //! output hist
61 TH1F *fHistClusterMapITSMI; //! output hist
62 TH1F *fHistClusterMapITSMIokA; //! output hist
63 TH1F *fHistClusterMapITSMIokB; //! output hist
64 TH1F *fHistClusterMapITSMIok; //! output hist
65 TH1F *fHistClusterMapITSMIbad; //! output hist
66 TH1F *fHistClusterMapITSMIskipped; //! output hist
67 TH1F *fHistClusterMapITSMIoutinz; //! output hist
68 TH1F *fHistClusterMapITSMInorefit; //! output hist
69 TH1F *fHistClusterMapITSMInocls; //! output hist
70 TH1F *fHistClusterMapITSMIokoutinzbad; //! output hist
71 TH1F *fHistClusterMapITSSA; //! output hist
72 TH1F *fHistClusterMapITSSAok; //! output hist
73 TH1F *fHistClusterMapITSSAbad; //! output hist
74 TH1F *fHistClusterMapITSSAskipped; //! output hist
75 TH1F *fHistClusterMapITSSAoutinz; //! output hist
76 TH1F *fHistClusterMapITSSAnorefit; //! output hist
77 TH1F *fHistClusterMapITSSAnocls; //! output hist
78 TH1F *fHistClusterMapITSSAokoutinzbad; //! output hist
79 TH1F *fHistClusterMapITSSAInAcc; //! output hist
80 TH1F *fHistClusterMapITSSAokInAcc; //! output hist
81 TH1F *fHistClusterMapITSSAbadInAcc; //! output hist
82 TH1F *fHistClusterMapITSSAskippedInAcc; //! output hist
83 TH1F *fHistClusterMapITSSAoutinzInAcc; //! output hist
84 TH1F *fHistClusterMapITSSAnorefitInAcc; //! output hist
85 TH1F *fHistClusterMapITSSAnoclsInAcc; //! output hist
86 TH1F *fHistClusterMapITSSAokoutinzbadInAcc; //! output hist
87 TH1F *fHistClusterMapModuleITSSAokInAcc; //! output hist
88 TH1F *fHistClusterMapModuleITSSAbadInAcc; //! output hist
89 TH1F *fHistClusterMapModuleITSSAnoclsInAcc; //! output hist
90 TH1F *fHistClusterMapModuleITSMIokInAcc; //! output hist
91 TH1F *fHistClusterMapModuleITSMIbadInAcc; //! output hist
92 TH1F *fHistClusterMapModuleITSMInoclsInAcc; //! output hist
93 TH1F *fHistNClustersMapModule; //! output hist
94 TH1F *fHistZatSPDouter0ok; //! output hist
95 TH1F *fHistZatSPDouter1ok; //! output hist
96 TH1F *fHistZatSPDouter2ok; //! output hist
97 TH1F *fHistZatSPDouter3ok; //! output hist
98 TH1F *fHistZatSPDouter0notok; //! output hist
99 TH1F *fHistZatSPDouter1notok; //! output hist
100 TH1F *fHistZatSPDouter2notok; //! output hist
101 TH1F *fHistZatSPDouter3notok; //! output hist
102 TH1F *fHistxlocSDDok; //! output hist
103 TH1F *fHistzlocSDDok; //! output hist
104 TH2F *fHistxlocVSmodSDDok; //! output hist
105 TH1F *fHistxlocSDDall; //! output hist
106 TH1F *fHistzlocSDDall; //! output hist
107 TH1F *fHistxlocSDDA; //! output hist
108 TH1F *fHistxlocSDDB; //! output hist
109 TH1F *fHistzlocSDDA; //! output hist
110 TH1F *fHistzlocSDDB; //! output hist
111 TH1F *fHistPhiTPCInAcc; //! output hist
112 TH1F *fHistEtaTPCInAcc; //! output hist
113 TH1F *fHistEtaTPCInAccA; //! output hist
114 TH1F *fHistEtaTPCInAccB; //! output hist
115 TH1F *fHistNclsTPCInAccA; //! output hist
116 TH1F *fHistNclsTPCInAccB; //! output hist
117 TH1F *fHistChi2PerClsTPCInAccA; //! output hist
118 TH1F *fHistChi2PerClsTPCInAccB; //! output hist
119 TH1F *fHistChi2PerClsITSInAccA; //! output hist
120 TH1F *fHistChi2PerClsITSInAccB; //! output hist
121 TH1F *fHistPtTPC; //! output hist
122 TH1F *fHistPtTPCInAcc; //! output hist
123 TH1F *fHistPtTPCInAccMCtwoSPD; //! output hist
124 TH1F *fHistPtTPCInAccMConeSPD; //! output hist
125 TH2F *fHistdEdxVSPtTPCInAcc; //! output hist
126 TH2F *fHistdEdxVSPtITSTPCsel; //! output hist
127 TH2F *fHistTPCclsVSPtTPCInAcc; //! output hist
128 TH2F *fHistTPCclsVSPtITSMISPDInAcc; //! output hist
129 TH2F *fHistPtVSphiTPCInAcc; //! output hist
130 TH1F *fHistPtTPCInAccNoTRDout; //! output hist
131 TH1F *fHistPtTPCInAccNoTOFout; //! output hist
132 TH1F *fHistPtTPCInAccWithPtTPCAtInnerWall; //! output hist
133 TH1F *fHistPtTPCInAccWithPtTPCAtVtx; //! output hist
134 TH2F *fHistDeltaPtTPC; //! output hist
135 TH1F *fHistPtTPCInAccP; //! output hist
136 TH1F *fHistPtTPCInAccS; //! output hist
137 TH1F *fHistPtTPCInAccPfromStrange; //! output hist
138 TH1F *fHistPtTPCInAccSfromStrange; //! output hist
139 TH1F *fHistPtTPCInAccSfromMat; //! output hist
140 TH1F *fHistPtITSMI2; //! output hist
141 TH1F *fHistPtITSMI3; //! output hist
142 TH1F *fHistPtITSMI4; //! output hist
143 TH1F *fHistPtITSMI5; //! output hist
144 TH1F *fHistPtITSMI6; //! output hist
145 TH1F *fHistPtITSMISPD; //! output hist
146 TH1F *fHistPtITSMIoneSPD; //! output hist
147 TH1F *fHistPtITSMI2InAcc; //! output hist
148 TH1F *fHistPtITSMI3InAcc; //! output hist
149 TH1F *fHistPtITSMI4InAcc; //! output hist
150 TH1F *fHistPtITSMI5InAcc; //! output hist
151 TH1F *fHistPtITSMI6InAcc; //! output hist
152 TH1F *fHistPtITSMISPDInAcc; //! output hist
153 TH1F *fHistPtITSMIoneSPDInAcc; //! output hist
154 TH1F *fHistPtITSMIoneSPDInAccShared; //! output hist
155 TH1F *fHistPtITSMIoneSPDInAccSharedSPD; //! output hist
156 TH1F *fHistPtITSMISPD1InAccShared; //! output hist
157 TH1F *fHistPtITSMISPD2InAccShared; //! output hist
158 TH1F *fHistPtITSMIoneSPDInAccSharedFake; //! output hist
159 TH1F *fHistPtITSMIoneSPDInAccSharedSPDFake; //! output hist
160 TH1F *fHistPhiITSMI2InAcc; //! output hist
161 TH1F *fHistPhiITSMI3InAcc; //! output hist
162 TH1F *fHistPhiITSMI4InAcc; //! output hist
163 TH1F *fHistPhiITSMI5InAcc; //! output hist
164 TH1F *fHistPhiITSMI6InAcc; //! output hist
165 TH1F *fHistPhiITSMISPDInAcc; //! output hist
166 TH1F *fHistPhiITSMIoneSPDInAcc; //! output hist
167 TH1F *fHistEtaITSMI2InAcc; //! output hist
168 TH1F *fHistEtaITSMI3InAcc; //! output hist
169 TH1F *fHistEtaITSMI4InAcc; //! output hist
170 TH1F *fHistEtaITSMI5InAcc; //! output hist
171 TH1F *fHistEtaITSMI6InAcc; //! output hist
172 TH1F *fHistEtaITSMISPDInAcc; //! output hist
173 TH1F *fHistEtaITSMIoneSPDInAcc; //! output hist
174 TH1F *fHistPtITSMI2InAccFake; //! output hist
175 TH1F *fHistPtITSMI3InAccFake; //! output hist
176 TH1F *fHistPtITSMI4InAccFake; //! output hist
177 TH1F *fHistPtITSMI5InAccFake; //! output hist
178 TH1F *fHistPtITSMI6InAccFake; //! output hist
179 TH1F *fHistPtITSMISPDInAccFake; //! output hist
180 TH1F *fHistPtITSMIoneSPDInAccFake; //! output hist
181 TH1F *fHistPtITSMIoneSPDthreeSDDSSDInAcc; //! output hist
182 TH1F *fHistPtITSTPCsel; //! output hist
183 TH1F *fHistPtITSTPCselP; //! output hist
184 TH1F *fHistPtITSTPCselS; //! output hist
185 TH1F *fHistPtITSTPCselFake; //! output hist
186 TH1F *fHistPtITSTPCselPfromStrange; //! output hist
187 TH1F *fHistPtITSTPCselSfromStrange; //! output hist
188 TH1F *fHistPtITSTPCselSfromMat; //! output hist
189 TH1F *fHistPtITSMI2InAccP; //! output hist
190 TH1F *fHistPtITSMI3InAccP; //! output hist
191 TH1F *fHistPtITSMI4InAccP; //! output hist
192 TH1F *fHistPtITSMI5InAccP; //! output hist
193 TH1F *fHistPtITSMI6InAccP; //! output hist
194 TH1F *fHistPtITSMISPDInAccP; //! output hist
195 TH1F *fHistPtITSMIoneSPDInAccP; //! output hist
196 TH1F *fHistPtITSMI2InAccS; //! output hist
197 TH1F *fHistPtITSMI3InAccS; //! output hist
198 TH1F *fHistPtITSMI4InAccS; //! output hist
199 TH1F *fHistPtITSMI5InAccS; //! output hist
200 TH1F *fHistPtITSMI6InAccS; //! output hist
201 TH1F *fHistPtITSMISPDInAccS; //! output hist
202 TH1F *fHistPtITSMIoneSPDInAccS; //! output hist
203 TH1F *fHistPtITSMIokbadoutinz6; //! output hist
204 TH1F *fHistPtITSMIokbadoutinz4InAcc; //! output hist
205 TH1F *fHistPtITSMIokbadoutinz5InAcc; //! output hist
206 TH1F *fHistPtITSMIokbadoutinz6InAcc; //! output hist
207 TH1F *fHistPhiITSMIokbadoutinz6InAcc; //! output hist
208 TH1F *fHistRProdVtxInAccP; //! output hist
209 TH1F *fHistRProdVtxInAccS; //! output hist
210 TH1F *fHistd0rphiTPCInAccA; //! output hist
211 TH1F *fHistd0rphiTPCInAccB; //! output hist
212 TH1F *fHistd0zTPCInAccA; //! output hist
213 TH1F *fHistd0zTPCInAccB; //! output hist
214 TH1F *fHistd0rphiTPCInAccP150200; //! output hist
215 TH1F *fHistd0rphiTPCInAccP500700; //! output hist
216 TH1F *fHistd0rphiTPCInAccP10001500; //! output hist
217 TH1F *fHistd0rphiTPCInAccS150200; //! output hist
218 TH1F *fHistd0rphiTPCInAccS500700; //! output hist
219 TH1F *fHistd0rphiTPCInAccS10001500; //! output hist
220 TH1F *fHistd0rphiITSMISPDInAccP150200; //! output hist
221 TH1F *fHistd0rphiITSMISPDInAccP500700; //! output hist
222 TH1F *fHistd0rphiITSMISPDInAccP10001500; //! output hist
223 TH1F *fHistd0rphiITSMISPDInAccS150200; //! output hist
224 TH1F *fHistd0rphiITSMISPDInAccS500700; //! output hist
225 TH1F *fHistd0rphiITSMISPDInAccS10001500; //! output hist
226 TH1F *fHistd0rphiITSMIoneSPDInAccP150200; //! output hist
227 TH1F *fHistd0rphiITSMIoneSPDInAccP350450; //! output hist
228 TH1F *fHistd0rphiITSMIoneSPDInAccP500700; //! output hist
229 TH1F *fHistd0rphiITSMIoneSPDInAccP10001500; //! output hist
230 TH1F *fHistd0rphiITSMIoneSPDInAccP25004000; //! output hist
231 TH1F *fHistd0rphiITSMIoneSPDInAccP40008000; //! output hist
232 TH1F *fHistd0rphiITSMIoneSPDInAccA; //! output hist
233 TH1F *fHistd0rphiITSMIoneSPDInAccB; //! output hist
234 TH1F *fHistd0zITSMIoneSPDInAccA; //! output hist
235 TH1F *fHistd0zITSMIoneSPDInAccB; //! output hist
236 TH1F *fHistd0zITSMIoneSPDInAccP150200; //! output hist
237 TH1F *fHistd0zITSMIoneSPDInAccP500700; //! output hist
238 TH1F *fHistd0zITSMIoneSPDInAccP10001500; //! output hist
239 TH2F *fHistd0zVSetaTPCInAccP10001500; //! output hist
240 TH2F *fHistd0rphiVSphiITSMIoneSPDInAccP10001500; //! output hist
241 TH2F *fHistd0rphiVSetaITSMIoneSPDInAccP10001500; //! output hist
242 TH1F *fHistd0rphiITSMIoneSPDInAccS150200; //! output hist
243 TH1F *fHistd0rphiITSMIoneSPDInAccS350450; //! output hist
244 TH1F *fHistd0rphiITSMIoneSPDInAccS500700; //! output hist
245 TH1F *fHistd0rphiITSMIoneSPDInAccS500700from22; //! output hist
246 TH1F *fHistd0rphiITSMIoneSPDInAccS500700from211; //! output hist
247 TH1F *fHistd0rphiITSMIoneSPDInAccS500700from310; //! output hist
248 TH1F *fHistd0rphiITSMIoneSPDInAccS500700from321; //! output hist
249 TH1F *fHistd0rphiITSMIoneSPDInAccS500700from3122; //! output hist
250 TH1F *fHistd0rphiITSMIoneSPDInAccS10001500; //! output hist
251 TH1F *fHistd0rphiITSMIoneSPDInAccS25004000; //! output hist
252 TH1F *fHistd0rphiITSMIoneSPDInAccS40008000; //! output hist
253 TH1F *fHistd0rphiITSMIoneSPDInAccS150200fromStrange; //! output hist
254 TH1F *fHistd0rphiITSMIoneSPDInAccS150200fromMat; //! output hist
255 TH1F *fHistd0rphiITSMIoneSPDInAccS350450fromStrange; //! output hist
256 TH1F *fHistd0rphiITSMIoneSPDInAccS350450fromMat; //! output hist
257 TH1F *fHistd0rphiITSMIoneSPDInAccS500700fromStrange; //! output hist
258 TH1F *fHistd0rphiITSMIoneSPDInAccS500700fromMat; //! output hist
259 TH1F *fHistd0rphiITSMIoneSPDInAccS10001500fromStrange; //! output hist
260 TH1F *fHistd0rphiITSMIoneSPDInAccS10001500fromMat; //! output hist
261 TH1F *fHistd0rphiITSMIoneSPDInAccS25004000fromStrange; //! output hist
262 TH1F *fHistd0rphiITSMIoneSPDInAccS25004000fromMat; //! output hist
263 TH1F *fHistd0rphiITSMIoneSPDInAccS40008000fromStrange; //! output hist
264 TH1F *fHistd0rphiITSMIoneSPDInAccS40008000fromMat; //! output hist
265 TH1F *fHistd0zITSMIoneSPDInAccS150200; //! output hist
266 TH1F *fHistd0zITSMIoneSPDInAccS500700; //! output hist
267 TH1F *fHistd0zITSMIoneSPDInAccS10001500; //! output hist
268 TH1F *fHistPDGMoth; //! output hist
269 TH1F *fHistPDGMoth150200; //! output hist
270 TH1F *fHistPDGMoth500700; //! output hist
271 TH1F *fHistPDGMoth10001500; //! output hist
272 TH1F *fHistPDGTrk; //! output hist
273 TH1F *fHistITSRedChi2NonFakePt02; //! output hist
274 TH1F *fHistITSRedChi2FakePt02; //! output hist
275 TH1F *fHistITSRedChi2NonFakePt05; //! output hist
276 TH1F *fHistITSRedChi2FakePt05; //! output hist
277 TH1F *fHistITSRedChi2NonFakePt1; //! output hist
278 TH1F *fHistITSRedChi2FakePt1; //! output hist
279 TNtuple *fNtupleESDTracks; //! output ntuple
280 TNtuple *fNtupleITSAlignExtra; //! output ntuple
281 TNtuple *fNtupleITSAlignSPDTracklets; //! output ntuple
282 Int_t fCountsPerPtBin[11]; // track per pt bin
283 AliESDtrackCuts *fESDtrackCutsTPC; // cuts for TPC track
284 AliESDtrackCuts *fESDtrackCutsITSTPC; // cuts for TPC+ITS track
288 AliAnalysisTaskITSTrackingCheck(const AliAnalysisTaskITSTrackingCheck&); // not implemented
289 AliAnalysisTaskITSTrackingCheck& operator=(const AliAnalysisTaskITSTrackingCheck&); // not implemented
292 Int_t NumberOfITSClustersMC(Int_t label,Int_t nModules=2198) const;
293 Int_t NumberOfITSClusters(Int_t idet,Float_t &xloc) const;
294 Double_t ParticleImpParMC(TParticle *part,AliESDVertex *vert,Double_t bzT) const;
295 Bool_t SelectPt(Double_t pt);
296 Int_t MakeITSflag(AliESDtrack *track) const;
297 Bool_t IsSelectedCentrality() const;
298 void FillNClustersModuleMap();
300 ClassDef(AliAnalysisTaskITSTrackingCheck,12); // ITS tracks analysis