]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/TOF/AliAnalysisTaskTOFqa.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGPP / TOF / AliAnalysisTaskTOFqa.cxx
CommitLineData
aac12889 1/* created by fbellini@cern.ch on 14/09/2010 */
154404b2 2/* last modified by fbellini on 18/06/2012 */
aac12889 3
4
5#ifndef ALIANALYSISTASKTOFQA_CXX
6#define ALIANALYSISTASKTOFQA_CXX
7
8#include "TChain.h"
9#include "TTree.h"
10#include "TH1F.h"
11#include "TH2F.h"
d18f2953 12#include "TProfile.h"
aac12889 13#include "TCanvas.h"
aac12889 14#include "AliAnalysisTaskSE.h"
15#include "AliAnalysisManager.h"
16#include "AliESDEvent.h"
17#include "AliESDInputHandler.h"
e866f574 18#include "AliESDpid.h"
7a9f204e 19#include "AliTOFPIDParams.h"
154404b2 20#include "AliCDBManager.h"
21#include "AliTOFcalib.h"
22#include "AliTOFT0maker.h"
23#include "AliTOFT0v1.h"
aac12889 24#include "AliAnalysisTaskTOFqa.h"
25#include "AliAnalysisFilter.h"
26#include "AliESDtrackCuts.h"
aac12889 27#include "AliLog.h"
aac12889 28#include "AliTOFRawStream.h"
29#include "AliTOFGeometry.h"
30
31ClassImp(AliAnalysisTaskTOFqa)
32
33//________________________________________________________________________
34AliAnalysisTaskTOFqa::AliAnalysisTaskTOFqa() :
111b2155 35 fRunNumber(0),
aac12889 36 fESD(0x0),
37 fTrackFilter(0x0),
38 fVertex(0x0),
0cf77d52 39 fESDpid(new AliESDpid()),
7a9f204e 40// fTOFT0v1(new AliTOFT0v1(fESDpid)),
aac12889 41 fNTOFtracks(0),
4170635c 42 fEnableAdvancedCheck(kFALSE),
43 fExpTimeBinWidth(24.4),
44 fExpTimeRangeMin(-25010.),
45 fExpTimeRangeMax(25010.),
46 fExpTimeSmallRangeMin(-5002.),
47 fExpTimeSmallRangeMax(5002.),
154404b2 48 fMyTimeZeroTOF(1e20),
49 fMyTimeZeroTOFsigma(1e20),
50 fMyTimeZeroTOFtracks(-1),
aac12889 51 fHlist(0x0),
e866f574 52 fHlistTimeZero(0x0),
4170635c 53 fHlistPID(0x0),
54 fHpos(0x0),
55 fHneg(0x0)
aac12889 56 {
57 // Default constructor
0cf77d52 58
e866f574 59 for (Int_t j=0;j<3;j++ ) {
60 if (j<3) fT0[j]=0.0;
61 fSigmaSpecie[j]=0.0;
62 fTrkExpTimes[j]=0.0;
63 fThExpTimes[j]=0.0;
64 }
65 }
aac12889 66//________________________________________________________________________
67AliAnalysisTaskTOFqa::AliAnalysisTaskTOFqa(const char *name) :
68 AliAnalysisTaskSE(name),
111b2155 69 fRunNumber(0),
aac12889 70 fESD(0x0),
71 fTrackFilter(0x0),
72 fVertex(0x0),
4170635c 73 fESDpid(new AliESDpid()),
7a9f204e 74 // fTOFT0v1(new AliTOFT0v1(fESDpid)),
aac12889 75 fNTOFtracks(0),
4170635c 76 fEnableAdvancedCheck(kFALSE),
77 fExpTimeBinWidth(24.4),
78 fExpTimeRangeMin(-25010.),
79 fExpTimeRangeMax(25010.),
80 fExpTimeSmallRangeMin(-5002.),
81 fExpTimeSmallRangeMax(5002.),
154404b2 82 fMyTimeZeroTOF(1e20),
83 fMyTimeZeroTOFsigma(1e20),
84 fMyTimeZeroTOFtracks(-1),
aac12889 85 fHlist(0x0),
e866f574 86 fHlistTimeZero(0),
4170635c 87 fHlistPID(0x0),
88 fHpos(0x0),
89 fHneg(0x0)
aac12889 90 {
91 // Constructor
92 // Define input and output slots here
93 Info("AliAnalysisTaskTOFqa","Calling Constructor");
94
e866f574 95 for (Int_t j=0;j<5;j++ ) {
96 if (j<3) fT0[j]=0.0;
97 fSigmaSpecie[j]=0.0;
98 fTrkExpTimes[j]=0.0;
99 fThExpTimes[j]=0.0;
100 }
aac12889 101 // Input slot #0 works with a TChain
102 DefineInput(0, TChain::Class());
103
104 // Output slot #0 writes into a TH1 container
105 // Output slot #1 writes into a user defined container
106 DefineOutput(1, TList::Class());
107 DefineOutput(2, TList::Class());
e866f574 108 DefineOutput(3, TList::Class());
4170635c 109 DefineOutput(4, TList::Class());
110 DefineOutput(5, TList::Class());
aac12889 111 }
112
113//________________________________________________________________________
114AliAnalysisTaskTOFqa::AliAnalysisTaskTOFqa(const AliAnalysisTaskTOFqa& copy)
115: AliAnalysisTaskSE(),
116 fRunNumber(copy.fRunNumber),
117 fESD(copy.fESD),
118 fTrackFilter(copy.fTrackFilter),
119 fVertex(copy.fVertex),
0cf77d52 120 fESDpid(copy.fESDpid),
7a9f204e 121 // fTOFT0v1(copy.fTOFT0v1),
aac12889 122 fNTOFtracks(copy.fNTOFtracks),
4170635c 123 fEnableAdvancedCheck(copy.fEnableAdvancedCheck),
124 fExpTimeBinWidth(copy.fExpTimeBinWidth),
125 fExpTimeRangeMin(copy.fExpTimeRangeMin),
126 fExpTimeRangeMax(copy.fExpTimeRangeMax),
127 fExpTimeSmallRangeMin(copy.fExpTimeSmallRangeMin),
128 fExpTimeSmallRangeMax(copy.fExpTimeSmallRangeMax),
154404b2 129 fMyTimeZeroTOF(copy.fMyTimeZeroTOF),
130 fMyTimeZeroTOFsigma(copy.fMyTimeZeroTOFsigma),
131 fMyTimeZeroTOFtracks(copy.fMyTimeZeroTOFtracks),
aac12889 132 fHlist(copy.fHlist),
e866f574 133 fHlistTimeZero(copy.fHlistTimeZero),
4170635c 134 fHlistPID(copy.fHlistPID),
135 fHpos(copy.fHpos),
136 fHneg(copy.fHneg)
aac12889 137{
138 // Copy constructor
e866f574 139 for (Int_t j=0;j<5;j++ ) {
140 if (j<3) fT0[j]=copy.fT0[j];
141 fSigmaSpecie[j]=copy.fSigmaSpecie[j];
142 fTrkExpTimes[j]=copy.fTrkExpTimes[j];
143 fThExpTimes[j]=copy.fThExpTimes[j];
144 }
0cf77d52 145
e866f574 146
aac12889 147}
148
149//___________________________________________________________________________
150AliAnalysisTaskTOFqa& AliAnalysisTaskTOFqa::operator=(const AliAnalysisTaskTOFqa& copy)
151{
152 //
153 // Assignment operator
154 //
155 if (this!=&copy) {
156 AliAnalysisTaskSE::operator=(copy) ;
157 fRunNumber=copy.fRunNumber;
158 fESD=copy.fESD;
159 fTrackFilter=copy.fTrackFilter;
160 fVertex=copy.fVertex;
e866f574 161 fESDpid=copy.fESDpid;
7a9f204e 162 // fTOFT0v1=copy.fTOFT0v1;
aac12889 163 fNTOFtracks=copy.fNTOFtracks;
4170635c 164 fEnableAdvancedCheck=copy.fEnableAdvancedCheck;
4170635c 165 fExpTimeBinWidth=copy.fExpTimeBinWidth;
166 fExpTimeRangeMin=copy.fExpTimeRangeMin;
167 fExpTimeRangeMax=copy.fExpTimeRangeMax;
168 fExpTimeSmallRangeMin=copy.fExpTimeSmallRangeMin;
169 fExpTimeSmallRangeMax=copy.fExpTimeSmallRangeMax;
154404b2 170 fMyTimeZeroTOF=copy.fMyTimeZeroTOF;
171 fMyTimeZeroTOFsigma=copy.fMyTimeZeroTOFsigma;
172 fMyTimeZeroTOFtracks=copy.fMyTimeZeroTOFtracks;
e866f574 173 for (Int_t j=0;j<5;j++ ) {
174 if (j<3) fT0[j]=copy.fT0[j];
175 fSigmaSpecie[j]=copy.fSigmaSpecie[j];
176 fTrkExpTimes[j]=copy.fTrkExpTimes[j];
177 fThExpTimes[j]=copy.fThExpTimes[j];
178 }
aac12889 179 fHlist=copy.fHlist;
e866f574 180 fHlistTimeZero=copy.fHlistTimeZero;
181 fHlistPID=copy.fHlistPID;
4170635c 182 fHpos=copy.fHpos;
183 fHneg=copy.fHneg;
aac12889 184 }
185 return *this;
186}
187
188//___________________________________________________________________________
189AliAnalysisTaskTOFqa::~AliAnalysisTaskTOFqa() {
190 //
191 //destructor
192 //
193
194 Info("~AliAnalysisTaskTOFqa","Calling Destructor");
e866f574 195 if (fESDpid) delete fESDpid;
7a9f204e 196 // if (fTOFT0v1) delete fTOFT0v1;
aac12889 197 if (fVertex) delete fVertex;
198 if (fTrackFilter) delete fTrackFilter;
4170635c 199 if (AliAnalysisManager::GetAnalysisManager()->IsProofMode()) return;
aac12889 200 if (fHlist) {
201 delete fHlist;
202 fHlist = 0;
203 }
e866f574 204 if (fHlistTimeZero) {
205 delete fHlistTimeZero;
206 fHlistTimeZero = 0;
207 }
208 if (fHlistPID){
209 delete fHlistPID;
210 fHlistPID = 0;
aac12889 211 }
4170635c 212 if (fHpos){
213 delete fHpos;
214 fHpos = 0;
215 }
216 if (fHneg){
217 delete fHneg;
218 fHneg = 0;
219 }
aac12889 220}
221
aac12889 222//________________________________________________________________________
223void AliAnalysisTaskTOFqa::UserCreateOutputObjects()
224{
7a9f204e 225 //
226 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
b0471367 227 if (!man) AliFatal("Analysis manager needed");
7a9f204e 228 AliInputEventHandler *inputHandler=dynamic_cast<AliInputEventHandler*>(man->GetInputEventHandler());
229 if (!inputHandler) AliFatal("Input handler needed");
230
231 //pid response object
232 fESDpid=(AliESDpid*)inputHandler->GetPIDResponse();
233 if (!fESDpid) AliError("PIDResponse object was not created");
234 // fESDpid->SetOADBPath("$ALICE_ROOT/OADB");
235
aac12889 236 //Defines output objects and histograms
237 Info("CreateOutputObjects","CreateOutputObjects (TList) of task %s", GetName());
238 OpenFile(1);
239 if (!fHlist) fHlist = new TList();
111b2155 240 fHlist->SetOwner(kTRUE);
e866f574 241 if (!fHlistTimeZero) fHlistTimeZero = new TList();
242 fHlistTimeZero->SetOwner(kTRUE);
243 if (!fHlistPID) fHlistPID = new TList();
244 fHlistPID->SetOwner(kTRUE);
4170635c 245 if (!fHpos) fHpos = new TList();
246 fHpos->SetOwner(kTRUE);
247 if (!fHneg) fHneg = new TList();
248 fHneg->SetOwner(kTRUE);
249
250 Int_t nExpTimeBins=1;
251 Int_t nExpTimeSmallBins=1;
252
253 if (fExpTimeRangeMax<fExpTimeRangeMin) {
254 SetExpTimeHistoRange(-25010.,25010.);
255 }
256 nExpTimeBins = TMath::Nint((fExpTimeRangeMax - fExpTimeRangeMin)/fExpTimeBinWidth);//ps
257 fExpTimeRangeMax=fExpTimeRangeMin+nExpTimeBins*fExpTimeBinWidth;//ps
258
259 if (fExpTimeSmallRangeMax<fExpTimeSmallRangeMin) {
260 SetExpTimeHistoSmallRange(-5002.,5002.);
261 }
262 nExpTimeSmallBins = TMath::Nint((fExpTimeSmallRangeMax - fExpTimeSmallRangeMin)/fExpTimeBinWidth);//ps
263 fExpTimeSmallRangeMax=fExpTimeSmallRangeMin+nExpTimeSmallBins*fExpTimeBinWidth;//ps
264
e866f574 265//0
4170635c 266 TH1I* hTOFmatchedESDperEvt = new TH1I("hTOFmatchedPerEvt", "Matched TOF tracks per event (|#eta| #leq 0.8 and pT #geq 0.3 GeV/c);TOF-matched ESD tracks;Events", 100, 0, 100) ;
e866f574 267 hTOFmatchedESDperEvt->Sumw2() ;
aac12889 268 hTOFmatchedESDperEvt->SetLineWidth(2);
269 hTOFmatchedESDperEvt->SetLineColor(kBlue);
e866f574 270 hTOFmatchedESDperEvt->SetMarkerStyle(20);
271 hTOFmatchedESDperEvt->SetMarkerSize(0.8);
272 hTOFmatchedESDperEvt->SetMarkerColor(kBlue);
aac12889 273 fHlist->AddLast(hTOFmatchedESDperEvt) ;
274 //1
275 TH1F* hTOFmatchedESDtime = new TH1F("hTOFmatchedESDtime", "Matched ESDs tracks: TOF Time spectrum; t [ns];Counts", 250, 0., 610. ) ;
e866f574 276 hTOFmatchedESDtime->Sumw2() ;
aac12889 277 hTOFmatchedESDtime->SetLineWidth(2);
278 hTOFmatchedESDtime->SetLineColor(kBlue);
279 hTOFmatchedESDtime->SetFillColor(kBlue);
e866f574 280 hTOFmatchedESDtime->SetDrawOption("BAR");
aac12889 281 fHlist->AddLast(hTOFmatchedESDtime) ;
282 //2
283 TH1F* hTOFmatchedESDrawTime = new TH1F("hTOFmatchedESDrawTime", "Matched ESDs tracks: TOF raw Time spectrum;t_{raw} [ns];Counts", 250, 0., 610.) ;
e866f574 284 hTOFmatchedESDrawTime->Sumw2() ;
aac12889 285 hTOFmatchedESDrawTime->SetLineWidth(2);
e866f574 286 hTOFmatchedESDrawTime->SetLineColor(kAzure+2);
287 hTOFmatchedESDrawTime->SetFillColor(kAzure+2);
288 hTOFmatchedESDrawTime->SetDrawOption("BAR");
aac12889 289 fHlist->AddLast(hTOFmatchedESDrawTime) ;
290 //3
291 TH1F* hTOFmatchedESDToT = new TH1F("hTOFmatchedESDToT", "Matched ESDs tracks: TOF ToT spectrum; ToT [ns];Counts",100, 0., 48.8) ;
e866f574 292 hTOFmatchedESDToT->Sumw2() ;
293 hTOFmatchedESDToT->SetLineColor(kOrange+1);
294 hTOFmatchedESDToT->SetMarkerColor(kOrange+1);
295 hTOFmatchedESDToT->SetFillColor(kOrange+1);
296 hTOFmatchedESDToT->SetDrawOption("BAR");
aac12889 297 fHlist->AddLast(hTOFmatchedESDToT) ;
298 //4
e866f574 299 TH1F* hTOFmatchedESDtrkLength = new TH1F("hTOFmatchedESDtrkLength", "Matched ESDs tracks length; Track length [cm];Counts", 1200, -400., 800) ;
300 hTOFmatchedESDtrkLength->Sumw2();
301 hTOFmatchedESDtrkLength->SetLineColor(kViolet-3);
302 hTOFmatchedESDtrkLength->SetMarkerColor(kViolet-3);
303 hTOFmatchedESDtrkLength->SetFillColor(kViolet-3);
304 hTOFmatchedESDtrkLength->SetDrawOption("BAR");
305 fHlist->AddLast(hTOFmatchedESDtrkLength);
306 //5
307 TH1F* hTOFmatchedESDP = new TH1F("hTOFmatchedESDP", "TPC-TOF matched tracks momentum distribution (GeV/c); p (GeV/c);tracks", 500,0.,5.) ;
308 hTOFmatchedESDP->Sumw2() ;
aac12889 309 hTOFmatchedESDP->SetLineColor(kBlue);
e866f574 310 hTOFmatchedESDP->SetMarkerStyle(20);
311 hTOFmatchedESDP->SetMarkerSize(0.7);
aac12889 312 hTOFmatchedESDP->SetMarkerColor(kBlue);
313 fHlist->AddLast(hTOFmatchedESDP) ;
e866f574 314 //6
aac12889 315 TH1F* hTOFmatchedESDPt = new TH1F("hTOFmatchedESDPt", "TPC-TOF matched tracks p_{T} distribution (GeV/c); p_{T}(GeV/c);tracks", 500,0.,5.) ;
e866f574 316 hTOFmatchedESDPt->Sumw2() ;
aac12889 317 hTOFmatchedESDPt->SetLineColor(kBlue);
e866f574 318 hTOFmatchedESDPt->SetMarkerStyle(21);
319 hTOFmatchedESDPt->SetMarkerSize(0.7);
aac12889 320 hTOFmatchedESDPt->SetMarkerColor(kBlue);
321 fHlist->AddLast(hTOFmatchedESDPt) ;
e866f574 322
aac12889 323 //7
c9232487 324 TH1F* hTOFmatchedESDeta = new TH1F("hTOFmatchedESDeta", "Matched ESDtracks #eta (p_{T} #geq 1.0 GeV/c); #eta;Counts", 200, -1., 1.) ;
e866f574 325 hTOFmatchedESDeta->Sumw2();
326 hTOFmatchedESDeta->SetLineColor(kBlue);
327 fHlist->AddLast(hTOFmatchedESDeta) ;
aac12889 328 //8
c9232487 329 TH1F* hTOFmatchedESDphi = new TH1F("hTOFmatchedESDphi", "Matched ESDtracks #phi (p_{T} #geq 1.0 GeV/c); #phi (deg);Counts", 72, 0., 360.) ;
e866f574 330 hTOFmatchedESDphi->Sumw2();
331 hTOFmatchedESDphi->SetLineColor(kBlue);
332 fHlist->AddLast(hTOFmatchedESDphi) ;
333
334 //9
572c1318 335 TH1F* hESDprimaryTrackP = new TH1F("hESDprimaryTrackP", "All ESDs tracks p distribution (GeV/c); p(GeV/c);tracks", 500, 0., 5.0) ;
e866f574 336 hESDprimaryTrackP->Sumw2();
aac12889 337 hESDprimaryTrackP->SetLineWidth(1);
e866f574 338 hESDprimaryTrackP->SetMarkerStyle(24);
339 hESDprimaryTrackP->SetMarkerSize(0.7);
340 hESDprimaryTrackP->SetMarkerColor(kRed);
341 hESDprimaryTrackP->SetLineColor(kRed);
aac12889 342 fHlist->AddLast(hESDprimaryTrackP);
e866f574 343 //10
344 TH1F* hESDprimaryTrackPt = new TH1F("hESDprimaryTrackPt", "ESDs primary tracks p_{T} distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
345 hESDprimaryTrackPt->Sumw2();
aac12889 346 hESDprimaryTrackPt->SetLineWidth(1);
e866f574 347 hESDprimaryTrackPt->SetMarkerStyle(25);
348 hESDprimaryTrackPt->SetMarkerSize(0.7);
349 hESDprimaryTrackPt->SetLineColor(kRed);
350 hESDprimaryTrackPt->SetMarkerColor(kRed);
aac12889 351 fHlist->AddLast(hESDprimaryTrackPt);
aac12889 352 //11
c9232487 353 TH1F* hTOFprimaryESDeta = new TH1F("hTOFprimaryESDeta", "Primary ESDtracks #eta (p_{T} #geq 1.0 GeV/c); #eta;Counts",200, -1., 1.) ;
e866f574 354 hTOFprimaryESDeta->Sumw2();
355 hTOFprimaryESDeta->SetLineColor(kRed);
aac12889 356 fHlist->AddLast(hTOFprimaryESDeta) ;
357 //12
c9232487 358 TH1F* hTOFprimaryESDphi = new TH1F("hTOFprimaryESDphi", "Primary ESDtracks #phi (p_{T} #geq 1.0 GeV/c);#phi (deg);Counts", 72, 0., 360.) ;
e866f574 359 hTOFprimaryESDphi->Sumw2();
360 hTOFprimaryESDphi->SetLineColor(kRed);
aac12889 361 fHlist->AddLast(hTOFprimaryESDphi) ;
e866f574 362 //13
363 TH2F* hTOFmatchedDxVsPtPos = new TH2F("hTOFmatchedDxVsPtPos", "Dx vs p_{T} for positive tracks;p_{T} (GeV/c); Dx [cm]; hits", 500,0.,5.,200, -10., 10.) ;
364 hTOFmatchedDxVsPtPos->Sumw2();
365 fHlist->AddLast(hTOFmatchedDxVsPtPos) ;
366 //14
367 TH2F* hTOFmatchedDxVsPtNeg = new TH2F("hTOFmatchedDxVsPtNeg", "Dx vs p_{T} for negative tracks;p_{T} (GeV/c); Dx [cm]; hits", 500,0.,5.,200, -10., 10.) ;
368 hTOFmatchedDxVsPtNeg->Sumw2();
369 fHlist->AddLast(hTOFmatchedDxVsPtNeg) ;
370
371 //15
372 TH2F* hTOFmatchedDzVsStrip = new TH2F("hTOFmatchedDzVsStrip", "Dz vs strip; strip (#eta); Dz [cm]; hits", 92,0.,92.,200, -10., 10.) ;
373 hTOFmatchedDzVsStrip->Sumw2();
374 fHlist->AddLast(hTOFmatchedDzVsStrip) ;
d18f2953 375
376 //16
377 TProfile *hTOFmatchedDxVsCh = new TProfile("hTOFmatchedDxVsCh","Dx vs channel; channel ID; Dx [cm]", 157248., 0.,157248.);
378 fHlist->AddLast(hTOFmatchedDxVsCh);
379
380 //17
381 TProfile *hTOFmatchedDzVsCh = new TProfile("hTOFmatchedDzVsCh","Dz vs channel; channel ID; Dz [cm]", 157248., 0.,157248.);
382 fHlist->AddLast(hTOFmatchedDzVsCh);
383
e866f574 384 //----------------------------------------------timeZero QA plots
385 //TimeZero 0
386 TH1D* hEventT0DetAND = new TH1D("hEventT0DetAND", "Event timeZero from T0AC detector ; t0 [ps]; events", 1000, -25000., 25000. ) ;
387 hEventT0DetAND->Sumw2() ;
aac12889 388 hEventT0DetAND->SetLineWidth(2);
389 hEventT0DetAND->SetLineColor(kRed);
390 hEventT0DetAND->SetFillColor(kRed);
e866f574 391 fHlistTimeZero->AddLast(hEventT0DetAND) ;
aac12889 392
e866f574 393 //TImeZero 1
394 TH1D* hEventT0DetA = new TH1D("hEventT0DetA", "Event timeZero from T0A detector; t0 [ps]; events", 1000, -25000., 25000. ) ;
395 hEventT0DetA->Sumw2() ;
aac12889 396 hEventT0DetA->SetLineWidth(2);
397 hEventT0DetA->SetLineColor(kBlue);
398 hEventT0DetA->SetFillColor(kBlue);
e866f574 399 fHlistTimeZero->AddLast(hEventT0DetA) ;
aac12889 400
e866f574 401 //TImeZero 2
402 TH1D* hEventT0DetC = new TH1D("hEventT0DetC", "Event timeZero from T0C detector; t0 [ps]; events", 1000, -25000., 25000.) ;
403 hEventT0DetC->Sumw2() ;
aac12889 404 hEventT0DetC->SetLineWidth(2);
405 hEventT0DetC->SetLineColor(kGreen);
406 hEventT0DetC->SetFillColor(kGreen);
e866f574 407 fHlistTimeZero->AddLast(hEventT0DetC);
408
409 //TimeZero 3
410 TH1F* hT0DetRes = new TH1F("hT0DetRes", "T0 detector (T0A-T0C)/2; (T0A-T0C)/2 [ps]; events", 200, -500.,500. ) ;
411 hT0DetRes->Sumw2() ;
412 hT0DetRes->SetMarkerStyle(24);
413 hT0DetRes->SetMarkerSize(0.7);
414 hT0DetRes->SetMarkerColor(kMagenta+2);
415 hT0DetRes->SetLineColor(kMagenta+2);
416 hT0DetRes->SetFillColor(kMagenta+2);
417 fHlistTimeZero->AddLast(hT0DetRes) ;
418
419 //timeZero 4
420 TH1F* hT0fill = new TH1F("hT0fill", "Event timeZero of fill; t0 [ps]; events", 1000, -25000., 25000. ) ;
421 hT0fill->Sumw2() ;
422 hT0fill->SetMarkerStyle(20);
423 hT0fill->SetMarkerColor(kBlack);
424 hT0fill->SetLineColor(kBlack);
425 fHlistTimeZero->AddLast(hT0fill) ;
426
427 //TimeZero 5
428 TH1F* hT0TOF = new TH1F("hT0TOF", "Event timeZero estimated by TOF; t0 [ps]; events", 1000, -25000., 25000. ) ;
429 hT0TOF->Sumw2() ;
430 hT0TOF->SetMarkerStyle(20);
431 hT0TOF->SetMarkerColor(kBlue);
432 hT0TOF->SetLineColor(kBlue);
433 hT0TOF->SetFillColor(kBlue);
434 fHlistTimeZero->AddLast(hT0TOF) ;
435
436
437 //timeZero 6
438 TH1F* hT0T0 = new TH1F("hT0T0", "Event timeZero measured by T0 detector (best between AC, A, C); t0 [ps]; events", 1000, -25000.,25000. ) ;
439 hT0T0->Sumw2() ;
440 hT0T0->SetMarkerStyle(20);
441 hT0T0->SetMarkerColor(kGreen+1);
442 hT0T0->SetLineColor(kGreen+1);
443 hT0T0->SetFillColor(kGreen+1);
444 fHlistTimeZero->AddLast(hT0T0) ;
445
446 //timeZero 7
447 TH1F* hT0best = new TH1F("hT0best", "Event timeZero estimated as T0best; t0 [ps]; events", 1000, -25000.,25000. ) ;
448 hT0best->Sumw2() ;
449 hT0best->SetMarkerStyle(20);
450 hT0best->SetMarkerColor(kRed);
451 hT0best->SetLineColor(kRed);
452 hT0best->SetFillColor(kRed);
453 fHlistTimeZero->AddLast(hT0best) ;
454
455 //TimeZero 8
572c1318 456 TH1F* hT0fillRes = new TH1F("hT0fillRes", "Resolution of fillT0; #sigma_{fillT0} [ps];events", 250, 0.,250. ) ;
e866f574 457 hT0fillRes->Sumw2() ;
458 hT0fillRes->SetMarkerStyle(21);
459 hT0fillRes->SetMarkerColor(kBlack);
460 hT0fillRes->SetLineColor(kBlack);
461 hT0fillRes->SetFillColor(kBlack);
462 fHlistTimeZero->AddLast(hT0fillRes) ;
aac12889 463
e866f574 464 //TimeZero 9
465 TH1F* hT0TOFRes = new TH1F("hT0TOFRes", "Resolution of timeZero from TOF; #sigma_{TOFT0} [ps];events", 250, 0.,250. ) ;
466 hT0TOFRes->Sumw2() ;
467 hT0TOFRes->SetLineWidth(1);
468 hT0TOFRes->SetMarkerStyle(21);
469 hT0TOFRes->SetMarkerColor(kBlue);
470 hT0TOFRes->SetLineColor(kBlue);
471 hT0TOFRes->SetFillColor(kBlue);
472 fHlistTimeZero->AddLast(hT0TOFRes) ;
aac12889 473
e866f574 474 //TimeZero 10
572c1318 475 TH1F* hT0T0Res = new TH1F("hT0T0Res", "Resolution of timeZero from T0;#sigma_{T0T0} [ps];events", 250, -0., 250. ) ;
476 hT0T0Res->Sumw2() ;
477 hT0T0Res->SetMarkerStyle(21);
478 hT0T0Res->SetMarkerColor(kGreen+1);
479 hT0T0Res->SetLineColor(kGreen+1);
480 hT0T0Res->SetFillColor(kGreen+1);
481 fHlistTimeZero->AddLast(hT0T0Res) ;
e866f574 482
483 //TimeZero 11
484 TH1F* hT0bestRes = new TH1F("hT0bestRes", "Resolution of bestT0; #sigma_{bestT0} [ps];events", 250, 0.,250. ) ;
485 hT0bestRes->Sumw2() ;
572c1318 486 hT0bestRes->SetMarkerStyle(21);
487 hT0bestRes->SetMarkerColor(kRed);
488 hT0bestRes->SetLineColor(kRed);
489 hT0bestRes->SetFillColor(kRed);
e866f574 490 fHlistTimeZero->AddLast(hT0bestRes) ;
491
492 //timeZero 12
493 TH2F* hT0TOFvsNtrk = new TH2F("hT0TOFvsNtrk", "Event timeZero estimated by TOF vs. number of tracks in event;TOF-matching tracks; t0 [ps]", 100, 0., 100.,1000,-25000.,25000. ) ;
494 hT0TOFvsNtrk->Sumw2() ;
495 fHlistTimeZero->AddLast(hT0TOFvsNtrk) ;
496
4170635c 497 //TimeZero 13
498 TH2F* hEventT0MeanVsVtx = new TH2F("hEventT0MeanVsVtx", "T0 detector: mean vs vertex ; (t0_{A}-t0_{C})/2 [ns]; (t0_{A}+t0_{C})/2 [ns]; events", 500, -25., 25., 500, -25., 25. ) ;
499 hEventT0MeanVsVtx->Sumw2() ;
500 fHlistTimeZero->AddLast(hEventT0MeanVsVtx) ;
501
502 //TimeZero 14
503 TH2F* hEventV0MeanVsVtx = new TH2F("hEventV0MeanVsVtx", "V0 detector: mean vs vertex ; (V0_{A}-V0_{C})/2 [ns]; (V0_{A}+V0_{C})/2 [ns]; events", 500, -50., 50., 500, -50., 50. ) ;
504 hEventV0MeanVsVtx->Sumw2() ;
505 fHlistTimeZero->AddLast(hEventV0MeanVsVtx) ;
c9232487 506
507 const Double_t startTimeMomBins[13]={ 0.0, 0.3, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 1.2, 1.5, 2., 3., 10.};
508
509 //TimeZero 15
510 TH2F* hStartTimeMaskMatched = new TH2F("hStartTimeMaskMatched","Start Time Mask vs p bin for matched tracks; p(GeV/c);", 12, startTimeMomBins, 8,0.,8.);
511 hStartTimeMaskMatched->Sumw2();
512 hStartTimeMaskMatched->GetYaxis()->SetBinLabel(1,"fill_t0");
513 hStartTimeMaskMatched->GetYaxis()->SetBinLabel(2,"tof_t0");
514 hStartTimeMaskMatched->GetYaxis()->SetBinLabel(3,"T0AC");
515 hStartTimeMaskMatched->GetYaxis()->SetBinLabel(4,"T0AC & tof_t0");
516 hStartTimeMaskMatched->GetYaxis()->SetBinLabel(5,"T0A");
517 hStartTimeMaskMatched->GetYaxis()->SetBinLabel(6,"T0A & tof_t0");
518 hStartTimeMaskMatched->GetYaxis()->SetBinLabel(7,"T0C");
519 hStartTimeMaskMatched->GetYaxis()->SetBinLabel(8,"T0C & tof_t0");
520 fHlistTimeZero->AddLast(hStartTimeMaskMatched);
521
522 //TimeZero 15
523 TH2F* hStartTimeMask = new TH2F("hStartTimeMask","Start Time Mask vs p bin for primary tracks; p(GeV/c);", 12, startTimeMomBins, 8,0.,8.);
524 hStartTimeMask->Sumw2();
525 hStartTimeMask->GetYaxis()->SetBinLabel(1,"fill_t0");
526 hStartTimeMask->GetYaxis()->SetBinLabel(2,"tof_t0");
527 hStartTimeMask->GetYaxis()->SetBinLabel(3,"T0AC");
528 hStartTimeMask->GetYaxis()->SetBinLabel(4,"T0AC & tof_t0");
529 hStartTimeMask->GetYaxis()->SetBinLabel(5,"T0A");
530 hStartTimeMask->GetYaxis()->SetBinLabel(6,"T0A & tof_t0");
531 hStartTimeMask->GetYaxis()->SetBinLabel(7,"T0C");
532 hStartTimeMask->GetYaxis()->SetBinLabel(8,"T0C & tof_t0");
533 fHlistTimeZero->AddLast(hStartTimeMask);
534
e866f574 535//--------------------------------------------- TOF PID QA plots
536 //PID 0
4170635c 537 TH2F* hTOFmatchedESDpVsBeta = new TH2F("hTOFmatchedESDpVsBeta", "Matched ESDs tracks beta vs. p; p(GeV/c); beta", 500, 0.0, 5.0, 150, 0., 1.5) ;
e866f574 538 fHlistPID->AddLast(hTOFmatchedESDpVsBeta);
111b2155 539
e866f574 540 //PID 1
4170635c 541 TH1F* hTOFmatchedMass= new TH1F("hTOFmatchedMass","Matched ESD tracks mass distribution - (L>0); M (GeV/c^{2}); entries", 500, 0., 5. );
e866f574 542 hTOFmatchedMass->Sumw2();
543 hTOFmatchedMass->SetLineWidth(2);
544 hTOFmatchedMass->SetLineColor(kBlue);
545 hTOFmatchedMass->SetLineColor(kBlue);
546 fHlistPID->AddLast(hTOFmatchedMass);
547
548 //PID 2
4170635c 549 TH2F* hTOFmatchedExpTimePiVsEta = new TH2F("hTOFmatchedExpTimePiVsEta", "ESDs t_{TOF}-t_{#pi,exp} (from tracking); strip (#eta); t_{TOF}-t_{#pi,exp} [ps]", 92, 0, 92, nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
e866f574 550 hTOFmatchedExpTimePiVsEta->Sumw2() ;
551 fHlistPID->AddLast(hTOFmatchedExpTimePiVsEta) ;
552
553 //PID 3
4170635c 554 TH1F* hTOFmatchedExpTimePi = new TH1F("hTOFmatchedExpTimePi", "ESDs t_{TOF}-t_{#pi,exp} (from tracking); t_{TOF}-t_{#pi,exp} [ps];Counts", nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 555 hTOFmatchedExpTimePi->Sumw2() ;
556 hTOFmatchedExpTimePi->SetLineWidth(1);
557 hTOFmatchedExpTimePi->SetLineColor(kRed);
558 hTOFmatchedExpTimePi->SetMarkerStyle(20);
559 hTOFmatchedExpTimePi->SetMarkerSize(0.8);
560 hTOFmatchedExpTimePi->SetMarkerColor(kRed);
561 fHlistPID->AddLast(hTOFmatchedExpTimePi) ;
7a9f204e 562
563 //PID 3bis
564 TH1F* hExpTimePiFillSub = new TH1F("hExpTimePiFillSub", "ESDs t_{TOF}-t_{#pi,exp}-t_{0,FILL} (from tracking); t_{TOF}-t_{#pi,exp} [ps];Counts", nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
565 hExpTimePiFillSub->Sumw2() ;
566 hExpTimePiFillSub->SetLineWidth(1);
567 hExpTimePiFillSub->SetLineColor(kRed);
568 hExpTimePiFillSub->SetMarkerStyle(20);
569 hExpTimePiFillSub->SetMarkerSize(0.8);
570 hExpTimePiFillSub->SetMarkerColor(kRed);
571 fHlistPID->AddLast(hExpTimePiFillSub) ;
572
e866f574 573
574 //PID 4
4170635c 575 TH2F* hTOFmatchedExpTimePiVsP = new TH2F("hTOFmatchedExpTimePiVsP", "ESDs t_{TOF}-t_{#pi,exp} (from tracking) Vs P ; p (GeV/c);t_{TOF}-t_{#pi,exp} [ps];Counts",500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 576 hTOFmatchedExpTimePiVsP->Sumw2() ;
577 fHlistPID->AddLast(hTOFmatchedExpTimePiVsP) ;
578
579 //PID 5
4170635c 580 TH1F* hTOFtheoreticalExpTimePi = new TH1F("hTOFtheoreticalExpTimePi", "ESDs t_{TOF}-t_{#pi,exp} (theoretical); t_{TOF}-t_{#pi,exp} [ps];Counts", nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 581 hTOFtheoreticalExpTimePi->Sumw2() ;
582 hTOFtheoreticalExpTimePi->SetLineWidth(1);
583 hTOFtheoreticalExpTimePi->SetLineColor(kRed);
584 hTOFtheoreticalExpTimePi->SetMarkerStyle(24);
585 hTOFtheoreticalExpTimePi->SetMarkerSize(0.8);
586 hTOFtheoreticalExpTimePi->SetMarkerColor(kRed);
587 fHlistPID->AddLast(hTOFtheoreticalExpTimePi) ;
588
589 //PID 6
4170635c 590 TH2F* hTOFtheoreticalExpTimePiVsP = new TH2F("hTOFtheoreticalExpTimePiVsP", "ESDs t_{TOF}-t_{#pi,exp} (theoretical) Vs P ; p (GeV/c);t_{TOF}-t_{#pi,exp} [ps];Counts",500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 591 hTOFtheoreticalExpTimePiVsP->Sumw2() ;
592 fHlistPID->AddLast(hTOFtheoreticalExpTimePiVsP) ;
593
594 //PID 7
595 TH2F* hTOFExpSigmaPi = new TH2F("hTOFExpSigmaPi", "ESDs TOF n#sigma_{PID,#pi} vs p_{T}; p_{T} (GeV/c); n#sigma_{PID,#pi};Tracks", 500,0.,5.,200, -10., 10. ) ;
596 hTOFExpSigmaPi->Sumw2() ;
597 fHlistPID->AddLast(hTOFExpSigmaPi) ;
598
599 //PID 8
4170635c 600 TH1F* hTOFmatchedExpTimeKa = new TH1F("hTOFmatchedExpTimeKa", "ESDs t_{TOF}-t_{K,exp} (from tracking); t_{TOF}-t_{K,exp} [ps];Counts", nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 601 hTOFmatchedExpTimeKa->Sumw2() ;
602 hTOFmatchedExpTimeKa->SetLineWidth(1);
603 hTOFmatchedExpTimeKa->SetLineColor(kBlue);
604 hTOFmatchedExpTimeKa->SetMarkerStyle(21);
605 hTOFmatchedExpTimeKa->SetMarkerSize(0.8);
606 hTOFmatchedExpTimeKa->SetMarkerColor(kBlue);
607 fHlistPID->AddLast(hTOFmatchedExpTimeKa);
608
609 //PID 9
4170635c 610 TH2F* hTOFmatchedExpTimeKaVsP = new TH2F("hTOFmatchedExpTimeKaVsP", "ESDs t_{TOF}-t_{K,exp} (from tracking) Vs P ; p (GeV/c);t_{TOF}-t_{K,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 611 hTOFmatchedExpTimeKaVsP->Sumw2() ;
612 fHlistPID->AddLast(hTOFmatchedExpTimeKaVsP) ;
613
614 //PID 10
4170635c 615 TH1F* hTOFtheoreticalExpTimeKa = new TH1F("hTOFtheoreticalExpTimeKa", "ESDs t_{TOF}-t_{K,exp} (theoretical); t_{TOF}-t_{K,exp} [ps];Counts", nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 616 hTOFtheoreticalExpTimeKa->Sumw2() ;
617 hTOFtheoreticalExpTimeKa->SetLineWidth(1);
618 hTOFtheoreticalExpTimeKa->SetLineColor(kBlue);
619 hTOFtheoreticalExpTimeKa->SetMarkerStyle(24);
620 hTOFtheoreticalExpTimeKa->SetMarkerSize(0.8);
621 hTOFtheoreticalExpTimeKa->SetMarkerColor(kBlue);
622 fHlistPID->AddLast(hTOFtheoreticalExpTimeKa) ;
623
624 //PID 11
4170635c 625 TH2F* hTOFtheoreticalExpTimeKaVsP = new TH2F("hTOFtheoreticalExpTimeKaVsP", "ESDs t_{TOF}-t_{K,exp} (theoretical) Vs P ; p (GeV/c);t_{TOF}-t_{K,exp} [ps];Counts",500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 626 hTOFtheoreticalExpTimeKaVsP->Sumw2() ;
627 fHlistPID->AddLast(hTOFtheoreticalExpTimeKaVsP) ;
628
629 //PID 12
630 TH2F* hTOFExpSigmaKa = new TH2F("hTOFExpSigmaKa", "ESDs TOF n#sigma_{PID,K} vs p_{T}; p_{T} (GeV/c);n#sigma_{PID,K};Tracks", 500, 0.,5.,200, -10., 10. ) ;
631 hTOFExpSigmaKa->Sumw2() ;
632 fHlistPID->AddLast(hTOFExpSigmaKa) ;
633
634 //PID 13
4170635c 635 TH1F* hTOFmatchedExpTimePro = new TH1F("hTOFmatchedExpTimePro", "ESDs t_{TOF}-t_{p,exp} (from tracking); t_{TOF}-t_{p,exp} [ps];Counts", nExpTimeBins, fExpTimeRangeMin,fExpTimeRangeMax) ;
e866f574 636 hTOFmatchedExpTimePro->Sumw2() ;
637 hTOFmatchedExpTimePro->SetLineWidth(1);
638 hTOFmatchedExpTimePro->SetLineColor(kGreen+1);
639 hTOFmatchedExpTimePro->SetMarkerStyle(22);
640 hTOFmatchedExpTimePro->SetMarkerSize(0.8);
641 hTOFmatchedExpTimePro->SetMarkerColor(kGreen+1);
642 fHlistPID->AddLast(hTOFmatchedExpTimePro) ;
643
644 //PID 14
4170635c 645 TH2F* hTOFmatchedExpTimeProVsP = new TH2F("hTOFmatchedExpTimeProVsP", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P ; p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 646 hTOFmatchedExpTimeProVsP->Sumw2() ;
647 fHlistPID->AddLast(hTOFmatchedExpTimeProVsP) ;
648
649 //PID 15
4170635c 650 TH1F* hTOFtheoreticalExpTimePro = new TH1F("hTOFtheoreticalExpTimePro", "ESDs t_{TOF}-t_{p,exp} (theoretical); t_{TOF}-t_{p,exp} [ps];Counts", nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 651 hTOFtheoreticalExpTimePro->Sumw2() ;
652 hTOFtheoreticalExpTimePro->SetLineWidth(1);
653 hTOFtheoreticalExpTimePro->SetLineColor(kGreen+1);
654 hTOFtheoreticalExpTimePro->SetMarkerStyle(26);
655 hTOFtheoreticalExpTimePro->SetMarkerSize(0.8);
656 hTOFtheoreticalExpTimePro->SetMarkerColor(kGreen+1);
657 fHlistPID->AddLast(hTOFtheoreticalExpTimePro) ;
658
659 //PID 16
4170635c 660 TH2F* hTOFtheoreticalExpTimeProVsP = new TH2F("hTOFtheoreticalExpTimeProVsP", "ESDs t_{TOF}-t_{p,exp} (theoretical) Vs P ; p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
e866f574 661 hTOFtheoreticalExpTimeProVsP->Sumw2() ;
662 fHlistPID->AddLast(hTOFtheoreticalExpTimeProVsP) ;
663
664 //PID 17
665 TH2F* hTOFExpSigmaPro = new TH2F("hTOFExpSigmaPro", "ESDs TOF n#sigma_{PID,p} vs. p_{T}; p_{T} (GeV/c); n#sigma_{PID,p};Tracks", 500, 0.,5.,200, -10., 10. ) ;
666 hTOFExpSigmaPro->Sumw2() ;
667 fHlistPID->AddLast(hTOFExpSigmaPro) ;
668
4170635c 669 //PID 18
670 TH2F* hTOFmatchedExpTimePiVsPTRDPos = new TH2F("hTOFmatchedExpTimePiVsPTRDPos", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (#phi_{outerTPC}#leq 30 || 150 #leq#phi_{outerTPC}#leq 230 || #phi_{outerTPC}#geq 310 ) ; p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
671 hTOFmatchedExpTimePiVsPTRDPos->Sumw2() ;
672 if (fEnableAdvancedCheck)
673 fHlistPID->AddLast(hTOFmatchedExpTimePiVsPTRDPos) ;
674
675 //PID 19
676 TH2F* hTOFmatchedExpTimePiVsPNoTRDPos = new TH2F("hTOFmatchedExpTimePiVsPNoTRDPos", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (50 #leq#phi_{outerTPC}#leq 130 || 250 #leq#phi_{outerTPC}#leq 290); p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
677 hTOFmatchedExpTimePiVsPNoTRDPos->Sumw2() ;
678 if (fEnableAdvancedCheck)
679 fHlistPID->AddLast(hTOFmatchedExpTimePiVsPNoTRDPos) ;
680
681 //PID 20
682 TH2F* hTOFmatchedExpTimePiVsPTRDNeg = new TH2F("hTOFmatchedExpTimePiVsPTRDNeg", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (#phi_{outerTPC}#leq 30 || 150 #leq#phi_{outerTPC}#leq 230 || #phi_{outerTPC}#geq 310 ) ; p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
683 hTOFmatchedExpTimePiVsPTRDNeg->Sumw2() ;
684 if (fEnableAdvancedCheck)
685 fHlistPID->AddLast(hTOFmatchedExpTimePiVsPTRDNeg) ;
686
687 //PID 21
688 TH2F* hTOFmatchedExpTimePiVsPNoTRDNeg = new TH2F("hTOFmatchedExpTimePiVsPNoTRDNeg", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (50 #leq#phi_{outerTPC}#leq 130 || 250 #leq#phi_{outerTPC}#leq 290); p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
689 hTOFmatchedExpTimePiVsPNoTRDNeg->Sumw2() ;
690 if (fEnableAdvancedCheck)
691 fHlistPID->AddLast(hTOFmatchedExpTimePiVsPNoTRDNeg) ;
692
693 //PID 22
694 TH2F* hTOFmatchedExpTimeKaVsPTRDPos = new TH2F("hTOFmatchedExpTimeKaVsPTRDPos", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (#phi_{outerTPC}#leq 30 || 150 #leq#phi_{outerTPC}#leq 230 || #phi_{outerTPC}#geq 310 ) ; p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
695 hTOFmatchedExpTimeKaVsPTRDPos->Sumw2() ;
696 if (fEnableAdvancedCheck)
697 fHlistPID->AddLast(hTOFmatchedExpTimeKaVsPTRDPos) ;
698
699 //PID 23
700 TH2F* hTOFmatchedExpTimeKaVsPNoTRDPos = new TH2F("hTOFmatchedExpTimeKaVsPNoTRDPos", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (50 #leq#phi_{outerTPC}#leq 130 || 250 #leq#phi_{outerTPC}#leq 290); p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
701 hTOFmatchedExpTimeKaVsPNoTRDPos->Sumw2() ;
702 if (fEnableAdvancedCheck)
703 fHlistPID->AddLast(hTOFmatchedExpTimeKaVsPNoTRDPos) ;
704
705 //PID 24
706 TH2F* hTOFmatchedExpTimeKaVsPTRDNeg = new TH2F("hTOFmatchedExpTimeKaVsPTRDNeg", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (#phi_{outerTPC}#leq 30 || 150 #leq#phi_{outerTPC}#leq 230 || #phi_{outerTPC}#geq 310 ) ; p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
707 hTOFmatchedExpTimeKaVsPTRDNeg->Sumw2() ;
708 if (fEnableAdvancedCheck)
709 fHlistPID->AddLast(hTOFmatchedExpTimeKaVsPTRDNeg) ;
710
711 //PID 25
712 TH2F* hTOFmatchedExpTimeKaVsPNoTRDNeg = new TH2F("hTOFmatchedExpTimeKaVsPNoTRDNeg", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (50 #leq#phi_{outerTPC}#leq 130 || 250 #leq#phi_{outerTPC}#leq 290); p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
713 hTOFmatchedExpTimeKaVsPNoTRDNeg->Sumw2() ;
714 if (fEnableAdvancedCheck)
715 fHlistPID->AddLast(hTOFmatchedExpTimeKaVsPNoTRDNeg) ;
716
717 //PID 26
718 TH2F* hTOFmatchedExpTimeProVsPTRDPos = new TH2F("hTOFmatchedExpTimeProVsPTRDPos", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (#phi_{outerTPC}#leq 30 || 150 #leq#phi_{outerTPC}#leq 230 || #phi_{outerTPC}#geq 310 ) ; p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
719 hTOFmatchedExpTimeProVsPTRDPos->Sumw2() ;
720 if (fEnableAdvancedCheck)
721 fHlistPID->AddLast(hTOFmatchedExpTimeProVsPTRDPos) ;
722
723 //PID 27
724 TH2F* hTOFmatchedExpTimeProVsPNoTRDPos = new TH2F("hTOFmatchedExpTimeProVsPNoTRDPos", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (50 #leq#phi_{outerTPC}#leq 130 || 250 #leq#phi_{outerTPC}#leq 290); p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
725 hTOFmatchedExpTimeProVsPNoTRDPos->Sumw2() ;
726 if (fEnableAdvancedCheck)
727 fHlistPID->AddLast(hTOFmatchedExpTimeProVsPNoTRDPos) ;
728
729 //PID 28
572c1318 730 TH2F* hTOFmatchedExpTimeProVsPTRDNeg = new TH2F("hTOFmatchedExpTimeProVsPTRDNeg", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (#phi_{outerTPC}#leq 30 || 150 #leq#phi_{outerTPC}#leq 230 || #phi_{outerTPC}#geq 310 ) ; p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
4170635c 731 hTOFmatchedExpTimeProVsPTRDNeg->Sumw2() ;
732 if (fEnableAdvancedCheck)
733 fHlistPID->AddLast(hTOFmatchedExpTimeProVsPTRDNeg) ;
734
735 //PID 29
736 TH2F* hTOFmatchedExpTimeProVsPNoTRDNeg = new TH2F("hTOFmatchedExpTimeProVsPNoTRDNeg", "ESDs t_{TOF}-t_{p,exp} (from tracking) Vs P (50 #leq#phi_{outerTPC}#leq 130 || 250 #leq#phi_{outerTPC}#leq 290); p (GeV/c);t_{TOF}-t_{p,exp} [ps];Counts",500, 0.,5.,nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
737 hTOFmatchedExpTimeProVsPNoTRDNeg->Sumw2() ;
738 if (fEnableAdvancedCheck)
739 fHlistPID->AddLast(hTOFmatchedExpTimeProVsPNoTRDNeg) ;
740
b5c128f2 741//PID 30
154404b2 742 TH2F* hTOFmatchedTimePion1GeV = new TH2F("hTOFmatchedTimePion1GeV", "ESDs t_{TOF}-t_{0}^{TOF}-t_{#pi,exp} (from tracking) for 0.95 <= p_{T} <= 1.05 GeV/c; n tracks used for TOF_T0; t_{TOF}-t_{0}^{TOF}-t_{#pi,exp} [ps];Counts", 1000, 0., 1000., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
b5c128f2 743 hTOFmatchedTimePion1GeV->Sumw2() ;
b5c128f2 744 fHlistPID->AddLast(hTOFmatchedTimePion1GeV) ;
745
154404b2 746 //PID 31
747 TH2F* hTimeT0subtractedPionVsP = new TH2F("hTimeT0subtractedPionVsP", "ESDs t_{TOF}-t_{0}^{TOF}-t_{#pi,exp} vs p; p (GeV/c); t_{TOF}-t_{0}^{TOF}-t_{#pi,exp} [ps];Counts", 500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
748 hTimeT0subtractedPionVsP->Sumw2() ;
749 fHlistPID->AddLast(hTimeT0subtractedPionVsP) ;
750
751//PID 32
752 TH2F* hTimeT0subtractedKaonVsP = new TH2F("hTimeT0subtractedKaonVsP", "ESDs t_{TOF}-t_{0}^{TOF}-t_{K,exp} vs p; p (GeV/c); t_{TOF}-t_{0}^{TOF}-t_{K,exp} [ps];Counts", 500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
753 hTimeT0subtractedKaonVsP->Sumw2() ;
754 fHlistPID->AddLast(hTimeT0subtractedKaonVsP) ;
755
756//PID 33
757 TH2F* hTimeT0subtractedProtonVsP = new TH2F("hTimeT0subtractedProtonVsP", "ESDs t_{TOF}-t_{0}^{TOF}-t_{p,exp} vs p; p(GeV/c) t_{TOF}-t_{0}^{TOF}-t_{p,exp} [ps];Counts", 500, 0.,5., nExpTimeBins, fExpTimeRangeMin, fExpTimeRangeMax) ;
758 hTimeT0subtractedProtonVsP->Sumw2() ;
759 fHlistPID->AddLast(hTimeT0subtractedProtonVsP) ;
760
4170635c 761 //----------------------------------------------------------POSITIVE TRACKS
762 //0
763 TH1F* hTOFmatchedESDtrkLengthPos = new TH1F("hTOFmatchedESDtrkLengthPos", "Matched positive ESDs tracks length; Track length [cm];Counts", 1600, -800., 800) ;
764 hTOFmatchedESDtrkLengthPos->Sumw2();
765 hTOFmatchedESDtrkLengthPos->SetLineColor(kRed);
766 hTOFmatchedESDtrkLengthPos->SetMarkerColor(kRed);
767 hTOFmatchedESDtrkLengthPos->SetFillColor(kRed);
768 hTOFmatchedESDtrkLengthPos->SetDrawOption("BAR");
769 if (fEnableAdvancedCheck)
770 fHpos->AddLast(hTOFmatchedESDtrkLengthPos);
771 //1
772 TH1F* hTOFmatchedESDPPos = new TH1F("hTOFmatchedESDPPos", "TPC-TOF matched positive tracks momentum distribution (GeV/c); p (GeV/c);tracks", 500,0.,5.) ;
773 hTOFmatchedESDPPos->Sumw2() ;
774 hTOFmatchedESDPPos->SetLineColor(kRed);
775 hTOFmatchedESDPPos->SetMarkerStyle(20);
776 hTOFmatchedESDPPos->SetMarkerSize(0.7);
777 hTOFmatchedESDPPos->SetMarkerColor(kRed);
778 if (fEnableAdvancedCheck)
779 fHpos->AddLast(hTOFmatchedESDPPos) ;
780 //2
781 TH1F* hTOFmatchedESDPtPos = new TH1F("hTOFmatchedESDPtPos", "TPC-TOF positive matched tracks p_{T} distribution (GeV/c); p_{T}(GeV/c);tracks", 500,0.,5.) ;
782 hTOFmatchedESDPtPos->Sumw2() ;
783 hTOFmatchedESDPtPos->SetLineColor(kRed);
784 hTOFmatchedESDPtPos->SetMarkerStyle(21);
785 hTOFmatchedESDPtPos->SetMarkerSize(0.7);
786 hTOFmatchedESDPtPos->SetMarkerColor(kRed);
787 if (fEnableAdvancedCheck)
788 fHpos->AddLast(hTOFmatchedESDPtPos) ;
789
790 //3
c9232487 791 TH1F* hTOFmatchedESDetaPos = new TH1F("hTOFmatchedESDetaPos", "Matched positive ESD tracks #eta (p_{T} #geq 1.0 GeV/c); eta;Counts", 200, -1., 1.) ;
4170635c 792 hTOFmatchedESDetaPos->Sumw2();
793 hTOFmatchedESDetaPos->SetLineColor(kRed);
794 if (fEnableAdvancedCheck)
795fHpos->AddLast(hTOFmatchedESDetaPos) ;
796 //4
495628f1 797 TH1F* hTOFmatchedESDphiPos = new TH1F("hTOFmatchedESDphiPos", "Matched Positive ESD tracks #phi (p_{T} #geq 1.0 GeV/c); #phi_{out} (deg);Counts", 72, 0., 360.) ;
4170635c 798 hTOFmatchedESDphiPos->Sumw2();
799 hTOFmatchedESDphiPos->SetLineColor(kRed);
800 if (fEnableAdvancedCheck)
801 fHpos->AddLast(hTOFmatchedESDphiPos) ;
802
803 //5
804 TH1F* hESDmatchedTrackPtPosTRDout = new TH1F("hESDmatchedTrackPtPosTRDout", "ESDs Pos matched tracks p_{T} with kTRDout distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
805 hESDmatchedTrackPtPosTRDout->Sumw2();
806 hESDmatchedTrackPtPosTRDout->SetLineWidth(1);
807 hESDmatchedTrackPtPosTRDout->SetMarkerStyle(20);
808 hESDmatchedTrackPtPosTRDout->SetMarkerSize(0.7);
809 hESDmatchedTrackPtPosTRDout->SetLineColor(kRed);
810 hESDmatchedTrackPtPosTRDout->SetMarkerColor(kRed);
811 if (fEnableAdvancedCheck)
812 fHpos->AddLast(hESDmatchedTrackPtPosTRDout);
813
814 //6
815 TH1F* hESDmatchedTrackPtPosNoTRDout = new TH1F("hESDmatchedTrackPtPosNoTRDout", "ESDs Pos matched tracks p_{T} with !kTRDout distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
816 hESDmatchedTrackPtPosNoTRDout->Sumw2();
817 hESDmatchedTrackPtPosNoTRDout->SetLineWidth(1);
818 hESDmatchedTrackPtPosNoTRDout->SetMarkerStyle(25);
819 hESDmatchedTrackPtPosNoTRDout->SetMarkerSize(0.7);
820 hESDmatchedTrackPtPosNoTRDout->SetLineColor(kRed);
821 hESDmatchedTrackPtPosNoTRDout->SetMarkerColor(kRed);
822 if (fEnableAdvancedCheck)
823 fHpos->AddLast(hESDmatchedTrackPtPosNoTRDout);
824
825 //7
572c1318 826 TH1F* hESDprimaryTrackPPos = new TH1F("hESDprimaryTrackPPos", "All Pos ESDs tracks p distribution (GeV/c); p(GeV/c);tracks", 500, 0., 5.0) ;
4170635c 827 hESDprimaryTrackPPos->Sumw2();
828 hESDprimaryTrackPPos->SetLineWidth(1);
829 hESDprimaryTrackPPos->SetMarkerStyle(24);
830 hESDprimaryTrackPPos->SetMarkerSize(0.7);
831 hESDprimaryTrackPPos->SetMarkerColor(kRed);
832 hESDprimaryTrackPPos->SetLineColor(kRed);
833 if (fEnableAdvancedCheck)
834 fHpos->AddLast(hESDprimaryTrackPPos);
835 //8
836 TH1F* hESDprimaryTrackPtPos = new TH1F("hESDprimaryTrackPtPos", "ESDs Pos primary tracks p_{T} distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
837 hESDprimaryTrackPtPos->Sumw2();
838 hESDprimaryTrackPtPos->SetLineWidth(1);
839 hESDprimaryTrackPtPos->SetMarkerStyle(25);
840 hESDprimaryTrackPtPos->SetMarkerSize(0.7);
841 hESDprimaryTrackPtPos->SetLineColor(kRed);
842 hESDprimaryTrackPtPos->SetMarkerColor(kRed);
843 if (fEnableAdvancedCheck)
844 fHpos->AddLast(hESDprimaryTrackPtPos);
845 //9
c9232487 846 TH1F* hTOFprimaryESDetaPos = new TH1F("hTOFprimaryESDetaPos", "Primary ESD Pos tracks #eta (p_{T} #geq 1.0 GeV/c); #eta;Counts", 200, -1., 1.) ;
4170635c 847 hTOFprimaryESDetaPos->Sumw2();
848 hTOFprimaryESDetaPos->SetLineColor(kRed);
849 if (fEnableAdvancedCheck)
850 fHpos->AddLast(hTOFprimaryESDetaPos) ;
851 //10
495628f1 852 TH1F* hTOFprimaryESDphiPos = new TH1F("hTOFprimaryESDphiPos", "Primary ESD Pos tracks #phi_{out} (p_{T} #geq 1.0 GeV/c);#phi (deg);Counts", 72, 0., 360.) ;
4170635c 853 hTOFprimaryESDphiPos->Sumw2();
854 hTOFprimaryESDphiPos->SetLineColor(kRed);
855 if (fEnableAdvancedCheck)
856 fHpos->AddLast(hTOFprimaryESDphiPos) ;
857
858 //11
859 TH1F* hESDprimaryTrackPtPosTRDout = new TH1F("hESDprimaryTrackPtPosTRDout", "ESDs Pos primary tracks p_{T} with kTRDout distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
860 hESDprimaryTrackPtPosTRDout->Sumw2();
861 hESDprimaryTrackPtPosTRDout->SetLineWidth(1);
862 hESDprimaryTrackPtPosTRDout->SetMarkerStyle(20);
863 hESDprimaryTrackPtPosTRDout->SetMarkerSize(0.7);
864 hESDprimaryTrackPtPosTRDout->SetLineColor(kRed);
865 hESDprimaryTrackPtPosTRDout->SetMarkerColor(kRed);
866 if (fEnableAdvancedCheck)
867 fHpos->AddLast(hESDprimaryTrackPtPosTRDout);
868
869 //12
870 TH1F* hESDprimaryTrackPtPosNoTRDout = new TH1F("hESDprimaryTrackPtPosNoTRDout", "ESDs Pos primary tracks p_{T} with !kTRDout distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
871 hESDprimaryTrackPtPosNoTRDout->Sumw2();
872 hESDprimaryTrackPtPosNoTRDout->SetLineWidth(1);
873 hESDprimaryTrackPtPosNoTRDout->SetMarkerStyle(25);
874 hESDprimaryTrackPtPosNoTRDout->SetMarkerSize(0.7);
875 hESDprimaryTrackPtPosNoTRDout->SetLineColor(kRed);
876 hESDprimaryTrackPtPosNoTRDout->SetMarkerColor(kRed);
877 if (fEnableAdvancedCheck)
878 fHpos->AddLast(hESDprimaryTrackPtPosNoTRDout);
879
880 //13
c9232487 881 TH1F* hESDprimaryTrackEtaPosTRDout = new TH1F("hESDprimaryTrackEtaPosTRDout", "ESDs Pos primary tracks #eta with kTRDout (p_{T} #geq 1.0 GeV/c); #eta;tracks", 200, -1.0, 1.0) ;
4170635c 882 hESDprimaryTrackEtaPosTRDout->Sumw2();
883 hESDprimaryTrackEtaPosTRDout->SetLineWidth(1);
884 hESDprimaryTrackEtaPosTRDout->SetMarkerStyle(20);
885 hESDprimaryTrackEtaPosTRDout->SetMarkerSize(0.7);
886 hESDprimaryTrackEtaPosTRDout->SetLineColor(kBlue);
887 hESDprimaryTrackEtaPosTRDout->SetMarkerColor(kBlue);
888 if (fEnableAdvancedCheck)
889 fHpos->AddLast(hESDprimaryTrackEtaPosTRDout);
890
891 //14
c9232487 892 TH1F* hESDprimaryTrackEtaPosNoTRDout = new TH1F("hESDprimaryTrackEtaPosNoTRDout", "ESDs Pos primary tracks #eta with !kTRDout (p_{T} #geq 1.0 GeV/c);#eta;tracks", 200, -1.0, 1.0) ;
4170635c 893 hESDprimaryTrackEtaPosNoTRDout->Sumw2();
894 hESDprimaryTrackEtaPosNoTRDout->SetLineWidth(1);
895 hESDprimaryTrackEtaPosNoTRDout->SetMarkerStyle(25);
896 hESDprimaryTrackEtaPosNoTRDout->SetMarkerSize(0.7);
897 hESDprimaryTrackEtaPosNoTRDout->SetLineColor(kBlue);
898 hESDprimaryTrackEtaPosNoTRDout->SetMarkerColor(kBlue);
899 if (fEnableAdvancedCheck)
900 fHpos->AddLast(hESDprimaryTrackEtaPosNoTRDout);
901
902 //15
495628f1 903 TH1F* hESDprimaryTrackPhiPosTRDout = new TH1F("hESDprimaryTrackPhiPosTRDout", "ESDs Pos primary tracks #phi with kTRDout (p_{T} #geq 1.0 GeV/c); #phi_{out}(deg);tracks", 72, 0., 360.) ;
4170635c 904 hESDprimaryTrackPhiPosTRDout->Sumw2();
905 hESDprimaryTrackPhiPosTRDout->SetLineWidth(1);
906 hESDprimaryTrackPhiPosTRDout->SetMarkerStyle(20);
907 hESDprimaryTrackPhiPosTRDout->SetMarkerSize(0.7);
908 hESDprimaryTrackPhiPosTRDout->SetLineColor(kBlue);
909 hESDprimaryTrackPhiPosTRDout->SetMarkerColor(kBlue);
910 if (fEnableAdvancedCheck)
911 fHpos->AddLast(hESDprimaryTrackPhiPosTRDout);
912
913 //16
495628f1 914 TH1F* hESDprimaryTrackPhiPosNoTRDout = new TH1F("hESDprimaryTrackPhiPosNoTRDout", "ESDs Pos primary tracks #phi with !kTRDout (p_{T} #geq 1.0 GeV/c); #phi_{out}(deg);tracks", 72, 0., 360.) ;
4170635c 915 hESDprimaryTrackPhiPosNoTRDout->Sumw2();
916 hESDprimaryTrackPhiPosNoTRDout->SetLineWidth(1);
917 hESDprimaryTrackPhiPosNoTRDout->SetMarkerStyle(25);
918 hESDprimaryTrackPhiPosNoTRDout->SetMarkerSize(0.7);
919 hESDprimaryTrackPhiPosNoTRDout->SetLineColor(kBlue);
920 hESDprimaryTrackPhiPosNoTRDout->SetMarkerColor(kBlue);
921 if (fEnableAdvancedCheck)
922 fHpos->AddLast(hESDprimaryTrackPhiPosNoTRDout);
923
924 //POS 17
925 TH2F* hTOFmatchedExpTimeProVsPhiPos = new TH2F("hTOFmatchedExpTimeProVsPhiPos", "ESDs t_{TOF}-t_{p,exp} vs #phi at TOF (r=378.cm) (p_{T}<1GeV/c);#phi (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., 500, -5000., 5000. ) ;
926 hTOFmatchedExpTimeProVsPhiPos->Sumw2() ;
927 if (fEnableAdvancedCheck)
928 fHpos->AddLast(hTOFmatchedExpTimeProVsPhiPos) ;
929
930 //POS 18
931 TH2F* hTOFmatchedExpTimeProVsPhiVertexPos = new TH2F("hTOFmatchedExpTimeProVsPhiVertexPos", "ESDs t_{TOF}-t_{p,exp} vs #phi at vtx (p_{T}<1GeV/c);#phi (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
932 hTOFmatchedExpTimeProVsPhiVertexPos->Sumw2() ;
933 if (fEnableAdvancedCheck)
934 fHpos->AddLast(hTOFmatchedExpTimeProVsPhiVertexPos) ;
935
936 //POS 19
937 TH2F* hTOFmatchedExpTimeProVsPhiTPCPos = new TH2F("hTOFmatchedExpTimeProVsPhiTPCPos", "ESDs t_{TOF}-t_{p,exp} vs #phi at outer TPC (p_{T}<1GeV/c);#phi (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
938 hTOFmatchedExpTimeProVsPhiTPCPos->Sumw2() ;
939 if (fEnableAdvancedCheck)
940 fHpos->AddLast(hTOFmatchedExpTimeProVsPhiTPCPos) ;
941
942 //20
c9232487 943 TH1F* hESDmatchedTrackEtaPosTRDout = new TH1F("hESDmatchedTrackEtaPosTRDout", "ESDs Pos matched tracks #eta with kTRDout (p_{T} #geq 1.0 GeV/c); #eta;tracks", 200, -1.0, 1.0) ;
4170635c 944 hESDmatchedTrackEtaPosTRDout->Sumw2();
945 hESDmatchedTrackEtaPosTRDout->SetLineWidth(1);
946 hESDmatchedTrackEtaPosTRDout->SetMarkerStyle(20);
947 hESDmatchedTrackEtaPosTRDout->SetMarkerSize(0.7);
948 hESDmatchedTrackEtaPosTRDout->SetLineColor(kBlue);
949 hESDmatchedTrackEtaPosTRDout->SetMarkerColor(kBlue);
950 if (fEnableAdvancedCheck)
951 fHpos->AddLast(hESDmatchedTrackEtaPosTRDout);
952
953 //21
c9232487 954 TH1F* hESDmatchedTrackEtaPosNoTRDout = new TH1F("hESDmatchedTrackEtaPosNoTRDout", "ESDs Pos matched tracks #eta with !kTRDout (p_{T} #geq 1.0 GeV/c);#eta;tracks", 200, -1.0, 1.0) ;
4170635c 955 hESDmatchedTrackEtaPosNoTRDout->Sumw2();
956 hESDmatchedTrackEtaPosNoTRDout->SetLineWidth(1);
957 hESDmatchedTrackEtaPosNoTRDout->SetMarkerStyle(25);
958 hESDmatchedTrackEtaPosNoTRDout->SetMarkerSize(0.7);
959 hESDmatchedTrackEtaPosNoTRDout->SetLineColor(kBlue);
960 hESDmatchedTrackEtaPosNoTRDout->SetMarkerColor(kBlue);
961 if (fEnableAdvancedCheck)
962 fHpos->AddLast(hESDmatchedTrackEtaPosNoTRDout);
963
964 //22
495628f1 965 TH1F* hESDmatchedTrackPhiPosTRDout = new TH1F("hESDmatchedTrackPhiPosTRDout", "ESDs Pos matched tracks #phi with kTRDout (p_{T} #geq 1.0 GeV/c); #phi_{out}(deg);tracks", 72, 0., 360.) ;
4170635c 966 hESDmatchedTrackPhiPosTRDout->Sumw2();
967 hESDmatchedTrackPhiPosTRDout->SetLineWidth(1);
968 hESDmatchedTrackPhiPosTRDout->SetMarkerStyle(20);
969 hESDmatchedTrackPhiPosTRDout->SetMarkerSize(0.7);
970 hESDmatchedTrackPhiPosTRDout->SetLineColor(kBlue);
971 hESDmatchedTrackPhiPosTRDout->SetMarkerColor(kBlue);
972 if (fEnableAdvancedCheck)
973 fHpos->AddLast(hESDmatchedTrackPhiPosTRDout);
974
975 //23
495628f1 976 TH1F* hESDmatchedTrackPhiPosNoTRDout = new TH1F("hESDmatchedTrackPhiPosNoTRDout", "ESDs Pos matched tracks #phi with !kTRDout (p_{T} #geq 1.0 GeV/c); #phi_{out}(deg);tracks", 72, 0., 360.) ;
4170635c 977 hESDmatchedTrackPhiPosNoTRDout->Sumw2();
978 hESDmatchedTrackPhiPosNoTRDout->SetLineWidth(1);
979 hESDmatchedTrackPhiPosNoTRDout->SetMarkerStyle(25);
980 hESDmatchedTrackPhiPosNoTRDout->SetMarkerSize(0.7);
981 hESDmatchedTrackPhiPosNoTRDout->SetLineColor(kBlue);
982 hESDmatchedTrackPhiPosNoTRDout->SetMarkerColor(kBlue);
983 if (fEnableAdvancedCheck)
984 fHpos->AddLast(hESDmatchedTrackPhiPosNoTRDout);
985
986 //POS 24
495628f1 987 TH2F* hTOFmatchedExpTimePiVsPhiTPCPos = new TH2F("hTOFmatchedExpTimePiVsPhiTPCPos", "ESDs t_{TOF}-t_{#pi,exp} vs #phi at outer TPC (p_{T}<1GeV/c);#phi_{out} (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
4170635c 988 hTOFmatchedExpTimePiVsPhiTPCPos->Sumw2() ;
989 if (fEnableAdvancedCheck)
990 fHpos->AddLast(hTOFmatchedExpTimePiVsPhiTPCPos) ;
991
992 //POS 25
495628f1 993 TH2F* hTOFmatchedExpTimeKaVsPhiTPCPos = new TH2F("hTOFmatchedExpTimeKaVsPhiTPCPos", "ESDs t_{TOF}-t_{K,exp} vs #phi at outer TPC (p_{T}<1GeV/c);#phi_{out} (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
4170635c 994 hTOFmatchedExpTimeKaVsPhiTPCPos->Sumw2() ;
995 if (fEnableAdvancedCheck)
996 fHpos->AddLast(hTOFmatchedExpTimeKaVsPhiTPCPos) ;
997
495628f1 998 //POS 26
999 TH2F* hTOFprimaryEtaVsPhiOutPos = new TH2F("hTOFprimaryEtaVsPhiOutPos", "Positive tracks, p_{T}>1GeV/c;#phi_{out} (degree); #eta; Counts", 72, 0., 360., 20, -1.,1.) ;
1000 hTOFprimaryEtaVsPhiOutPos->Sumw2() ;
1001 if (fEnableAdvancedCheck)
1002 fHpos->AddLast(hTOFprimaryEtaVsPhiOutPos) ;
1003
1004 //POS 27
1005 TH2F* hTOFmatchedEtaVsPhiOutPos = new TH2F("hTOFmatchedEtaVsPhiOutPos", "Positive tracks, p_{T}>1GeV/c;#phi_{out} (degree); #eta; Counts", 72, 0., 360., 20, -1.,1.) ;
1006 hTOFmatchedEtaVsPhiOutPos->Sumw2() ;
1007 if (fEnableAdvancedCheck)
1008 fHpos->AddLast(hTOFmatchedEtaVsPhiOutPos) ;
1009
1010 //POS 28
1011 TH2F* hTOFprimaryPtVsPhiOutPos = new TH2F("hTOFprimaryPtVsPhiOutPos", "Positive tracks;#phi_{out}(degree); p_{T}(GeV/c); Counts", 500, 0., 5., 20, -1.,1.) ;
1012 hTOFprimaryPtVsPhiOutPos->Sumw2() ;
1013 if (fEnableAdvancedCheck)
1014 fHpos->AddLast(hTOFprimaryPtVsPhiOutPos) ;
1015
1016 //POS 29
1017 TH2F* hTOFmatchedPtVsPhiOutPos = new TH2F("hTOFmatchedPtVsPhiOutPos", "Positive tracks;#phi_{out}(degree); p_{T}(GeV/c); Counts", 500, 0., 5., 20, -1.,1.) ;
1018 hTOFmatchedPtVsPhiOutPos->Sumw2() ;
1019 if (fEnableAdvancedCheck)
1020 fHpos->AddLast(hTOFmatchedPtVsPhiOutPos) ;
1021
1022
1023
4170635c 1024//----------------------------------------------------------NEGATIVE TRACKS
1025 //0
1026 TH1F* hTOFmatchedESDtrkLengthNeg = new TH1F("hTOFmatchedESDtrkLengthNeg", "Matched positive ESDs tracks length; Track length [cm];Counts", 1600, -800., 800) ;
1027 hTOFmatchedESDtrkLengthNeg->Sumw2();
1028 hTOFmatchedESDtrkLengthNeg->SetLineColor(kBlue);
1029 hTOFmatchedESDtrkLengthNeg->SetMarkerColor(kBlue);
1030 hTOFmatchedESDtrkLengthNeg->SetFillColor(kBlue);
1031 hTOFmatchedESDtrkLengthNeg->SetDrawOption("BAR");
1032 if (fEnableAdvancedCheck)
1033 fHneg->AddLast(hTOFmatchedESDtrkLengthNeg);
1034 //1
1035 TH1F* hTOFmatchedESDPNeg = new TH1F("hTOFmatchedESDPNeg", "TPC-TOF matched positive tracks momentum distribution (GeV/c); p (GeV/c);tracks", 500,0.,5.) ;
1036 hTOFmatchedESDPNeg->Sumw2() ;
1037 hTOFmatchedESDPNeg->SetLineColor(kBlue);
1038 hTOFmatchedESDPNeg->SetMarkerStyle(20);
1039 hTOFmatchedESDPNeg->SetMarkerSize(0.7);
1040 hTOFmatchedESDPNeg->SetMarkerColor(kBlue);
1041 if (fEnableAdvancedCheck)
1042 fHneg->AddLast(hTOFmatchedESDPNeg) ;
1043 //2
1044 TH1F* hTOFmatchedESDPtNeg = new TH1F("hTOFmatchedESDPtNeg", "TPC-TOF positive matched tracks p_{T} distribution (GeV/c); p_{T}(GeV/c);tracks", 500,0.,5.) ;
1045 hTOFmatchedESDPtNeg->Sumw2() ;
1046 hTOFmatchedESDPtNeg->SetLineColor(kBlue);
1047 hTOFmatchedESDPtNeg->SetMarkerStyle(21);
1048 hTOFmatchedESDPtNeg->SetMarkerSize(0.7);
1049 hTOFmatchedESDPtNeg->SetMarkerColor(kBlue);
1050 if (fEnableAdvancedCheck)
1051 fHneg->AddLast(hTOFmatchedESDPtNeg) ;
1052
1053 //3
c9232487 1054 TH1F* hTOFmatchedESDetaNeg = new TH1F("hTOFmatchedESDetaNeg", "Matched positive ESD tracks #eta (p_{T} #geq 1.0 GeV/c); eta;Counts", 200, -1., 1.) ;
4170635c 1055 hTOFmatchedESDetaNeg->Sumw2();
1056 hTOFmatchedESDetaNeg->SetLineColor(kBlue);
1057 if (fEnableAdvancedCheck)
1058 fHneg->AddLast(hTOFmatchedESDetaNeg) ;
1059 //4
495628f1 1060 TH1F* hTOFmatchedESDphiNeg = new TH1F("hTOFmatchedESDphiNeg", "Matched Negative ESD tracks #phi (p_{T} #geq 1.0 GeV/c); #phi_{out} (deg);Counts", 72, 0., 360.) ;
4170635c 1061 hTOFmatchedESDphiNeg->Sumw2();
1062 hTOFmatchedESDphiNeg->SetLineColor(kBlue);
1063 if (fEnableAdvancedCheck)
1064 fHneg->AddLast(hTOFmatchedESDphiNeg) ;
1065
1066 //5
1067 TH1F* hESDmatchedTrackPtNegTRDout = new TH1F("hESDmatchedTrackPtNegTRDout", "ESDs Neg matched tracks p_{T} with kTRDout distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
1068 hESDmatchedTrackPtNegTRDout->Sumw2();
1069 hESDmatchedTrackPtNegTRDout->SetLineWidth(1);
1070 hESDmatchedTrackPtNegTRDout->SetMarkerStyle(20);
1071 hESDmatchedTrackPtNegTRDout->SetMarkerSize(0.7);
1072 hESDmatchedTrackPtNegTRDout->SetLineColor(kBlue);
1073 hESDmatchedTrackPtNegTRDout->SetMarkerColor(kBlue);
1074 if (fEnableAdvancedCheck)
1075 fHneg->AddLast(hESDmatchedTrackPtNegTRDout);
1076
1077 //6
1078 TH1F* hESDmatchedTrackPtNegNoTRDout = new TH1F("hESDmatchedTrackPtNegNoTRDout", "ESDs Neg matched tracks p_{T} with !kTRDout distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
1079 hESDmatchedTrackPtNegNoTRDout->Sumw2();
1080 hESDmatchedTrackPtNegNoTRDout->SetLineWidth(1);
1081 hESDmatchedTrackPtNegNoTRDout->SetMarkerStyle(25);
1082 hESDmatchedTrackPtNegNoTRDout->SetMarkerSize(0.7);
1083 hESDmatchedTrackPtNegNoTRDout->SetLineColor(kBlue);
1084 hESDmatchedTrackPtNegNoTRDout->SetMarkerColor(kBlue);
1085 if (fEnableAdvancedCheck)
1086 fHneg->AddLast(hESDmatchedTrackPtNegNoTRDout);
1087
1088 //7
572c1318 1089 TH1F* hESDprimaryTrackPNeg = new TH1F("hESDprimaryTrackPNeg", "All Neg ESDs tracks p distribution (GeV/c); p(GeV/c);tracks", 500, 0., 5.0) ;
4170635c 1090 hESDprimaryTrackPNeg->Sumw2();
1091 hESDprimaryTrackPNeg->SetLineWidth(1);
1092 hESDprimaryTrackPNeg->SetMarkerStyle(24);
1093 hESDprimaryTrackPNeg->SetMarkerSize(0.7);
1094 hESDprimaryTrackPNeg->SetMarkerColor(kBlue);
1095 hESDprimaryTrackPNeg->SetLineColor(kBlue);
1096 if (fEnableAdvancedCheck)
1097 fHneg->AddLast(hESDprimaryTrackPNeg);
1098 //8
1099 TH1F* hESDprimaryTrackPtNeg = new TH1F("hESDprimaryTrackPtNeg", "ESDs Neg primary tracks p_{T} distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
1100 hESDprimaryTrackPtNeg->Sumw2();
1101 hESDprimaryTrackPtNeg->SetLineWidth(1);
1102 hESDprimaryTrackPtNeg->SetMarkerStyle(25);
1103 hESDprimaryTrackPtNeg->SetMarkerSize(0.7);
1104 hESDprimaryTrackPtNeg->SetLineColor(kBlue);
1105 hESDprimaryTrackPtNeg->SetMarkerColor(kBlue);
1106 if (fEnableAdvancedCheck)
1107 fHneg->AddLast(hESDprimaryTrackPtNeg);
1108 //9
c9232487 1109 TH1F* hTOFprimaryESDetaNeg = new TH1F("hTOFprimaryESDetaNeg", "Primary ESD Neg tracks #eta (p_{T} #geq 1.0 GeV/c); #eta;Counts", 200, -1., 1.) ;
4170635c 1110 hTOFprimaryESDetaNeg->Sumw2();
1111 hTOFprimaryESDetaNeg->SetLineColor(kBlue);
1112 if (fEnableAdvancedCheck)
1113 fHneg->AddLast(hTOFprimaryESDetaNeg) ;
1114 //10
495628f1 1115 TH1F* hTOFprimaryESDphiNeg = new TH1F("hTOFprimaryESDphiNeg", "Primary ESD Neg tracks #phi (p_{T} #geq 1.0 GeV/c);#phi_{out} (deg);Counts", 72, 0., 360.) ;
4170635c 1116 hTOFprimaryESDphiNeg->Sumw2();
1117 hTOFprimaryESDphiNeg->SetLineColor(kBlue);
1118 if (fEnableAdvancedCheck)
1119 fHneg->AddLast(hTOFprimaryESDphiNeg) ;
1120
1121 //11
1122 TH1F* hESDprimaryTrackPtNegTRDout = new TH1F("hESDprimaryTrackPtNegTRDout", "ESDs Neg primary tracks p_{T} with kTRDout distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
1123 hESDprimaryTrackPtNegTRDout->Sumw2();
1124 hESDprimaryTrackPtNegTRDout->SetLineWidth(1);
1125 hESDprimaryTrackPtNegTRDout->SetMarkerStyle(20);
1126 hESDprimaryTrackPtNegTRDout->SetMarkerSize(0.7);
1127 hESDprimaryTrackPtNegTRDout->SetLineColor(kBlue);
1128 hESDprimaryTrackPtNegTRDout->SetMarkerColor(kBlue);
1129 if (fEnableAdvancedCheck)
1130 fHneg->AddLast(hESDprimaryTrackPtNegTRDout);
1131
1132 //12
1133 TH1F* hESDprimaryTrackPtNegNoTRDout = new TH1F("hESDprimaryTrackPtNegNoTRDout", "ESDs Neg primary tracks p_{T} with !kTRDout distribution (GeV/c); p_{T}(GeV/c);tracks", 500, 0.0, 5.0) ;
1134 hESDprimaryTrackPtNegNoTRDout->Sumw2();
1135 hESDprimaryTrackPtNegNoTRDout->SetLineWidth(1);
1136 hESDprimaryTrackPtNegNoTRDout->SetMarkerStyle(25);
1137 hESDprimaryTrackPtNegNoTRDout->SetMarkerSize(0.7);
1138 hESDprimaryTrackPtNegNoTRDout->SetLineColor(kBlue);
1139 hESDprimaryTrackPtNegNoTRDout->SetMarkerColor(kBlue);
1140 if (fEnableAdvancedCheck)
1141 fHneg->AddLast(hESDprimaryTrackPtNegNoTRDout);
1142
1143 //13
c9232487 1144 TH1F* hESDprimaryTrackEtaNegTRDout = new TH1F("hESDprimaryTrackEtaNegTRDout", "ESDs Neg primary tracks #eta with kTRDout (p_{T} #geq 1.0 GeV/c); #eta;tracks", 200, -1.0, 1.0) ;
4170635c 1145 hESDprimaryTrackEtaNegTRDout->Sumw2();
1146 hESDprimaryTrackEtaNegTRDout->SetLineWidth(1);
1147 hESDprimaryTrackEtaNegTRDout->SetMarkerStyle(20);
1148 hESDprimaryTrackEtaNegTRDout->SetMarkerSize(0.7);
1149 hESDprimaryTrackEtaNegTRDout->SetLineColor(kBlue);
1150 hESDprimaryTrackEtaNegTRDout->SetMarkerColor(kBlue);
1151 if (fEnableAdvancedCheck)
1152 fHneg->AddLast(hESDprimaryTrackEtaNegTRDout);
1153
1154 //14
c9232487 1155 TH1F* hESDprimaryTrackEtaNegNoTRDout = new TH1F("hESDprimaryTrackEtaNegNoTRDout", "ESDs Neg primary tracks #eta with !kTRDout (p_{T} #geq 1.0 GeV/c);#eta;tracks", 200, -1.0, 1.0) ;
4170635c 1156 hESDprimaryTrackEtaNegNoTRDout->Sumw2();
1157 hESDprimaryTrackEtaNegNoTRDout->SetLineWidth(1);
1158 hESDprimaryTrackEtaNegNoTRDout->SetMarkerStyle(25);
1159 hESDprimaryTrackEtaNegNoTRDout->SetMarkerSize(0.7);
1160 hESDprimaryTrackEtaNegNoTRDout->SetLineColor(kBlue);
1161 hESDprimaryTrackEtaNegNoTRDout->SetMarkerColor(kBlue);
1162 if (fEnableAdvancedCheck)
1163 fHneg->AddLast(hESDprimaryTrackEtaNegNoTRDout);
1164
1165 //15
495628f1 1166 TH1F* hESDprimaryTrackPhiNegTRDout = new TH1F("hESDprimaryTrackPhiNegTRDout", "ESDs Neg primary tracks #phi with kTRDout (p_{T} #geq 1.0 GeV/c); #phi_{out} (deg);tracks", 72, 0., 360.) ;
4170635c 1167 hESDprimaryTrackPhiNegTRDout->Sumw2();
1168 hESDprimaryTrackPhiNegTRDout->SetLineWidth(1);
1169 hESDprimaryTrackPhiNegTRDout->SetMarkerStyle(20);
1170 hESDprimaryTrackPhiNegTRDout->SetMarkerSize(0.7);
1171 hESDprimaryTrackPhiNegTRDout->SetLineColor(kBlue);
1172 hESDprimaryTrackPhiNegTRDout->SetMarkerColor(kBlue);
1173 if (fEnableAdvancedCheck)
1174 fHneg->AddLast(hESDprimaryTrackPhiNegTRDout);
1175
1176 //16
495628f1 1177 TH1F* hESDprimaryTrackPhiNegNoTRDout = new TH1F("hESDprimaryTrackPhiNegNoTRDout", "ESDs Neg primary tracks #phi with !kTRDout (p_{T} #geq 1.0 GeV/c); #phi_{out} (deg);tracks", 72, 0., 360.) ;
4170635c 1178 hESDprimaryTrackPhiNegNoTRDout->Sumw2();
1179 hESDprimaryTrackPhiNegNoTRDout->SetLineWidth(1);
1180 hESDprimaryTrackPhiNegNoTRDout->SetMarkerStyle(25);
1181 hESDprimaryTrackPhiNegNoTRDout->SetMarkerSize(0.7);
1182 hESDprimaryTrackPhiNegNoTRDout->SetLineColor(kBlue);
1183 hESDprimaryTrackPhiNegNoTRDout->SetMarkerColor(kBlue);
1184 if (fEnableAdvancedCheck)
1185 fHneg->AddLast(hESDprimaryTrackPhiNegNoTRDout);
1186
1187 //NEG 17
1188 TH2F* hTOFmatchedExpTimeProVsPhiNeg = new TH2F("hTOFmatchedExpTimeProVsPhiNeg", "ESDs t_{TOF}-t_{p,exp} vs #phi at TOF (r=378.cm) (p_{T}<1GeV/c);#phi (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
1189 hTOFmatchedExpTimeProVsPhiNeg->Sumw2() ;
1190 if (fEnableAdvancedCheck)
1191 fHneg->AddLast(hTOFmatchedExpTimeProVsPhiNeg) ;
1192
1193 //NEG 18
1194 TH2F* hTOFmatchedExpTimeProVsPhiVertexNeg = new TH2F("hTOFmatchedExpTimeProVsPhiVertexNeg", "ESDs t_{TOF}-t_{p,exp} vs #phi at vtx (p_{T}<1GeV/c);#phi (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
1195 hTOFmatchedExpTimeProVsPhiVertexNeg->Sumw2() ;
1196 if (fEnableAdvancedCheck)
1197 fHneg->AddLast(hTOFmatchedExpTimeProVsPhiVertexNeg) ;
1198
1199 //NEG 19
495628f1 1200 TH2F* hTOFmatchedExpTimeProVsPhiTPCNeg = new TH2F("hTOFmatchedExpTimeProVsPhiTPCNeg", "ESDs t_{TOF}-t_{p,exp} vs #phi at outer TPC (p_{T}<1GeV/c);#phi_{out} (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
4170635c 1201 hTOFmatchedExpTimeProVsPhiTPCNeg->Sumw2() ;
1202 if (fEnableAdvancedCheck)
1203 fHneg->AddLast(hTOFmatchedExpTimeProVsPhiTPCNeg) ;
1204
1205
1206 //20
c9232487 1207 TH1F* hESDmatchedTrackEtaNegTRDout = new TH1F("hESDmatchedTrackEtaNegTRDout", "ESDs Neg matched tracks #eta with kTRDout (p_{T} #geq 1.0 GeV/c); #eta;tracks", 200, -1.0, 1.0) ;
4170635c 1208 hESDmatchedTrackEtaNegTRDout->Sumw2();
1209 hESDmatchedTrackEtaNegTRDout->SetLineWidth(1);
1210 hESDmatchedTrackEtaNegTRDout->SetMarkerStyle(20);
1211 hESDmatchedTrackEtaNegTRDout->SetMarkerSize(0.7);
1212 hESDmatchedTrackEtaNegTRDout->SetLineColor(kBlue);
1213 hESDmatchedTrackEtaNegTRDout->SetMarkerColor(kBlue);
1214 if (fEnableAdvancedCheck)
1215 fHneg->AddLast(hESDmatchedTrackEtaNegTRDout);
1216
1217 //21
c9232487 1218 TH1F* hESDmatchedTrackEtaNegNoTRDout = new TH1F("hESDmatchedTrackEtaNegNoTRDout", "ESDs Neg matched tracks #eta with !kTRDout (p_{T} #geq 1.0 GeV/c);#eta;tracks", 200, -1.0, 1.0) ;
4170635c 1219 hESDmatchedTrackEtaNegNoTRDout->Sumw2();
1220 hESDmatchedTrackEtaNegNoTRDout->SetLineWidth(1);
1221 hESDmatchedTrackEtaNegNoTRDout->SetMarkerStyle(25);
1222 hESDmatchedTrackEtaNegNoTRDout->SetMarkerSize(0.7);
1223 hESDmatchedTrackEtaNegNoTRDout->SetLineColor(kBlue);
1224 hESDmatchedTrackEtaNegNoTRDout->SetMarkerColor(kBlue);
1225 if (fEnableAdvancedCheck)
1226 fHneg->AddLast(hESDmatchedTrackEtaNegNoTRDout);
1227
1228 //22
495628f1 1229 TH1F* hESDmatchedTrackPhiNegTRDout = new TH1F("hESDmatchedTrackPhiNegTRDout", "ESDs Neg matched tracks #phi with kTRDout (p_{T} #geq 1.0 GeV/c); #phi_{out} (deg);tracks", 72, 0., 360.) ;
4170635c 1230 hESDmatchedTrackPhiNegTRDout->Sumw2();
1231 hESDmatchedTrackPhiNegTRDout->SetLineWidth(1);
1232 hESDmatchedTrackPhiNegTRDout->SetMarkerStyle(20);
1233 hESDmatchedTrackPhiNegTRDout->SetMarkerSize(0.7);
1234 hESDmatchedTrackPhiNegTRDout->SetLineColor(kBlue);
1235 hESDmatchedTrackPhiNegTRDout->SetMarkerColor(kBlue);
1236 if (fEnableAdvancedCheck)
1237 fHneg->AddLast(hESDmatchedTrackPhiNegTRDout);
1238
1239 //23
495628f1 1240 TH1F* hESDmatchedTrackPhiNegNoTRDout = new TH1F("hESDmatchedTrackPhiNegNoTRDout", "ESDs Neg matched tracks #phi with !kTRDout (p_{T} #geq 1.0 GeV/c); #phi_{out} (deg);tracks", 72, 0., 360.) ;
4170635c 1241 hESDmatchedTrackPhiNegNoTRDout->Sumw2();
1242 hESDmatchedTrackPhiNegNoTRDout->SetLineWidth(1);
1243 hESDmatchedTrackPhiNegNoTRDout->SetMarkerStyle(25);
1244 hESDmatchedTrackPhiNegNoTRDout->SetMarkerSize(0.7);
1245 hESDmatchedTrackPhiNegNoTRDout->SetLineColor(kBlue);
1246 hESDmatchedTrackPhiNegNoTRDout->SetMarkerColor(kBlue);
1247 if (fEnableAdvancedCheck)
1248 fHneg->AddLast(hESDmatchedTrackPhiNegNoTRDout);
1249
1250 //NEG 24
495628f1 1251 TH2F* hTOFmatchedExpTimePiVsPhiTPCNeg = new TH2F("hTOFmatchedExpTimePiVsPhiTPCNeg", "ESDs t_{TOF}-t_{#pi,exp} vs #phi at outer TPC (p_{T}<1GeV/c);#phi_{out} (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
4170635c 1252 hTOFmatchedExpTimePiVsPhiTPCNeg->Sumw2() ;
1253 if (fEnableAdvancedCheck)
1254 fHneg->AddLast(hTOFmatchedExpTimePiVsPhiTPCNeg) ;
1255
1256 //NEG 25
495628f1 1257 TH2F* hTOFmatchedExpTimeKaVsPhiTPCNeg = new TH2F("hTOFmatchedExpTimeKaVsPhiTPCNeg", "ESDs t_{TOF}-t_{K,exp} vs #phi at outer TPC (p_{T}<1GeV/c);#phi_{out} (deg); t_{TOF}-t_{p,exp} [ps];Counts",72, 0.,360., nExpTimeSmallBins, fExpTimeSmallRangeMin, fExpTimeSmallRangeMax) ;
4170635c 1258 hTOFmatchedExpTimeKaVsPhiTPCNeg->Sumw2() ;
1259 if (fEnableAdvancedCheck)
1260 fHneg->AddLast(hTOFmatchedExpTimeKaVsPhiTPCNeg) ;
1261
495628f1 1262 //NEG 26
1263 TH2F* hTOFprimaryEtaVsPhiOutNeg = new TH2F("hTOFprimaryEtaVsPhiOutNeg", "Negative tracks, p_{T}>1GeV/c;#phi_{out} (degree); #eta; Counts", 72, 0., 360., 20, -1.,1.) ;
1264 hTOFprimaryEtaVsPhiOutNeg->Sumw2() ;
1265 if (fEnableAdvancedCheck)
1266 fHneg->AddLast(hTOFprimaryEtaVsPhiOutNeg) ;
1267
1268 //NEG 27
1269 TH2F* hTOFmatchedEtaVsPhiOutNeg = new TH2F("hTOFmatchedEtaVsPhiOutNeg", "Negative tracks, p_{T}>1GeV/c;#phi_{out} (degree); #eta; Counts", 72, 0., 360., 20, -1.,1.) ;
1270 hTOFmatchedEtaVsPhiOutNeg->Sumw2() ;
1271 if (fEnableAdvancedCheck)
1272 fHneg->AddLast(hTOFmatchedEtaVsPhiOutNeg) ;
1273
1274 //NEG 28
1275 TH2F* hTOFprimaryPtVsPhiOutNeg = new TH2F("hTOFprimaryPtVsPhiOutNeg", "Negative tracks;#phi_{out}(degree); p_{T}(GeV/c); Counts", 500, 0., 5., 20, -1.,1.) ;
1276 hTOFprimaryPtVsPhiOutNeg->Sumw2() ;
1277 if (fEnableAdvancedCheck)
1278 fHneg->AddLast(hTOFprimaryPtVsPhiOutNeg) ;
1279
1280 //NEG 29
1281 TH2F* hTOFmatchedPtVsPhiOutNeg = new TH2F("hTOFmatchedPtVsPhiOutNeg", "Negative tracks;#phi_{out}(degree); p_{T}(GeV/c); Counts", 500, 0., 5., 20, -1.,1.) ;
1282 hTOFmatchedPtVsPhiOutNeg->Sumw2() ;
1283 if (fEnableAdvancedCheck)
1284 fHneg->AddLast(hTOFmatchedPtVsPhiOutNeg) ;
1285
1286
111b2155 1287 PostData(1, fHlist);
e866f574 1288 PostData(2, fHlistTimeZero);
1289 PostData(3, fHlistPID);
4170635c 1290 PostData(4, fHpos);
1291 PostData(5, fHneg);
aac12889 1292}
1293//________________________________________________________________________
1294void AliAnalysisTaskTOFqa::UserExec(Option_t *)
1295{
1296 /* Main - executed for each event.
1297 It extracts event information and track information after selecting
1298 primary tracks via standard cuts. */
111b2155 1299
7a9f204e 1300 /*
111b2155 1301 AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
1302 if (!esdH) {
1303 Printf("ERROR: Could not get ESDInputHandler");
1304 return;
1305 } else {
1306 fESD = (AliESDEvent*) esdH->GetEvent();
1307 }
7a9f204e 1308 */
1309 fESD=(AliESDEvent*)InputEvent();
1310 if (!fESD||!fESDpid) return;
1311
111b2155 1312
aac12889 1313 if (!fESD) {
1314 Printf("ERROR: fESD not available");
1315 return;
1316 }
4170635c 1317
7a9f204e 1318 AliPIDResponse::EStartTimeType_t startTimeMethodDefault = AliPIDResponse::kBest_T0;
1319 if (fESDpid->GetTOFPIDParams()) { // during reconstruction OADB not yet available
1320 startTimeMethodDefault = ((AliTOFPIDParams *)fESDpid->GetTOFPIDParams())->GetStartTimeMethod();
1321 }
1322
1323
1324
154404b2 1325 /* get run number */
1326 Int_t runNb = fESD->GetRunNumber();
1327 if (runNb>0)
1328 fRunNumber = runNb;
1329
7a9f204e 1330 // /* added PA: this ensure PID Response is correctly initialized!!! */
1331 // Int_t passNumber = 2; // this is needed
1332 // fESDpid->InitialiseEvent(fESD,passNumber); // after this call a default startTime method is selected
1333
c9232487 1334 //Get vertex info and apply vertex cut
1335 fVertex = (AliESDVertex*) fESD->GetPrimaryVertexTracks();
1336 if(fVertex->GetNContributors()<1) {
1337 // SPD vertex
1338 fVertex = (AliESDVertex*) fESD->GetPrimaryVertexSPD();
1339 if(fVertex->GetNContributors()<1) fVertex = 0x0;
1340 }
1341 if (!fVertex) return;
1342 if (! (TMath::Abs(fVertex->GetZv())<10.0) ) return;
1343
572c1318 1344 // info from V0 detector QA
4170635c 1345 AliESDVZERO * vzero = fESD->GetVZEROData();
1346 Float_t V0Atime = vzero->GetV0ATime();
1347 Float_t V0Ctime = vzero->GetV0CTime();
572c1318 1348 ((TH2F*)fHlistTimeZero->FindObject("hEventV0MeanVsVtx"))->Fill((V0Atime-V0Ctime)*0.5,(V0Atime+V0Ctime)*0.5);
4170635c 1349
c9232487 1350 // info from T0 detector QA
e866f574 1351 for (Int_t j=0;j<3;j++){
1352 fT0[j]= (Float_t) fESD->GetT0TOF(j);//ps
1353 if (fT0[j]>90000.) fT0[j]=99999.;//fix old default values to the new one
1354 }
c9232487 1355
1356 Float_t matchingMomCut = 1.0; //GeV/c
e866f574 1357 Float_t t0cut = 90000.;
1358 //Float_t t0cut =3 * t0spread; //use this cut to check t0 used in tof response
1359 // if(t0cut < 500) t0cut = 500;
aac12889 1360
e866f574 1361 if(TMath::Abs(fT0[1]) < t0cut && TMath::Abs(fT0[2]) < t0cut ) {
1362 //&& TMath::Abs(fT0[2]-fT0[1]) < 500) //add this condition to check t0 used in tof response
572c1318 1363 ((TH1F*)fHlistTimeZero->FindObject("hT0DetRes"))->Fill((fT0[2]-fT0[1])*0.5);
1364 ((TH1F*)fHlistTimeZero->FindObject("hEventT0DetAND"))->Fill(fT0[0]);
1365 ((TH2F*)fHlistTimeZero->FindObject("hEventT0MeanVsVtx"))->Fill((fT0[2]-fT0[1])*0.5,(fT0[2]+fT0[1])*0.5);
e866f574 1366 }
1367 if(TMath::Abs(fT0[1]) < t0cut){
572c1318 1368 ((TH1F*)fHlistTimeZero->FindObject("hEventT0DetA"))->Fill(fT0[1]);
e866f574 1369 }
1370 if(TMath::Abs(fT0[2]) < t0cut){
572c1318 1371 ((TH1F*)fHlistTimeZero->FindObject("hEventT0DetC"))->Fill(fT0[2]);
e866f574 1372 }
1373
572c1318 1374 // event timeZero QA via AliESDpid::SetTOFResponse()
e866f574 1375 Double_t timeZero[4]={99999.,99999.,99999.,99999.};
1376 Double_t timeZeroRes[4]={99999.,99999.,99999.,99999.};
1377
572c1318 1378 TString timeZeroHisto[4]={"hT0fill","hT0TOF","hT0T0","hT0best"};
1379 TString timeZeroHistoRes[4]={"hT0fillRes","hT0TOFRes","hT0T0Res","hT0bestRes"};
e866f574 1380 for (Int_t j=0;j<4;j++){
1381 fESDpid->SetTOFResponse(fESD, (AliESDpid::EStartTimeType_t) j);//(fill_t0, tof_t0, t0_t0, best_t0)
1382 timeZero[j]=fESDpid->GetTOFResponse().GetStartTime(10.); //timeZero for bin pT>10GeV/c
1383 timeZeroRes[j]=fESDpid->GetTOFResponse().GetStartTimeRes(10.); //timeZero for bin pT>10GeV/c
572c1318 1384 ((TH1D*)(fHlistTimeZero->FindObject(timeZeroHisto[j].Data())))->Fill(timeZero[j]);
1385 ((TH1D*)(fHlistTimeZero->FindObject(timeZeroHistoRes[j].Data())))->Fill(timeZeroRes[j]);
e866f574 1386 }
c9232487 1387 //response set to best_t0 by previous loop
1388 FillStartTimeMaskHisto();
4170635c 1389
572c1318 1390 // loop over ESD tracks
e866f574 1391 fNTOFtracks=0;
1392 // fNPrimaryTracks=0;
1393
aac12889 1394 for (Int_t iTracks = 0; iTracks < fESD->GetNumberOfTracks(); iTracks++) {
1395 AliESDtrack* track = fESD->GetTrack(iTracks);
1396 if (!track) {
1397 Printf("ERROR: Could not receive track %d", iTracks);
1398 continue;
1399 }
7a9f204e 1400 //set response tof_t0 for all checks but one
1401 fESDpid->SetTOFResponse(fESD,AliESDpid::kTOF_T0);//(fill_t0, tof_t0, t0_t0, best_t0)
aac12889 1402
1403 //primary tracks selection: kTPCrefit and std cuts
572c1318 1404 if (fTrackFilter){
1405 if(!fTrackFilter->IsSelected(track)) continue;
1406 }
1407 else{
1408 Printf("No track filter found, skipping the track loop");
1409 break;
1410 }
1411
aac12889 1412 Double_t eta=track->Eta();
4170635c 1413 if (TMath::Abs(eta)>0.8) continue; //cut for acceptance
e866f574 1414
1415 Double_t mom=track->P();
1416 Double_t mom2 = mom*mom;
1417 Double_t length=track->GetIntegratedLength();
1418 Double_t pT = track->Pt();
1419 Double_t phi=track->Phi()*TMath::RadToDeg();
1420 track->GetIntegratedTimes(fTrkExpTimes);
572c1318 1421
1422 ((TH1F*)fHlist->FindObject("hESDprimaryTrackP"))->Fill(mom);
1423 ((TH1F*)fHlist->FindObject("hESDprimaryTrackPt"))->Fill(pT);
a8f5d776 1424 if (pT>=matchingMomCut) {
572c1318 1425 ((TH1F*)fHlist->FindObject("hTOFprimaryESDeta"))->Fill(eta);
73397706 1426 ((TH1F*)fHlist->FindObject("hTOFprimaryESDphi"))->Fill(phi);
1427 }
495628f1 1428
1429 //get track phi at TPC outer radius
1430 Double_t tpcoutcoord[3]={0.,0.,0.};
1431 track->GetOuterXYZ(tpcoutcoord);
1432 Double_t phiOuterTPC=TMath::ATan2(tpcoutcoord[1],tpcoutcoord[0])*TMath::RadToDeg();
1433 if (phiOuterTPC<0) phiOuterTPC+= (2*TMath::Pi()*TMath::RadToDeg());
1434
572c1318 1435 //evaluate sign
495628f1 1436 if (fEnableAdvancedCheck){
1437 if (track->GetSign()>0){
572c1318 1438 ((TH1F*)fHpos->FindObject("hESDprimaryTrackPPos"))->Fill(mom);
1439 ((TH1F*)fHpos->FindObject("hESDprimaryTrackPtPos"))->Fill(pT);
495628f1 1440 ((TH2F*)fHpos->FindObject("hTOFprimaryPtVsPhiOutPos"))->Fill(phiOuterTPC,pT);
c9232487 1441 if (pT>=matchingMomCut){
572c1318 1442 ((TH1F*)fHpos->FindObject("hTOFprimaryESDetaPos"))->Fill(eta);
495628f1 1443 ((TH1F*)fHpos->FindObject("hTOFprimaryESDphiPos"))->Fill(phiOuterTPC);
1444 ((TH2F*)fHpos->FindObject("hTOFprimaryEtaVsPhiOutPos"))->Fill(phiOuterTPC,eta);
572c1318 1445 }
1446 if ( (track->IsOn(AliESDtrack::kTRDout)) && (track->IsOn(AliESDtrack::kTPCout)) ) {
1447 ((TH1F*)fHpos->FindObject("hESDprimaryTrackPtPosTRDout"))->Fill(pT);
c9232487 1448 if (pT>=matchingMomCut) {
572c1318 1449 ((TH1F*)fHpos->FindObject("hESDprimaryTrackEtaPosTRDout"))->Fill(eta);
495628f1 1450 ((TH1F*)fHpos->FindObject("hESDprimaryTrackPhiPosTRDout"))->Fill(phiOuterTPC);
572c1318 1451 }
1452 }
1453 if ((!(track->IsOn(AliESDtrack::kTRDout))) && (track->IsOn(AliESDtrack::kTPCout)) ) {
1454 ((TH1F*)fHpos->FindObject("hESDprimaryTrackPtPosNoTRDout"))->Fill(pT);
c9232487 1455 if (pT>=matchingMomCut) {
572c1318 1456 ((TH1F*)fHpos->FindObject("hESDprimaryTrackEtaPosNoTRDout"))->Fill(eta);
495628f1 1457 ((TH1F*)fHpos->FindObject("hESDprimaryTrackPhiPosNoTRDout"))->Fill(phiOuterTPC);
572c1318 1458 }
1459 }
1460 } //end positive
1461 else {
495628f1 1462 ((TH1F*)fHneg->FindObject("hESDprimaryTrackPNeg"))->Fill(mom);
1463 ((TH1F*)fHneg->FindObject("hESDprimaryTrackPtNeg"))->Fill(pT);
1464 ((TH2F*)fHneg->FindObject("hTOFprimaryPtVsPhiOutNeg"))->Fill(phiOuterTPC,pT);
1465
1466 if (pT>=matchingMomCut){
1467 ((TH1F*)fHneg->FindObject("hTOFprimaryESDetaNeg"))->Fill(eta);
1468 ((TH1F*)fHneg->FindObject("hTOFprimaryESDphiNeg"))->Fill(phiOuterTPC);
1469 ((TH2F*)fHneg->FindObject("hTOFprimaryEtaVsPhiOutNeg"))->Fill(phiOuterTPC,eta);
1470 }
1471 if ((track->IsOn(AliESDtrack::kTRDout)) && (track->IsOn(AliESDtrack::kTPCout)) ) {
1472 ((TH1F*)fHneg->FindObject("hESDprimaryTrackPtNegTRDout"))->Fill(pT);
1473 if (pT>=matchingMomCut) {
1474 ((TH1F*)fHneg->FindObject("hESDprimaryTrackEtaNegTRDout"))->Fill(eta);
1475 ((TH1F*)fHneg->FindObject("hESDprimaryTrackPhiNegTRDout"))->Fill(phiOuterTPC);
1476 }
1477 }
572c1318 1478 if ((!(track->IsOn(AliESDtrack::kTRDout))) && (track->IsOn(AliESDtrack::kTPCout)) ) {
1479 ((TH1F*)fHneg->FindObject("hESDprimaryTrackPtNegNoTRDout"))->Fill(pT);
c9232487 1480 if (pT>=matchingMomCut){
572c1318 1481 ((TH1F*)fHneg->FindObject("hESDprimaryTrackEtaNegNoTRDout"))->Fill(eta);
495628f1 1482 ((TH1F*)fHneg->FindObject("hESDprimaryTrackPhiNegNoTRDout"))->Fill(phiOuterTPC);
572c1318 1483 }
1484 }
1485 }//end negative
1486 }//end flag advanced check
1487
e866f574 1488 //matched tracks selection: kTOFout and kTIME
4170635c 1489 if ( (track->IsOn(AliESDtrack::kTOFout)) &&
1490 (track->IsOn(AliESDtrack::kTIME)) &&
1491 (track->IsOn(AliESDtrack::kTPCout)) ) {
aac12889 1492
e866f574 1493 Double_t tofTime=track->GetTOFsignal();//in ps
1494 Double_t tofTimeRaw=track->GetTOFsignalRaw();//in ps
1495 Double_t tofToT=track->GetTOFsignalToT(); //in ps
1496 Int_t channel=track->GetTOFCalChannel();
1497 Int_t volId[5]; //(sector, plate,strip,padZ,padX)
1498 AliTOFGeometry::GetVolumeIndices(channel,volId);
1499
1500 if (pT>=0.3) fNTOFtracks++; //matched counter
1501 Double_t tof= tofTime*1E-3; // ns, average T0 fill subtracted, no info from T0detector
572c1318 1502 ((TH1F*)fHlist->FindObject("hTOFmatchedESDtime"))->Fill(tof); //ns
1503 ((TH1F*)fHlist->FindObject("hTOFmatchedESDrawTime"))->Fill(tofTimeRaw*1E-3); //ns
1504 ((TH1F*)fHlist->FindObject("hTOFmatchedESDToT"))->Fill(tofToT);
1505 ((TH1F*)fHlist->FindObject("hTOFmatchedESDtrkLength"))->Fill(length);
1506 ((TH1F*)fHlist->FindObject("hTOFmatchedESDP"))->Fill(mom);
1507 ((TH1F*)fHlist->FindObject("hTOFmatchedESDPt"))->Fill(pT);
c9232487 1508 if (pT>=matchingMomCut){
572c1318 1509 ((TH1F*)fHlist->FindObject("hTOFmatchedESDeta"))->Fill(eta);
b5c128f2 1510 ((TH1F*)fHlist->FindObject("hTOFmatchedESDphi"))->Fill(phi);
1511 }
e866f574 1512 if (track->GetSign()>0)
572c1318 1513 ((TH2F*)fHlist->FindObject("hTOFmatchedDxVsPtPos"))->Fill(pT,track->GetTOFsignalDx());
1514 else ((TH2F*)fHlist->FindObject("hTOFmatchedDxVsPtNeg"))->Fill(pT,track->GetTOFsignalDx());
1515 ((TH2F*)fHlist->FindObject("hTOFmatchedDzVsStrip"))->Fill((Int_t)GetStripIndex(volId),track->GetTOFsignalDz());
d18f2953 1516 ((TProfile*)fHlist->FindObject("hTOFmatchedDxVsCh"))->Fill(channel,track->GetTOFsignalDx());
1517 ((TProfile*)fHlist->FindObject("hTOFmatchedDzVsCh"))->Fill(channel,track->GetTOFsignalDz());
4170635c 1518 //evaluate sign
1519 if (fEnableAdvancedCheck){
572c1318 1520 if (track->GetSign()>0){
1521 ((TH1F*)fHpos->FindObject("hTOFmatchedESDtrkLengthPos"))->Fill(length);
1522 ((TH1F*)fHpos->FindObject("hTOFmatchedESDPPos"))->Fill(mom);
1523 ((TH1F*)fHpos->FindObject("hTOFmatchedESDPtPos"))->Fill(pT);
495628f1 1524 ((TH2F*)fHpos->FindObject("hTOFmatchedPtVsPhiOutPos"))->Fill(phiOuterTPC,pT);
1525 if (pT>=matchingMomCut){
572c1318 1526 ((TH1F*)fHpos->FindObject("hTOFmatchedESDetaPos"))->Fill(eta);
495628f1 1527 ((TH1F*)fHpos->FindObject("hTOFmatchedESDphiPos"))->Fill(phiOuterTPC);
1528 ((TH2F*)fHpos->FindObject("hTOFmatchedEtaVsPhiOutPos"))->Fill(phiOuterTPC,eta);
572c1318 1529 }
1530 if ( (track->IsOn(AliESDtrack::kTRDout)) && (track->IsOn(AliESDtrack::kTPCout)) ) {
1531 ((TH1F*)fHpos->FindObject("hESDmatchedTrackPtPosTRDout"))->Fill(pT);
c9232487 1532 if (pT>=matchingMomCut){
572c1318 1533 ((TH1F*)fHpos->FindObject("hESDmatchedTrackEtaPosTRDout"))->Fill(eta);
495628f1 1534 ((TH1F*)fHpos->FindObject("hESDmatchedTrackPhiPosTRDout"))->Fill(phiOuterTPC);
572c1318 1535 }
1536 }
1537 if ((!(track->IsOn(AliESDtrack::kTRDout))) && (track->IsOn(AliESDtrack::kTPCout)) ) {
1538 ((TH1F*)fHpos->FindObject("hESDmatchedTrackPtPosNoTRDout"))->Fill(pT);
c9232487 1539 if (pT>=matchingMomCut) {
572c1318 1540 ((TH1F*)fHpos->FindObject("hESDmatchedTrackEtaPosNoTRDout"))->Fill(eta);
495628f1 1541 ((TH1F*)fHpos->FindObject("hESDmatchedTrackPhiPosNoTRDout"))->Fill(phiOuterTPC);
572c1318 1542 }
1543 }
1544 }// END POSITIVE
1545 else {
1546 ((TH1F*)fHneg->FindObject("hTOFmatchedESDtrkLengthNeg"))->Fill(length);
1547 ((TH1F*)fHneg->FindObject("hTOFmatchedESDPNeg"))->Fill(mom);
1548 ((TH1F*)fHneg->FindObject("hTOFmatchedESDPtNeg"))->Fill(pT);
495628f1 1549 ((TH2F*)fHneg->FindObject("hTOFmatchedPtVsPhiOutNeg"))->Fill(phiOuterTPC,pT);
1550
c9232487 1551 if (pT>=matchingMomCut) {
572c1318 1552 ((TH1F*)fHneg->FindObject("hTOFmatchedESDetaNeg"))->Fill(eta);
495628f1 1553 ((TH1F*)fHneg->FindObject("hTOFmatchedESDphiNeg"))->Fill(phiOuterTPC);
1554 ((TH2F*)fHneg->FindObject("hTOFmatchedEtaVsPhiOutNeg"))->Fill(phiOuterTPC,eta);
572c1318 1555 }
1556 if ((track->IsOn(AliESDtrack::kTRDout)) && (track->IsOn(AliESDtrack::kTPCout)) ) {
1557 ((TH1F*)fHneg->FindObject("hESDmatchedTrackPtNegTRDout"))->Fill(pT);
c9232487 1558 if (pT>=matchingMomCut) {
572c1318 1559 ((TH1F*)fHneg->FindObject("hESDmatchedTrackEtaNegTRDout"))->Fill(eta);
495628f1 1560 ((TH1F*)fHneg->FindObject("hESDmatchedTrackPhiNegTRDout"))->Fill(phiOuterTPC);
572c1318 1561 }
1562 }
1563 if ((!(track->IsOn(AliESDtrack::kTRDout))) && (track->IsOn(AliESDtrack::kTPCout)) ) {
1564 ((TH1F*)fHneg->FindObject("hESDmatchedTrackPtNegNoTRDout"))->Fill(pT);
c9232487 1565 if (pT>=matchingMomCut) {
572c1318 1566 ((TH1F*)fHneg->FindObject("hESDmatchedTrackEtaNegNoTRDout"))->Fill(eta);
495628f1 1567 ((TH1F*)fHneg->FindObject("hESDmatchedTrackPhiNegNoTRDout"))->Fill(phiOuterTPC);
572c1318 1568 }
1569 }
1570 }//end negative
4170635c 1571 }//end advanced check
572c1318 1572
e866f574 1573 //basic PID performance check
0cf77d52 1574 if (tof<=0) {
1575 printf("WARNING: track with negative TOF time found! Skipping this track for PID checks\n");
1576 continue;
1577 }
1578 if (mom2==0) {
1579 printf("WARNING: track with negative square momentum found! Skipping this track for PID checks\n");
1580 continue;
1581 }
1582 if (length<=0){
1583 printf("WARNING: track with negative length found!Skipping this track for PID checks\n");
1584 continue;
1585 }
e866f574 1586 Double_t c=TMath::C()*1.E-9;// m/ns
1587 Double_t mass=0.; //GeV
1588 length =length*0.01; // in meters
1589 tof=tof*c;
0cf77d52 1590 Double_t beta=length/tof;
e866f574 1591 Double_t fact= (tof/length)*(tof/length) -1.;
1592 if(fact<=0) {
1593 mass = -mom*TMath::Sqrt(-fact);
1594 }else{
1595 mass = mom*TMath::Sqrt(fact);
1596 }
572c1318 1597 ((TH2F*)fHlistPID->FindObject("hTOFmatchedESDpVsBeta"))->Fill(mom,beta);
1598 ((TH1F*) fHlistPID->FindObject("hTOFmatchedMass"))->Fill(mass);
e866f574 1599
1600 //PID sigmas
0cf77d52 1601 Bool_t isValidBeta[AliPID::kSPECIES]={0,0,0,0,0};
e866f574 1602 for (Int_t specie = 0; specie < AliPID::kSPECIES; specie++){
1603 fSigmaSpecie[specie] = fESDpid->GetTOFResponse().GetExpectedSigma(mom, fTrkExpTimes[specie], AliPID::ParticleMass(specie));
1604 beta=1/TMath::Sqrt(1+AliPID::ParticleMass(specie)*AliPID::ParticleMass(specie)/(mom2));
0cf77d52 1605 if (beta>0) {
1606 fThExpTimes[specie]=length*1.E3/(beta*c);//ps
1607 isValidBeta[specie]=kTRUE;
1608 } else {
1609 fThExpTimes[specie]=1E-10;
1610 isValidBeta[specie]=kFALSE;
1611 }
e866f574 1612 }
154404b2 1613 Float_t timeZeroTOF = (Float_t) fESDpid->GetTOFResponse().GetStartTime(pT);
0cf77d52 1614 if (isValidBeta[AliPID::kPion]){
572c1318 1615 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimePiVsEta"))->Fill((Int_t)GetStripIndex(volId),tofTime-fTrkExpTimes[AliPID::kPion]);//ps
1616 ((TH1F*)fHlistPID->FindObject("hTOFmatchedExpTimePi"))->Fill(tofTime-fTrkExpTimes[AliPID::kPion]);//ps
1617 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimePiVsP"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kPion]));
1618 ((TH1F*)fHlistPID->FindObject("hTOFtheoreticalExpTimePi"))->Fill(tofTime-fThExpTimes[AliPID::kPion]);//ps
1619 ((TH2F*)fHlistPID->FindObject("hTOFtheoreticalExpTimePiVsP"))->Fill(mom,(tofTime-fThExpTimes[AliPID::kPion]));
1620 ((TH2F*)fHlistPID->FindObject("hTOFExpSigmaPi"))->Fill(pT,(tofTime-fTrkExpTimes[AliPID::kPion])/fSigmaSpecie[AliPID::kPion]);
154404b2 1621 ((TH2F*)fHlistPID->FindObject("hTimeT0subtractedPionVsP"))->Fill(mom,tofTime-fTrkExpTimes[AliPID::kPion]-timeZeroTOF);
0cf77d52 1622 }
e866f574 1623
0cf77d52 1624 if (isValidBeta[AliPID::kKaon]){
572c1318 1625 ((TH1F*)fHlistPID->FindObject("hTOFmatchedExpTimeKa"))->Fill(tofTime-fTrkExpTimes[AliPID::kKaon]);//ps
1626 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeKaVsP"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kKaon]));
1627 ((TH1F*)fHlistPID->FindObject("hTOFtheoreticalExpTimeKa"))->Fill(tofTime-fThExpTimes[AliPID::kKaon]);//ps
1628 ((TH2F*)fHlistPID->FindObject("hTOFtheoreticalExpTimeKaVsP"))->Fill(mom,(tofTime-fThExpTimes[AliPID::kKaon]));
1629 ((TH2F*)fHlistPID->FindObject("hTOFExpSigmaKa"))->Fill(pT,(tofTime-fTrkExpTimes[AliPID::kKaon])/fSigmaSpecie[AliPID::kKaon]);
154404b2 1630 ((TH2F*)fHlistPID->FindObject("hTimeT0subtractedKaonVsP"))->Fill(mom,tofTime-fTrkExpTimes[AliPID::kKaon]-timeZeroTOF);
0cf77d52 1631 }
1632 if (isValidBeta[AliPID::kProton]){
572c1318 1633 ((TH1F*)fHlistPID->FindObject("hTOFmatchedExpTimePro"))->Fill(tofTime-fTrkExpTimes[AliPID::kProton]);//ps
1634 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeProVsP"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kProton]));
1635 ((TH1F*)fHlistPID->FindObject("hTOFtheoreticalExpTimePro"))->Fill(tofTime-fThExpTimes[AliPID::kProton]);//ps
1636 ((TH2F*)fHlistPID->FindObject("hTOFtheoreticalExpTimeProVsP"))->Fill(mom,(tofTime-fThExpTimes[AliPID::kProton]));
1637 ((TH2F*)fHlistPID->FindObject("hTOFExpSigmaPro"))->Fill(pT,(tofTime-fTrkExpTimes[AliPID::kProton])/fSigmaSpecie[AliPID::kProton]);
154404b2 1638 ((TH2F*)fHlistPID->FindObject("hTimeT0subtractedProtonVsP"))->Fill(mom,tofTime-fTrkExpTimes[AliPID::kProton]-timeZeroTOF);
0cf77d52 1639 }
4170635c 1640
1641 if (fEnableAdvancedCheck && (pT<1.)) {
1642 Double_t pos[3]={0.,0.,0.};
1643 track->GetXYZAt(378.,5.,pos);
1644 if ((pos[0]==0.)&&(pos[1]==0.)&&(pos[2]==0.))continue;
1645
1646 Double_t phiTOF=TMath::ATan2(pos[1],pos[0])*TMath::RadToDeg();
1647 if (phiTOF<0) phiTOF+= (2*TMath::Pi()*TMath::RadToDeg());
1648
1649 if (isValidBeta[AliPID::kProton]){
1650 if (track->GetSign()>0){
572c1318 1651 ((TH2F*)fHpos->FindObject("hTOFmatchedExpTimeProVsPhiPos"))->Fill(phiTOF,tofTime-fTrkExpTimes[AliPID::kProton]);//ps
1652 ((TH2F*)fHpos->FindObject("hTOFmatchedExpTimeProVsPhiVertexPos"))->Fill(phi,tofTime-fTrkExpTimes[AliPID::kProton]);//ps
4170635c 1653 } else {
572c1318 1654 ((TH2F*)fHneg->FindObject("hTOFmatchedExpTimeProVsPhiNeg"))->Fill(phiTOF,tofTime-fTrkExpTimes[AliPID::kProton]);//ps
1655 ((TH2F*)fHneg->FindObject("hTOFmatchedExpTimeProVsPhiVertexNeg"))->Fill(phi,tofTime-fTrkExpTimes[AliPID::kProton]);//ps
4170635c 1656 }
1657 }
1658
495628f1 1659 // track->GetOuterXYZ(pos);
1660 // Double_t phiOuterTPC=TMath::ATan2(pos[1],pos[0])*TMath::RadToDeg();
1661 // if (phiOuterTPC<0) phiOuterTPC+= (2*TMath::Pi()*TMath::RadToDeg());
4170635c 1662
1663 if (track->GetSign()>0){
1664 if (isValidBeta[AliPID::kProton])
572c1318 1665 ((TH2F*)fHpos->FindObject("hTOFmatchedExpTimeProVsPhiTPCPos"))->Fill(phiOuterTPC,tofTime-fTrkExpTimes[AliPID::kProton]);//ps
4170635c 1666 if (isValidBeta[AliPID::kPion])
572c1318 1667 ((TH2F*)fHpos->FindObject("hTOFmatchedExpTimePiVsPhiTPCPos"))->Fill(phiOuterTPC,tofTime-fTrkExpTimes[AliPID::kPion]);//ps
4170635c 1668 if (isValidBeta[AliPID::kKaon])
572c1318 1669 ((TH2F*)fHpos->FindObject("hTOFmatchedExpTimeKaVsPhiTPCPos"))->Fill(phiOuterTPC,tofTime-fTrkExpTimes[AliPID::kKaon]);//ps
4170635c 1670
1671 if ((phiOuterTPC<=30) || ((phiOuterTPC>=150)&&(phiOuterTPC<=230)) || (phiOuterTPC>=310) ) { //TRD sectors
1672 if (isValidBeta[AliPID::kPion])
572c1318 1673 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimePiVsPTRDPos"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kPion]));
4170635c 1674 if (isValidBeta[AliPID::kKaon])
572c1318 1675 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeKaVsPTRDPos"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kKaon]));
4170635c 1676 if (isValidBeta[AliPID::kProton])
572c1318 1677 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeProVsPTRDPos"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kProton]));
4170635c 1678 }
1679 if ( ((phiOuterTPC>=50)&&(phiOuterTPC<=130)) || ((phiOuterTPC>=250)&&(phiOuterTPC<=290)) ) {//no TRD sectors
1680 if (isValidBeta[AliPID::kPion])
572c1318 1681 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimePiVsPNoTRDPos"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kPion]));
4170635c 1682 if (isValidBeta[AliPID::kKaon])
572c1318 1683 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeKaVsPNoTRDPos"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kKaon]));
4170635c 1684 if (isValidBeta[AliPID::kProton])
572c1318 1685 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeProVsPNoTRDPos"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kProton]));
4170635c 1686 }
1687 }else{
1688 if (isValidBeta[AliPID::kPion])
572c1318 1689 ((TH2F*)fHneg->FindObject("hTOFmatchedExpTimePiVsPhiTPCNeg"))->Fill(phiOuterTPC,tofTime-fTrkExpTimes[AliPID::kPion]);//ps
4170635c 1690 if (isValidBeta[AliPID::kKaon])
572c1318 1691 ((TH2F*)fHneg->FindObject("hTOFmatchedExpTimeKaVsPhiTPCNeg"))->Fill(phiOuterTPC,tofTime-fTrkExpTimes[AliPID::kKaon]);//ps
4170635c 1692 if (isValidBeta[AliPID::kProton])
572c1318 1693 ((TH2F*)fHneg->FindObject("hTOFmatchedExpTimeProVsPhiTPCNeg"))->Fill(phiOuterTPC,tofTime-fTrkExpTimes[AliPID::kProton]);//ps
4170635c 1694
1695 if ((phiOuterTPC<=30) || ((phiOuterTPC>=150)&&(phiOuterTPC<=230)) || (phiOuterTPC>=310) ) { //TRD sectors
1696 if (isValidBeta[AliPID::kPion])
572c1318 1697 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimePiVsPTRDNeg"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kPion]));
4170635c 1698 if (isValidBeta[AliPID::kKaon])
572c1318 1699 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeKaVsPTRDNeg"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kKaon]));
4170635c 1700 if (isValidBeta[AliPID::kProton])
572c1318 1701 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeProVsPTRDNeg"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kProton]));
4170635c 1702 }
1703 if ( ((phiOuterTPC>=50)&&(phiOuterTPC<=130)) || ((phiOuterTPC>=250)&&(phiOuterTPC<=290)) ) {//no TRD sectors
1704 if (isValidBeta[AliPID::kPion])
572c1318 1705 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimePiVsPNoTRDNeg"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kPion]));
4170635c 1706 if (isValidBeta[AliPID::kKaon])
572c1318 1707 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeKaVsPNoTRDNeg"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kKaon]));
4170635c 1708 if (isValidBeta[AliPID::kProton])
572c1318 1709 ((TH2F*)fHlistPID->FindObject("hTOFmatchedExpTimeProVsPNoTRDNeg"))->Fill(mom,(tofTime-fTrkExpTimes[AliPID::kProton]));
4170635c 1710 }
154404b2 1711 }
4170635c 1712 }//end advanced checks && cut on pT for t-texp phi distrib
154404b2 1713
1714 if (ComputeTimeZeroByTOF1GeV()){
1715 if ((pT>0.95)&&(pT<1.05)){
1716 ((TH2F*)fHlistPID->FindObject("hTOFmatchedTimePion1GeV"))->Fill(fMyTimeZeroTOFtracks,tofTime-fMyTimeZeroTOF-fTrkExpTimes[AliPID::kPion]);
1717 }
1718 }//fill timeZero TOF vs number of tracks used
7a9f204e 1719
1720 //re-set response kFILL_T0 to check post-alignment wih OADB
1721 fESDpid->SetTOFResponse(fESD,AliESDpid::kFILL_T0);//(fill_t0, tof_t0, t0_t0, best_t0)
1722 Float_t startTimeFill=fESDpid->GetTOFResponse().GetStartTime(mom); //timeZero for bin pT>10GeV/c
1723 ((TH1F*)fHlistPID->FindObject("hExpTimePiFillSub"))->Fill(tofTime-fTrkExpTimes[AliPID::kPion]-startTimeFill);//ps
1724
e866f574 1725 }//matched
7a9f204e 1726
1727
aac12889 1728 }//end loop on tracks
572c1318 1729
1730 ((TH1F*)fHlist->FindObject("hTOFmatchedPerEvt"))->Fill(fNTOFtracks) ;
1731 ((TH2F*)fHlistTimeZero->FindObject("hT0TOFvsNtrk"))->Fill(fNTOFtracks,timeZero[AliESDpid::kTOF_T0]);
7a9f204e 1732
1733 fESDpid->SetTOFResponse(fESD,startTimeMethodDefault);//restore value set by AliPIDResponseTask for subsequent wagons
aac12889 1734
aac12889 1735 PostData(1, fHlist);
e866f574 1736 PostData(2, fHlistTimeZero);
1737 PostData(3, fHlistPID);
4170635c 1738 PostData(4, fHpos);
1739 PostData(5, fHneg);
aac12889 1740}
1741
1742//________________________________________________________________________
1743void AliAnalysisTaskTOFqa::Terminate(Option_t *)
1744{
1745 //check on output validity
1746 fHlist = dynamic_cast<TList*> (GetOutputData(1));
e866f574 1747 if (!fHlist || !fHlistTimeZero) {
aac12889 1748 Printf("ERROR: lists not available");
1749 return;
1750 }
1751
1752}
1753
1754//---------------------------------------------------------------
1755Int_t AliAnalysisTaskTOFqa::GetStripIndex(const Int_t * const in)
1756{
1757 /* return tof strip index between 0 and 91 */
1758
1759 Int_t nStripA = AliTOFGeometry::NStripA();
1760 Int_t nStripB = AliTOFGeometry::NStripB();
1761 Int_t nStripC = AliTOFGeometry::NStripC();
1762
1763 Int_t iplate = in[1];
1764 Int_t istrip = in[2];
1765
1766 Int_t stripOffset = 0;
1767 switch (iplate) {
1768 case 0:
1769 stripOffset = 0;
1770 break;
1771 case 1:
1772 stripOffset = nStripC;
1773 break;
1774 case 2:
1775 stripOffset = nStripC+nStripB;
1776 break;
1777 case 3:
1778 stripOffset = nStripC+nStripB+nStripA;
1779 break;
1780 case 4:
1781 stripOffset = nStripC+nStripB+nStripA+nStripB;
1782 break;
1783 default:
1784 stripOffset=-1;
1785 break;
1786 };
1787
1788 if (stripOffset<0 || stripOffset>92) return -1;
1789 else
1790 return (stripOffset+istrip);
1791}
1792
c9232487 1793//-----------------------------------------------------------------
1794void AliAnalysisTaskTOFqa::FillStartTimeMaskHisto()
1795{
1796 /* set pid response to use best_T0 and for each
1797 accepted track fills the histogram with the
1798 used start time
1799 */
1800
1801 //set response best_t0
1802 //fESDpid->SetTOFResponse(fESD,AliESDpid::kBest_T0);
1803
1804 for (Int_t iTracks = 0; iTracks < fESD->GetNumberOfTracks(); iTracks++) {
1805 AliESDtrack* track = fESD->GetTrack(iTracks);
1806 if (!track) {
1807 Printf("ERROR: Could not receive track %d", iTracks);
1808 continue;
1809 }
1810 //primary tracks selection: kTPCrefit and std cuts
1811 if (fTrackFilter){
1812 if(!fTrackFilter->IsSelected(track)) continue;
1813 }
1814 else{
1815 Printf("No track filter found, skipping the track loop");
1816 break;
1817 }
1818 if (TMath::Abs(track->Eta())>0.8) continue; //cut for acceptance
1819
1820 Int_t StartTimeBit = fESDpid->GetTOFResponse().GetStartTimeMask(track->P());
1821 ((TH2F*)fHlistTimeZero->FindObject("hStartTimeMask"))->Fill(track->P(),StartTimeBit);
1822
1823 //matched tracks selection: kTOFout and kTIME
1824 if ( (track->IsOn(AliESDtrack::kTOFout)) &&
1825 (track->IsOn(AliESDtrack::kTIME)) &&
1826 (track->IsOn(AliESDtrack::kTPCout)) ) {
1827 ((TH2F*)fHlistTimeZero->FindObject("hStartTimeMaskMatched"))->Fill(track->P(),StartTimeBit);
1828 }
1829 }
c9232487 1830 return;
1831}
154404b2 1832
1833//----------------------------------------------------
1834Bool_t AliAnalysisTaskTOFqa::ComputeTimeZeroByTOF1GeV()
1835{
1836 /* compute T0-TOF for tracks within momentum range [0.95, 1.05] */
1837 /* init T0-TOF */
7a9f204e 1838 AliTOFT0v1 *fTOFT0v1 = new AliTOFT0v1(fESDpid); // TOF-T0 v1
154404b2 1839 fTOFT0v1->Init(fESD);
1840 //AliTOFT0v1 *fTOFT0v1 = new AliTOFT0v1(fESDpid);
1841 fTOFT0v1->DefineT0("all", 0.95, 1.05);
1842 fMyTimeZeroTOF = -1000. * fTOFT0v1->GetResult(0);
1843 fMyTimeZeroTOFsigma = 1000. * fTOFT0v1->GetResult(1);
1844 fMyTimeZeroTOFtracks = fTOFT0v1->GetResult(3);
1845 Bool_t hasTimeZeroTOF = kFALSE;
b0471367 1846 //if (fTOFT0v1) delete fTOFT0v1;//removed for coverity
154404b2 1847 /* check T0-TOF sigma */
1848 if (fMyTimeZeroTOFsigma < 250.)
1849 hasTimeZeroTOF = kTRUE;
1850 return hasTimeZeroTOF;
1851}
1852
aac12889 1853#endif