25 #include <Riostream.h>
26 #include <TClonesArray.h>
32 #include <TProfile2D.h>
33 #include <TDatabasePDG.h>
35 #include <AliAnalysisDataSlot.h>
36 #include <AliAnalysisDataContainer.h>
37 #include "AliAnalysisManager.h"
38 #include "AliESDtrack.h"
39 #include "AliESDVertex.h"
40 #include "AliVertexerTracks.h"
42 #include "AliPIDResponse.h"
43 #include "AliTPCPIDResponse.h"
44 #include "AliAODHandler.h"
45 #include "AliAODEvent.h"
46 #include "AliAODVertex.h"
47 #include "AliAODTrack.h"
48 #include "AliAODMCParticle.h"
49 #include "AliAODMCHeader.h"
53 #include "AliAnalysisTaskSE.h"
54 #include "AliCounterCollection.h"
64 #include "AliInputEventHandler.h"
65 #include "AliMultSelection.h"
72 #include "AliTRDTriggerAnalysis.h"
90 , fOutputCounters(0x0)
91 , fOutputCheckCentrality(0x0)
92 , fOutputEvSelection(0x0)
100 , fSimpleMode(kFALSE)
101 , fUseSelectionBit(kTRUE)
103 , fFillDistrTrackEffChecks(kFALSE)
106 , fHisNentriesSelBit(0)
109 , fHisTOFstartTimeMask(0)
110 , fHisTOFstartTimeRes(0)
111 , fHisTOFstartTimeDistrib(0)
113 , fHisTOFtimeKaonHyptime(0)
114 , fHisTOFtimeKaonHyptimeAC(0)
115 , fHisTOFsigmaKSigPid(0)
116 , fHisTOFsigmaPionSigPid(0)
117 , fHisTOFsigmaProtonSigPid(0)
118 , fHisTOFsigPid3sigPion(0)
119 , fHisTOFsigPid3sigKaon(0)
120 , fHisTOFsigPid3sigProton(0)
125 , fHisTPCsigmaPion(0)
126 , fHisTPCsigmaProton(0)
127 , fHisTPCsigNvsPtAllTracks(0)
128 , fHisTPCsigNvsPhiAllTracks(0)
129 , fHisTPCsigNvsEtaAllTracks(0)
130 , fHisTPCsigNvsPtDaughters(0)
131 , fHisTPCsigNvsPhiDaughters(0)
132 , fHisTPCsigNvsEtaDaughters(0)
133 , fHisTOFsigmaMCKSigPid(0)
134 , fHisTOFsigmaMCPionSigPid(0)
135 , fHisTOFsigmaMCProtonSigPid(0)
137 , fHisTPCsigmaMCPion(0)
138 , fHisTPCsigmaMCProton(0)
140 , fHisnClsITSselTr(0)
143 , fHisnLayerITSselTr(0)
147 , fHisptGoodTrFromDaugh(0)
148 , fHisptGoodTrFromDaugh_filt(0)
154 , fHisd0dauphi_filt(0)
158 , fHisd0zdauphi_filt(0)
159 , fHisd0TracksSPDin(0)
160 , fHisd0TracksSPDany(0)
161 , fHisd0TracksFilterBit4(0)
162 , fHisd0TracksTPCITSSPDany(0)
164 , fHisPhiDaughters(0)
165 , fHisEtaDaughters(0)
166 , fHisEtavsPhiDaughters(0)
167 , fHisNTPCclsvsPtDaughters(0)
168 , fHisNTPCclsvsPhiDaughters(0)
169 , fHisNTPCclsvsEtaDaughters(0)
170 , fHisNTPCCrossedRowsvsPtDaughters(0)
171 , fHisNTPCCrossedRowsvsPhiDaughters(0)
172 , fHisNTPCCrossedRowsvsEtaDaughters(0)
173 , fHisRatioCRowsOverFclsvsPtDaughters(0)
174 , fHisRatioCRowsOverFclsvsPhiDaughters(0)
175 , fHisRatioCRowsOverFclsvsEtaDaughters(0)
176 , fHisNITSclsvsPtDaughters(0)
177 , fHisNITSclsvsPhiDaughters(0)
178 , fHisNITSclsvsEtaDaughters(0)
179 , fHisSPDclsDaughters(0)
181 , fHisPhiAllTracks(0)
182 , fHisEtaAllTracks(0)
183 , fHisEtavsPhiAllTracks(0)
184 , fHisNTPCclsvsPtAllTracks(0)
185 , fHisNTPCclsvsPhiAllTracks(0)
186 , fHisNTPCclsvsEtaAllTracks(0)
187 , fHisNTPCCrossedRowsvsPtAllTracks(0)
188 , fHisNTPCCrossedRowsvsPhiAllTracks(0)
189 , fHisNTPCCrossedRowsvsEtaAllTracks(0)
190 , fHisRatioCRowsOverFclsvsPtAllTracks(0)
191 , fHisRatioCRowsOverFclsvsPhiAllTracks(0)
192 , fHisRatioCRowsOverFclsvsEtaAllTracks(0)
193 , fHisNITSclsvsPtAllTracks(0)
194 , fHisNITSclsvsPhiAllTracks(0)
195 , fHisNITSclsvsEtaAllTracks(0)
196 , fHisSPDclsAllTracks(0)
201 , fHisptFakeTrFromDaugh(0)
202 , fHisptFakeTrFromDaughFilt(0)
204 , fHisNtracklets01(0)
205 , fHisNtracklets01AllEv(0)
210 , fHisNtrackletsIn(0)
212 , fHisNtrackletsOut(0)
214 , fHisMultvsPercentile(0)
215 , fHisntrklvsPercentile(0)
216 , fHisntrklvsPercentile01(0)
217 , fHisntrklvsPercentile01AllEv(0)
218 , fHisnTPCTracksvsPercentile(0)
219 , fHisnTPCITSTracksvsPercentile(0)
220 , fHisnTPCITS1SPDTracksvsPercentile(0)
221 , fHisStdEstimSignalPercentile(0)
222 , fHisStdEstimSignalNtrackletsIn(0)
223 , fHisStdEstimSignal(0)
224 , fHisStdPercentileSecondPercentile(0)
225 , fHisStdSignalSecondSignal(0)
226 , fHisStdPercentileOldFrwPercentile(0)
227 , fHisStdPercentileOldFrwPercentileDev(0)
235 , fHisWhichVertSelEv(0)
240 , fHisWhyEvRejected(0)
242 , fHisTPCVZE_AngleQ(0)
243 , fHisCentVsMultRPS(0)
252 for (
Int_t iii=0; iii<3; iii++) {
262 , fOutputEntries(0x0)
265 , fOutputCounters(0x0)
266 , fOutputCheckCentrality(0x0)
267 , fOutputEvSelection(0x0)
268 , fOutputFlowObs(0x0)
275 , fSimpleMode(kFALSE)
276 , fUseSelectionBit(kTRUE)
278 , fFillDistrTrackEffChecks(kFALSE)
281 , fHisNentriesSelBit(0)
284 , fHisTOFstartTimeMask(0)
285 , fHisTOFstartTimeRes(0)
286 , fHisTOFstartTimeDistrib(0)
288 , fHisTOFtimeKaonHyptime(0)
289 , fHisTOFtimeKaonHyptimeAC(0)
290 , fHisTOFsigmaKSigPid(0)
291 , fHisTOFsigmaPionSigPid(0)
292 , fHisTOFsigmaProtonSigPid(0)
293 , fHisTOFsigPid3sigPion(0)
294 , fHisTOFsigPid3sigKaon(0)
295 , fHisTOFsigPid3sigProton(0)
300 , fHisTPCsigmaPion(0)
301 , fHisTPCsigmaProton(0)
302 , fHisTPCsigNvsPtAllTracks(0)
303 , fHisTPCsigNvsPhiAllTracks(0)
304 , fHisTPCsigNvsEtaAllTracks(0)
305 , fHisTPCsigNvsPtDaughters(0)
306 , fHisTPCsigNvsPhiDaughters(0)
307 , fHisTPCsigNvsEtaDaughters(0)
308 , fHisTOFsigmaMCKSigPid(0)
309 , fHisTOFsigmaMCPionSigPid(0)
310 , fHisTOFsigmaMCProtonSigPid(0)
312 , fHisTPCsigmaMCPion(0)
313 , fHisTPCsigmaMCProton(0)
315 , fHisnClsITSselTr(0)
318 , fHisnLayerITSselTr(0)
322 , fHisptGoodTrFromDaugh(0)
323 , fHisptGoodTrFromDaugh_filt(0)
329 , fHisd0dauphi_filt(0)
333 , fHisd0zdauphi_filt(0)
334 , fHisd0TracksSPDin(0)
335 , fHisd0TracksSPDany(0)
336 , fHisd0TracksFilterBit4(0)
337 , fHisd0TracksTPCITSSPDany(0)
339 , fHisPhiDaughters(0)
340 , fHisEtaDaughters(0)
341 , fHisEtavsPhiDaughters(0)
342 , fHisNTPCclsvsPtDaughters(0)
343 , fHisNTPCclsvsPhiDaughters(0)
344 , fHisNTPCclsvsEtaDaughters(0)
345 , fHisNTPCCrossedRowsvsPtDaughters(0)
346 , fHisNTPCCrossedRowsvsPhiDaughters(0)
347 , fHisNTPCCrossedRowsvsEtaDaughters(0)
348 , fHisRatioCRowsOverFclsvsPtDaughters(0)
349 , fHisRatioCRowsOverFclsvsPhiDaughters(0)
350 , fHisRatioCRowsOverFclsvsEtaDaughters(0)
351 , fHisNITSclsvsPtDaughters(0)
352 , fHisNITSclsvsPhiDaughters(0)
353 , fHisNITSclsvsEtaDaughters(0)
354 , fHisSPDclsDaughters(0)
356 , fHisPhiAllTracks(0)
357 , fHisEtaAllTracks(0)
358 , fHisEtavsPhiAllTracks(0)
359 , fHisNTPCclsvsPtAllTracks(0)
360 , fHisNTPCclsvsPhiAllTracks(0)
361 , fHisNTPCclsvsEtaAllTracks(0)
362 , fHisNTPCCrossedRowsvsPtAllTracks(0)
363 , fHisNTPCCrossedRowsvsPhiAllTracks(0)
364 , fHisNTPCCrossedRowsvsEtaAllTracks(0)
365 , fHisRatioCRowsOverFclsvsPtAllTracks(0)
366 , fHisRatioCRowsOverFclsvsPhiAllTracks(0)
367 , fHisRatioCRowsOverFclsvsEtaAllTracks(0)
368 , fHisNITSclsvsPtAllTracks(0)
369 , fHisNITSclsvsPhiAllTracks(0)
370 , fHisNITSclsvsEtaAllTracks(0)
371 , fHisSPDclsAllTracks(0)
376 , fHisptFakeTrFromDaugh(0)
377 , fHisptFakeTrFromDaughFilt(0)
379 , fHisNtracklets01(0)
380 , fHisNtracklets01AllEv(0)
385 , fHisNtrackletsIn(0)
387 , fHisNtrackletsOut(0)
389 , fHisMultvsPercentile(0)
390 , fHisntrklvsPercentile(0)
391 , fHisntrklvsPercentile01(0)
392 , fHisntrklvsPercentile01AllEv(0)
393 , fHisnTPCTracksvsPercentile(0)
394 , fHisnTPCITSTracksvsPercentile(0)
395 , fHisnTPCITS1SPDTracksvsPercentile(0)
396 , fHisStdEstimSignalPercentile(0)
397 , fHisStdEstimSignalNtrackletsIn(0)
398 , fHisStdEstimSignal(0)
399 , fHisStdPercentileSecondPercentile(0)
400 , fHisStdSignalSecondSignal(0)
401 , fHisStdPercentileOldFrwPercentile(0)
402 , fHisStdPercentileOldFrwPercentileDev(0)
410 , fHisWhichVertSelEv(0)
415 , fHisWhyEvRejected(0)
417 , fHisTPCVZE_AngleQ(0)
418 , fHisCentVsMultRPS(0)
431 for (
Int_t iii=0; iii<3; iii++) {
438 DefineOutput(1,TList::Class());
440 if (
fOnOff[1]) DefineOutput(2,TList::Class());
442 if (
fOnOff[0]) DefineOutput(3,TList::Class());
446 DefineOutput(4,AliRDHFCutsDplustoKpipi::Class());
449 DefineOutput(4,AliRDHFCutsD0toKpi::Class());
452 DefineOutput(4,AliRDHFCutsDStartoKpipi::Class());
455 DefineOutput(4,AliRDHFCutsDstoKKpi::Class());
458 DefineOutput(4,AliRDHFCutsD0toKpipipi::Class());
461 DefineOutput(4,AliRDHFCutsLctopKpi::Class());
464 DefineOutput(4,AliRDHFCutsLctoV0::Class());
469 DefineOutput(5,TList::Class());
471 DefineOutput(6,TList::Class());
474 if(
fOnOff[3]) DefineOutput(7,TList::Class());
475 if(
fOnOff[4]) DefineOutput(8,TList::Class());
507 if(fDebug > 1) printf(
"AnalysisTaskSEHFQA::Init() \n");
547 AliFatal(
"Bad initialization for the decay channe - Exiting...");
551 const char* nameoutput=GetOutputSlot(4)->GetContainer()->GetName();
553 copycut->SetName(nameoutput);
558 AliFatal(
"Failing initializing AliRDHFCuts object - Exiting...");
570 if(fDebug > 1) printf(
"AnalysisTaskSEHFQA::UserCreateOutputObjects() \n");
575 fOutputEntries->SetName(GetOutputSlot(1)->GetContainer()->GetName());
578 TString hnameEntries=
"hNentries";
579 fHisNentries=
new TH1F(hnameEntries.Data(),
"Counts the number of events", 15,-0.5,14.5);
581 fHisNentries->GetXaxis()->SetBinLabel(2,
"nEvents Matched dAOD");
582 fHisNentries->GetXaxis()->SetBinLabel(3,
"Mismatched dAOD (Event numbers)");
583 fHisNentries->GetXaxis()->SetBinLabel(4,
"Mismatched dAOD (TProcessID)");
584 fHisNentries->GetXaxis()->SetBinLabel(5,
"Mismatched Old New Centrality");
587 fHisNentries->GetXaxis()->SetBinLabel(8,
"No VertexingHF");
588 fHisNentries->GetXaxis()->SetBinLabel(9,
"nCandidates(AnCuts)");
589 fHisNentries->GetXaxis()->SetBinLabel(10,
"EventsWithGoodVtx");
590 fHisNentries->GetXaxis()->SetBinLabel(11,
"N candidates");
592 fHisNentries->GetXaxis()->SetBinLabel(12,
"MC Cand from c");
593 fHisNentries->GetXaxis()->SetBinLabel(13,
"MC Cand from b");
594 fHisNentries->GetXaxis()->SetBinLabel(14,
"N fake Trks");
595 fHisNentries->GetXaxis()->SetBinLabel(15,
"N true Trks");
600 hnameEntries=
"HasSelBit";
601 fHisNentriesSelBit=
new TH2F(hnameEntries.Data(),
"Counts the number of events with SelectionBit", 5,0.,5.,100,0.,30.);
616 fOutputPID->SetName(GetOutputSlot(2)->GetContainer()->GetName());
619 fHisTOFflags=
new TH1F(
"hTOFflags",
"TOF flags",7,-0.5,6.5);
626 fHisTOFflags->GetXaxis()->SetBinLabel(6,
"kTOFmismatch");
630 fHisTOFsig=
new TH1F(hname.Data(),
"Distribution of TOF signal;TOF time [ps];Entries", 100, -2.e3,40.e3);
632 hname=
"hTOFstartTimeMask";
643 hname=
"hTOFstartTimeRes";
644 fHisTOFstartTimeRes=
new TH1F(hname.Data(),
"TOF start time resolution; Resolution (ps) ;Entries", 100, 0.,300.);
646 hname=
"hTOFstartTimeDistrib";
647 fHisTOFstartTimeDistrib=
new TH1F(hname.Data(),
"TOF start time distribution; Start time ;Entries", 400, -1000.,1000.);
650 fHisTOFtime=
new TH1F(hname.Data(),
"Distribution of TOF time Kaon;TOF time(Kaon) [ps];Entries", 1000, 0.,50000.);
652 hname=
"hTOFtimeKaonHyptime";
653 fHisTOFtimeKaonHyptime=
new TH2F(hname.Data(),
"TOFtime - timeHypothesisForKaon;p[GeV/c];TOFtime - timeHypothesisForKaon [ps]",500,0.,10.,1000,-20000.,20000.);
655 hname=
"hTOFtimeKaonHyptimeAC";
656 fHisTOFtimeKaonHyptimeAC=
new TH2F(hname.Data(),
"TOFtime - timeHypothesisForKaon;p[GeV/c];TOFtime - timeHypothesisForKaon [ps]",500,0.,10.,1000,-20000.,20000.);
658 hname=
"hTOFsigmaKSigPid";
659 fHisTOFsigmaKSigPid=
new TH2F(hname.Data(),
"(TOFsignal-timeK)/tofSigPid;p[GeV/c];(TOFsignal-timeK)/tofSigPid",500,0.,10.,400,-20,20);
661 hname=
"hTOFsigmaPionSigPid";
662 fHisTOFsigmaPionSigPid=
new TH2F(hname.Data(),
"(TOFsignal-time#pi)/tofSigPid;p[GeV/c];(TOFsignal-time#pi)/tofSigPid",500,0.,10.,400,-20,20);
664 hname=
"hTOFsigmaProtonSigPid";
665 fHisTOFsigmaProtonSigPid=
new TH2F(hname.Data(),
"(TOFsignal-timep)/tofSigPid;p[GeV/c];(TOFsignal-time p)/tofSigPid",500,0.,10.,400,-20,20);
667 hname=
"hTOFsigPid3sigPion";
670 hname=
"hTOFsigPid3sigKaon";
673 hname=
"hTOFsigPid3sigProton";
679 fHisTPCsig=
new TH1F(hname.Data(),
"Distribution of TPC signal;TPC sig;Entries", 100, 35.,100.);
682 fHisTPCsigvsp=
new TH2F(hname.Data(),
"TPCsig vs p;TPC p[GeV/c];TPCsig",500,0.,10.,1000,35.,100.);
684 hname=
"hTPCsigvspAC";
685 fHisTPCsigvspAC=
new TH2F(hname.Data(),
"TPCsig vs p;TPCp[GeV/c];TPCsig",500,0.,10.,1000,35.,100.);
688 fHisTPCsigmaK=
new TH2F(hname.Data(),
"TPC Sigma for K as a function of momentum;p[GeV/c];Sigma Kaon",500,0.,10.,400,-20,20);
690 hname=
"hTPCsigmaPion";
691 fHisTPCsigmaPion=
new TH2F(hname.Data(),
"TPC Sigma for #pi as a function of momentum;p[GeV/c];Sigma #pi",500,0.,10.,400,-20,20);
693 hname=
"hTPCsigmaProton";
694 fHisTPCsigmaProton=
new TH2F(hname.Data(),
"TPC Sigma for proton as a function of momentum;p[GeV/c];Sigma Proton",500,0.,10.,400,-20,20);
720 hname=
"hTPCsigNvsPtAllTracks";
721 fHisTPCsigNvsPtAllTracks=
new TH2F(hname.Data(),
"Distribution of n. points used for TPC dE/dx vs. p_{T};p_{T} [GeV/c]; n. points", 200, 0.,20.,161,-0.5,160.5);
723 hname=
"hTPCsigNvsPhiAllTracks";
724 fHisTPCsigNvsPhiAllTracks=
new TH2F(hname.Data(),
"Distribution of n. points used for TPC dE/dx vs. #phi;#phi [rad]; n. points", 100, 0.,2*TMath::Pi(),161,-0.5,160.5);
726 hname=
"hTPCsigNvsEtaAllTracks";
727 fHisTPCsigNvsEtaAllTracks=
new TH2F(hname.Data(),
"Distribution of n. points used for TPC dE/dx vs. #eta;eta; n. points", 80,-2.,2.,161,-0.5,160.5);
729 hname=
"hTPCsigNvsPtDaughters";
730 fHisTPCsigNvsPtDaughters=
new TH2F(hname.Data(),
"Distribution of n. points used for TPC dE/dx vs. p_{T};p_{T} [GeV/c]; n. points", 200, 0.,20.,161,-0.5,160.5);
732 hname=
"hTPCsigNvsPhiDaughters";
733 fHisTPCsigNvsPhiDaughters=
new TH2F(hname.Data(),
"Distribution of n. points used for TPC dE/dx vs. #phi;#phi [rad]; n. points", 100, 0.,2*TMath::Pi(),161,-0.5,160.5);
735 hname=
"hTPCsigNvsEtaDaughters";
736 fHisTPCsigNvsEtaDaughters=
new TH2F(hname.Data(),
"Distribution of n. points used for TPC dE/dx vs. #eta;eta; n. points", 80,-2.,2.,161,-0.5,160.5);
749 hname=
"hTOFsigmaMCKSigPid";
750 fHisTOFsigmaMCKSigPid=
new TH2F(hname.Data(),
"(TOFsignal-timeK)/tofSigPid;p[GeV/c];(TOFsignal-timeK)/tofSigPid",500,0.,10.,400,-20,20);
752 hname=
"hTOFsigmaMCPionSigPid";
753 fHisTOFsigmaMCPionSigPid=
new TH2F(hname.Data(),
"(TOFsignal-time#pi)/tofSigPid;p[GeV/c];(TOFsignal-time#pi)/tofSigPid",500,0.,10.,400,-20,20);
755 hname=
"hTOFsigmaMCProtonSigPid";
759 hname=
"hTPCsigmaMCK";
760 fHisTPCsigmaMCK=
new TH2F(hname.Data(),
"TPC Sigma for K as a function of momentum;p[GeV/c];Sigma Kaon",500,0.,10.,400,-20,20);
762 hname=
"hTPCsigmaMCPion";
763 fHisTPCsigmaMCPion=
new TH2F(hname.Data(),
"TPC Sigma for #pi as a function of momentum;p[GeV/c];Sigma #pi",500,0.,10.,400,-20,20);
765 hname=
"hTPCsigmaMCProton";
766 fHisTPCsigmaMCProton=
new TH2F(hname.Data(),
"TPC Sigma for proton as a function of momentum;p[GeV/c];Sigma Proton",500,0.,10.,400,-20,20);
782 fOutputTrack->SetName(GetOutputSlot(3)->GetContainer()->GetName());
785 fHisnClsITS=
new TH1F(hname.Data(),
"Distribution of number of ITS clusters;nITScls;Entries",7,-0.5,6.5);
787 hname=
"hnClsITSselTr";
788 fHisnClsITSselTr=
new TH1F(hname.Data(),
"Distribution of number of ITS clusters selected tracks;nITScls;Entries",7,-0.5,6.5);
791 fHisnClsITSSA=
new TH1F(hname.Data(),
"Distribution of number of ITS clusters(ITS-SA);nITScls;Entries",7,-0.5,6.5);
795 fHisnLayerITS=
new TH1F(hname.Data(),
"Number of tracks with point in layer;ITS layer;",7,-1.5,5.5);
804 hname=
"hnLayerITSselTr";
805 fHisnLayerITSselTr=
new TH1F(hname.Data(),
"Number of selected tracks with point in layer;ITS layer;",7,-1.5,5.5);
814 hname=
"hnLayerITSsa";
815 fHisnLayerITSsa=
new TH1F(hname.Data(),
"Number of ITSsa tracks with point in layer;ITS layer;",7,-1.5,5.5);
825 fHisnClsSPD=
new TH1F(hname.Data(),
"Distribution of number of SPD clusters;nSPDcls;Entries",3,-0.5,2.5);
828 fHisptGoodTr=
new TH1F(hname.Data(),
"Pt distribution of 'good' tracks;p_{t}[GeV];Entries/0.05 GeV/c",400,0.,20.);
832 hname=
"hptGoodTrFromDaugh";
833 fHisptGoodTrFromDaugh=
new TH1F(hname.Data(),
"Pt distribution of 'good' candidate's daughters;p_{t}[GeV];Entries/0.05 GeV/c",400,0.,20.);
836 hname=
"hptGoodTrFromDaugh_filt";
837 fHisptGoodTrFromDaugh_filt=
new TH1F(hname.Data(),
"Pt distribution of 'good' candidate's daughters, cuts level;p_{t}[GeV];Entries/0.05 GeV/c",400,0.,20.);
842 hname=
"hdistrGoodTr";
843 fHisdistrGoodTr=
new TH1F(hname.Data(),
"Distribution of number of 'good' candidate's daughters per event;no.good-tracks/ev;Entries",4000,-0.5,3999.5);
847 fHisdistrSelTr=
new TH1F(hname.Data(),
"Distribution of number of Selected tracks per event;no.good-tracks/ev;Entries",4000,-0.5,3999.5);
851 fHisd0dau=
new TH1F(hname.Data(),
"Impact parameter (rphi) distribution of D daughter tracks;d_{0rphi}[cm];Entries/10^{3} cm",200,-0.1,0.1);
854 fHisd0dau_filt=
new TH1F(hname.Data(),
"Impact parameter (rphi) distribution of D daughter tracks, cut level;d_{0rphi}[cm];Entries/10^{3} cm",200,-0.1,0.1);
857 fHisd0dauphi=
new TH2F(hname.Data(),
"Impact parameter (rphi) distribution of D daughter tracks versus #phi; #phi [rad]; d_{0rphi} [cm]",400,0,6.3,200,-0.1,0.1);
859 hname=
"hd0dauphi_filt";
860 fHisd0dauphi_filt=
new TH2F(hname.Data(),
"Impact parameter (rphi) distribution of D daughter tracks versus #phi, cut level; #phi [rad]; d_{0rphi} [cm]",400,0,6.3,200,-0.1,0.1);
863 fHisd0zdau=
new TH1F(hname.Data(),
"Impact parameter (z) distribution of D daughter tracks;d_{0z}[cm];Entries/10^{3} cm",200,-0.1,0.1);
865 hname=
"hd0zdau_filt";
866 fHisd0zdau_filt=
new TH1F(hname.Data(),
"Impact parameter (z) distribution of D daughter tracks, cut level;d_{0z}[cm];Entries/10^{3} cm",200,-0.1,0.1);
870 fHisd0zdauphi=
new TH2F(hname.Data(),
"Impact parameter (z) distribution of D daughter tracks versus #phi; #phi [rad]; d_{0z} [cm]",400,0,6.3,200,-0.1,0.1);
872 hname=
"hd0zdauphi_filt";
873 fHisd0zdauphi_filt=
new TH2F(hname.Data(),
"Impact parameter (z) distribution of D daughter tracks versus #phi, filtering level; #phi [rad]; d_{0z} [cm]",400,0,6.3,200,-0.1,0.1);
875 hname=
"hd0TracksSPDin";
876 fHisd0TracksSPDin=
new TH1F(hname.Data(),
"Impact parameter (rphi) distribution of AOD tracks kITSrefit, SPDinner; d_{0rphi}[cm];Entries",200,-0.5,0.5);
878 hname=
"hd0TracksSPDany";
879 fHisd0TracksSPDany=
new TH1F(hname.Data(),
"Impact parameter (rphi) distribution of AOD tracks kITSrefit, SPDany; d_{0rphi}[cm];Entries",200,-0.5,0.5);
881 hname=
"hd0TracksFilterBit4";
882 fHisd0TracksFilterBit4=
new TH1F(hname.Data(),
"Impact parameter (rphi) distribution of AOD tracks FilterBit4; d_{0rphi}[cm];Entries",200,-0.5,0.5);
884 hname=
"hd0TracksTPCITSSPDany";
885 fHisd0TracksTPCITSSPDany=
new TH1F(hname.Data(),
"Impact parameter (rphi) distribution of AOD tracks TPC+ITScuts+SPDany; d_{0rphi}[cm];Entries",200,-0.5,0.5);
889 hname=
"hPtDaughters";
890 fHisPtDaughters=
new TH1F(hname.Data(),
"p_{T} distributions of the daughter tracks;p_{T} [GeV/c];Entries",200,0.,20.);
892 hname=
"hPhiDaughters";
893 fHisPhiDaughters=
new TH1F(hname.Data(),
"#phi distribution of the daughter tracks;#phi [rad];Entries",100,0.,2*(TMath::Pi()));
895 hname=
"hEtaDaughters";
896 fHisEtaDaughters=
new TH1F(hname.Data(),
"#eta distribution of the daughter tracks;#eta;Entries",80,-2.,2.);
898 hname=
"hEtavsPhiDaughters";
899 fHisEtavsPhiDaughters=
new TH2F(hname.Data(),
"#eta vs #phi distribution of the daughter tracks;#phi;#eta",100,0.,2*(TMath::Pi()),80,-2.,2.);
901 hname=
"hNTPCclsvsPtDaughters";
902 fHisNTPCclsvsPtDaughters=
new TH2F(hname.Data(),
"N TPC clusters vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];N TPC cls",200,0.,20.,85,-0.5,169.5);
904 hname=
"hNTPCclsvsPhiDaughters";
905 fHisNTPCclsvsPhiDaughters=
new TH2F(hname.Data(),
"N TPC clusters vs #phi distribution of the daughter tracks;#phi [rad];N TPC cls",100,0.,2*(TMath::Pi()),85,-0.5,169.5);
907 hname=
"hNTPCclsvsEtaDaughters";
908 fHisNTPCclsvsEtaDaughters=
new TH2F(hname.Data(),
"N TPC clusters vs #eta distribution of the daughter tracks;#eta;N TPC cls",80,-2.,2.,85,-0.5,169.5);
910 hname=
"hNTPCCrossedRowsvsPtDaughters";
911 fHisNTPCCrossedRowsvsPtDaughters=
new TH2F(hname.Data(),
"N TPC crossed rows vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];N TPC cros. rows",200,0.,20.,100,-0.5,199.5);
913 hname=
"hNTPCCrossedRowsvsPhiDaughters";
914 fHisNTPCCrossedRowsvsPhiDaughters=
new TH2F(hname.Data(),
"N TPC crossed rows vs #phi distribution of the daughter tracks;#phi [rad];N TPC cros. rows",100,0.,2*(TMath::Pi()),100,-0.5,199.5);
916 hname=
"hNTPCCrossedRowsvsEtaDaughters";
919 hname=
"hRatioCRowsOverFclsvsPtDaughters";
922 hname=
"hRatioCRowsOverFclsvsPhiDaughters";
925 hname=
"hRatioCRowsOverFclsvsEtaDaughters";
928 hname=
"hNITSclsvsPtDaughters";
929 fHisNITSclsvsPtDaughters=
new TH2F(hname.Data(),
"N ITS clusters vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];N ITS cls",200,0.,20,7,-0.5,6.5);
931 hname=
"hNITSclsvsPhiDaughters";
932 fHisNITSclsvsPhiDaughters=
new TH2F(hname.Data(),
"N ITS clusters vs #phi distribution of the daughter tracks;#phi [rad];N ITS cls",100,0.,2*(TMath::Pi()),7,-0.5,6.5);
934 hname=
"hNITSclsvsEtaDaughters";
935 fHisNITSclsvsEtaDaughters=
new TH2F(hname.Data(),
"N ITS clusters vs #eta distribution of the daughter tracks;#eta;N ITS cls",80,-2.,2.,7,-0.5,6.5);
937 hname=
"hSPDclsDaughters";
938 fHisSPDclsDaughters =
new TH1F(hname.Data(),
"N SPD points distribution;;Entries",4,-0.5,3.5);
944 hname=
"hPtAllTracks";
945 fHisPtAllTracks=
new TH1F(hname.Data(),
"p_{T} distributions of the AOD tracks (ID>0);p_{T} [GeV/c];Entries",200,0.,20.);
947 hname=
"hPhiAllTracks";
948 fHisPhiAllTracks=
new TH1F(hname.Data(),
"#phi distribution of the AOD tracks (ID>0);#phi [rad];Entries",100,0.,2*(TMath::Pi()));
950 hname=
"hEtaAllTracks";
951 fHisEtaAllTracks=
new TH1F(hname.Data(),
"#eta distribution of the AOD tracks (ID>0);#eta;Entries",80,-2.,2.);
953 hname=
"hEtavsPhiAllTracks";
954 fHisEtavsPhiAllTracks=
new TH2F(hname.Data(),
"#eta vs #phi distribution of the AOD tracks (ID>0);#phi;#eta",100,0.,2*(TMath::Pi()),80,-2.,2.);
956 hname=
"hNTPCclsvsPtAllTracks";
957 fHisNTPCclsvsPtAllTracks=
new TH2F(hname.Data(),
"N TPC clusters vs p_{T} distribution of the AOD tracks (ID>0);p_{T} [GeV/c];N TPC cls",200,0.,20,85,-0.5,169.5);
959 hname=
"hNTPCclsvsPhiAllTracks";
960 fHisNTPCclsvsPhiAllTracks=
new TH2F(hname.Data(),
"N TPC clusters vs #phi distribution of the AOD tracks (ID>0);#phi [rad];N TPC cls",100,0.,2*(TMath::Pi()),85,-0.5,169.5);
962 hname=
"hNTPCclsvsEtaAllTracks";
963 fHisNTPCclsvsEtaAllTracks=
new TH2F(hname.Data(),
"N TPC clusters vs #eta distribution of the AOD tracks (ID>0);#eta;N TPC cls",80,-2.,2.,85,-0.5,169.5);
965 hname=
"hNTPCCrossedRowsvsPtAllTracks";
968 hname=
"hNTPCCrossedRowsvsPhiAllTracks";
969 fHisNTPCCrossedRowsvsPhiAllTracks=
new TH2F(hname.Data(),
"N TPC crossed rows vs #phi distribution of the AOD tracks;#phi [rad];N TPC cros. rows",100,0.,2*(TMath::Pi()),100,-0.5,199.5);
971 hname=
"hNTPCCrossedRowsvsEtaAllTracks";
974 hname=
"hRatioCRowsOverFclsvsPtAllTracks";
977 hname=
"hRatioCRowsOverFclsvsPhiAllTracks";
980 hname=
"hRatioCRowsOverFclsvsEtaAllTracks";
983 hname=
"hNITSclsvsPtAllTracks";
984 fHisNITSclsvsPtAllTracks=
new TH2F(hname.Data(),
"N ITS clusters vs p_{T} distribution of the AOD tracks (ID>0);p_{T} [GeV/c];N ITS cls",200,0.,20,7,-0.5,6.5);
986 hname=
"hNITSclsvsPhiAllTracks";
987 fHisNITSclsvsPhiAllTracks=
new TH2F(hname.Data(),
"N ITS clusters vs #phi distribution of the AOD tracks (ID>0);#phi [rad];N ITS cls",100,0.,2*(TMath::Pi()),7,-0.5,6.5);
989 hname=
"hNITSclsvsEtaAllTracks";
990 fHisNITSclsvsEtaAllTracks=
new TH2F(hname.Data(),
"N ITS clusters vs #eta distribution of the AOD tracks (ID>0);#eta;N ITS cls",80,-2.,2.,7,-0.5,6.5);
992 hname=
"hSPDclsAllTracks";
993 fHisSPDclsAllTracks =
new TH1F(hname.Data(),
"N SPD points distribution AOD tracks (ID>0);;Entries",4,-0.5,3.5);
1062 hname=
"hdistrFakeTr";
1063 fHisdistrFakeTr=
new TH1F(hname.Data(),
"Distribution of number of fake tracks per event;no.fake-tracks/ev;Entries",4000,-0.5,3999.5);
1067 fHisd0f=
new TH1F(hname.Data(),
"Impact parameter distribution of fake tracks;d_{0}[cm];Entries/10^{3} cm",200,-0.1,0.1);
1070 fHisd0f_filt=
new TH1F(hname.Data(),
"Impact parameter distribution of fake tracks, cut level;d_{0}[cm];Entries/10^{3} cm",200,-0.1,0.1);
1074 fHisptFakeTr=
new TH1F(hname.Data(),
"Pt distribution of fake tracks;p_{t}[GeV];Entries/0.05 GeV/c",400,0.,20.);
1077 hname=
"hptFakeTrFromDaugh";
1078 fHisptFakeTrFromDaugh=
new TH1F(hname.Data(),
"Pt distribution of fake tracks from daughters;p_{t}[GeV];Entries/0.05 GeV/c",400,0.,20.);
1082 hname=
"hptFakeTrFromDaugh_filt";
1083 fHisptFakeTrFromDaughFilt=
new TH1F(hname.Data(),
"Pt distribution of fake tracks from daughters, cut level;p_{t}[GeV];Entries/0.05 GeV/c",400,0.,20.);
1101 fOutputCounters->SetName(GetOutputSlot(5)->GetContainer()->GetName());
1103 AliCounterCollection *stdEstimator=
new AliCounterCollection(
"stdEstimator");
1104 stdEstimator->AddRubric(
"run",500000);
1105 stdEstimator->AddRubric(
"centralityclass",
"-10_0/0_10/10_20/20_30/30_40/40_50/50_60/60_70/70_80/80_90/90_100/-990_-980");
1106 stdEstimator->Init();
1107 AliCounterCollection *secondEstimator=
new AliCounterCollection(
"secondEstimator");
1108 secondEstimator->AddRubric(
"run",500000);
1109 secondEstimator->AddRubric(
"centralityclass",
"-10_0/0_10/10_20/20_30/30_40/40_50/50_60/60_70/70_80/80_90/90_100/-990_-980");
1110 secondEstimator->Init();
1120 TString hname=
"hNtrackletsIn";
1121 fHisNtrackletsIn=
new TH1F(hname.Data(),
"Number of tracklets in Centrality range;ntracklets;Entries",5000,-0.5,4999.5);
1124 fHisMultIn=
new TH1F(hname.Data(),
"Multiplicity;multiplicity in Centrality range;Entries",10000,-0.5,9999.5);
1126 hname=
"hNtrackletsOut";
1127 fHisNtrackletsOut=
new TH1F(hname.Data(),
"Number of tracklets out of Centrality range;ntracklets;Entries",5000,-0.5,4999.5);
1130 fHisMultOut=
new TH1F(hname.Data(),
"Multiplicity out of Centrality range;multiplicity;Entries",10000,-0.5,9999.5);
1132 hname=
"hMultvsPercentile";
1133 fHisMultvsPercentile=
new TH2F(hname.Data(),
"Multiplicity vs Percentile;multiplicity;percentile",10000,-0.5,9999.5,240,-10.,110);
1135 hname=
"hntrklvsPercentile";
1136 fHisntrklvsPercentile=
new TH2F(hname.Data(),
"N tracklets vs Percentile;ntracklets;percentile",5000,-0.5,4999.5,240,-10.,110);
1138 hname=
"hntrklvsPercentile01";
1139 fHisntrklvsPercentile01=
new TH2F(hname.Data(),
"N tracklets vs Percentile |#eta|<1;ntracklets;percentile",5000,-0.5,4999.5,240,-10.,110);
1141 hname=
"hntrklvsPercentile01AllEv";
1144 hname=
"hnTPCTracksvsPercentile";
1147 hname=
"hnTPCITSTracksvsPercentile";
1150 hname=
"hnTPCITS1SPDTracksvsPercentile";
1153 hname=
"hStdEstimSignalPercentile";
1156 hname=
"hStdEstimSignalNtrackletsIn";
1157 fHisStdEstimSignalNtrackletsIn =
new TH2F(hname.Data(),
"Std estimator signal vs Number of tracklets in the CC;Std estimator signal;number of tracklets",1000,-0.5,9999.5,5000,-0.5,4999.5);
1159 hname=
"hStdEstimSignal";
1162 hname=
"hStdPercentileSecondPercentile";
1163 fHisStdPercentileSecondPercentile =
new TH2F(hname.Data(),
"Std estimator Percentile Vs Second Estimator Percentile;Std estimator percentile;Second estimator percentile",120,-10.,110,120,-10.,110);
1165 hname=
"hStdSignalSecondSignal";
1166 fHisStdSignalSecondSignal =
new TH2F(hname.Data(),
"Std estimator signal Vs Second Estimator signal;Std estimator;Second estimator",1000,-0.5,9999.5,1000,-0.5,9999.5);
1168 hname=
"hStdPercentileOldFrwPercentile";
1169 fHisStdPercentileOldFrwPercentile =
new TH2F(hname.Data(),
"Std estimator Percentile Vs Old Framework estimator Percentile;Std estimator percentile;Old framework estimator percentile",120,-10.,110,120,-10.,110);
1171 hname=
"hStdPercentileOldFrwPercentileDev";
1204 fHisNtracklets=
new TH1F(hname.Data(),
"Number of tracklets;ntracklets;Entries",5000,-0.5,4999.5);
1205 hname=
"hNtracklets01";
1206 fHisNtracklets01=
new TH1F(hname.Data(),
"Number of tracklets |#eta|<1;ntracklets;Entries",5000,-0.5,4999.5);
1207 hname=
"hNtracklets01AllEv";
1208 fHisNtracklets01AllEv=
new TH1F(hname.Data(),
"Number of tracklets |#eta|<1 - All events;ntracklets;Entries",5000,-0.5,4999.5);
1210 fHisMult=
new TH1F(hname.Data(),
"Multiplicity;multiplicity;Entries",10000,-0.5,9999.5);
1212 fHisMultFBit4=
new TH1F(hname.Data(),
"Multiplicity (global+tracklet) with filter bit 4;multiplicity;Entries",10000,-0.5,9999.5);
1213 hname=
"hMultComb05";
1214 fHisMultComb05=
new TH1F(hname.Data(),
"Multiplicity (global+tracklet) in |#eta|<0.5;multiplicity;Entries",10000,-0.5,9999.5);
1215 hname=
"hMultComb08";
1216 fHisMultComb08=
new TH1F(hname.Data(),
"Multiplicity (global+tracklet) in |#eta|<0.8;multiplicity;Entries",10000,-0.5,9999.5);
1233 AliCounterCollection *evselection=
new AliCounterCollection(
"evselection");
1234 evselection->AddRubric(
"run",500000);
1235 evselection->AddRubric(
"evnonsel",
"zvtx");
1236 evselection->Init();
1238 fHisxvtx=
new TH1F(
"hxvtx",
"Distribution of x_{VTX};x_{VTX} [cm];Entries",800,-1,1);
1239 fHisyvtx=
new TH1F(
"hyvtx",
"Distribution of y_{VTX};y_{VTX} [cm];Entries",800,-1,1);
1240 fHiszvtx=
new TH1F(
"hzvtx",
"Distribution of z_{VTX};z_{VTX} [cm];Entries",800,-30,30);
1241 fHisxvtxSelEv=
new TH1F(
"hxvtxSelEv",
"Distribution of x_{VTX} Selected Ev;x_{VTX} [cm];Entries",800,-1,1);
1242 fHisyvtxSelEv=
new TH1F(
"hyvtxSelEv",
"Distribution of y_{VTX} Selected Ev;y_{VTX} [cm];Entries",800,-1,1);
1243 fHiszvtxSelEv=
new TH1F(
"hzvtxSelEv",
"Distribution of z_{VTX} Selected Ev;z_{VTX} [cm];Entries",800,-30,30);
1244 fHisWhichVert=
new TH1F(
"hWhichVert",
"Vertex Type",4,-1.5,2.5);
1255 fHisTrigCent=
new TH2F(
"hTrigCent",
"Centrality vs. Trigger types",24,-1.5,22.5,12,-10,110);
1268 fHisTrigCent->GetXaxis()->SetBinLabel(13,
"kEMCGAMMA7");
1270 fHisTrigCent->GetXaxis()->SetBinLabel(15,
"kEMCGAMMA8");
1281 fHisTrigMul=
new TH2F(
"hTrigMul",
"Multiplicity vs. Trigger types",24,-1.5,22.5,1000,0.,10000.);
1289 fHisTrigMul->GetXaxis()->SetBinLabel(8,
"kSemiCent");
1293 fHisTrigMul->GetXaxis()->SetBinLabel(12,
"kEMCJET7");
1294 fHisTrigMul->GetXaxis()->SetBinLabel(13,
"kEMCGAMMA7");
1295 fHisTrigMul->GetXaxis()->SetBinLabel(14,
"kEMCJET8");
1296 fHisTrigMul->GetXaxis()->SetBinLabel(15,
"kEMCGAMMA8");
1300 fHisTrigMul->GetXaxis()->SetBinLabel(19,
"TRDHJT");
1301 fHisTrigMul->GetXaxis()->SetBinLabel(20,
"TRDHSE");
1302 fHisTrigMul->GetXaxis()->SetBinLabel(21,
"HighMult");
1305 fHisTrigMul->GetXaxis()->SetBinLabel(24,
"Others");
1333 fHisTrigMulSel=
new TH2F(
"hTrigMulSel",
"Multiplicity after selection vs. Trigger types",24,-1.5,22.5,1000,0.,10000.);
1359 AliCounterCollection *trigCounter=
new AliCounterCollection(
"trigCounter");
1360 trigCounter->AddRubric(
"run",500000);
1361 trigCounter->AddRubric(
"triggerType",
"All/Any/MB/Cent/SemiCent/EMCAL/MUON/NoPhysSelMUON/NoPhysSelEvNot7/NoPhysSelCMUP1/NoPhysSelMB/NoPhysSelCent/NoPhysSelSemiCent/CINT7/INT8");
1362 trigCounter->Init();
1364 AliCounterCollection *trigCounter2=
new AliCounterCollection(
"trigCounter2");
1365 trigCounter2->AddRubric(
"run",500000);
1366 trigCounter2->AddRubric(
"triggerType",
"All/Any/MB/CINT7/INT8/NoPhysSelEvNot7/NoPhysSelMB/HighMult/SPI7/SPI8/EMC1/EMC7/EMC8/EMCJET7/EMCJET8/EMCGAMMA/TRD/TRDHJT/TRDHSE");
1367 trigCounter2->Init();
1401 fOutputFlowObs->SetName(GetOutputSlot(8)->GetContainer()->GetName());
1406 fHisFEvents =
new TH2F(
"hFlowEvents",
"FlowEvent Selection",7,0,7,7,-10,60);
1407 fHisFEvents->GetXaxis()->SetBinLabel(1,
"REACHED");
1408 fHisFEvents->GetXaxis()->SetBinLabel(2,
"TRIGGERED");
1412 fHisFEvents->GetXaxis()->SetBinLabel(6,
"Triggered + vtx cut");
1413 fHisFEvents->GetXaxis()->SetBinLabel(7,
"UnexpectedBehaviour");
1416 TString ref[3] = {
"FB1",
"FB128",
"VZE"};
1417 Int_t etabin[3] = {40,40,20};
1419 for(
Int_t i=0; i<3; ++i) {
1420 fHisQ[i]=
new TProfile2D( Form(
"h%s_Q",ref[i].
Data()),
1421 Form(
"Q_{2} components for %s",ref[i].
Data()),
1423 fHisQ[i]->GetXaxis()->SetBinLabel(1,
"Qx^{-}");
1424 fHisQ[i]->GetXaxis()->SetBinLabel(2,
"Qy^{-}");
1425 fHisQ[i]->GetXaxis()->SetBinLabel(3,
"Qx^{+}");
1426 fHisQ[i]->GetXaxis()->SetBinLabel(4,
"Qy^{+}");
1427 fHisQ[i]->GetYaxis()->SetTitle(
"Centrality");
1431 Form(
"#Psi_{2} for %s",ref[i].
Data()),
1432 72,0,TMath::Pi(),12,0,60);
1433 fHisAngleQ[i]->GetXaxis()->SetTitle( Form(
"#Psi_{2}^{%s}",ref[i].
Data()) );
1434 fHisAngleQ[i]->GetYaxis()->SetTitle(
"Centrality");
1438 Form(
"Eta vs Phi for %s",ref[i].
Data()),
1439 144,0,TMath::TwoPi(),etabin[i],-1.0*etamax[i],+1.0*etamax[i],12,0,60);
1442 fHisPhiEta[i]->GetZaxis()->SetTitle(
"Centrality");
1446 fHisTPCVZE_AngleQ =
new TH3F(
"hTPCVZE_AngleQ",
"#Psi_{2}^{VZERO} vs #Psi_{2}^{TPC}", 72,0,TMath::Pi(),72,0,TMath::Pi(),12,0,60);
1452 fHisCentVsMultRPS =
new TH2F(
"hCentVsMultRPS",
" Centrality Vs. Multiplicity RPs",5000, 0, 5000.,12,0,60 );
1494 if (matchingAODdeltaAODlevel==-1)
fHisNentries->Fill(2);
1495 if (matchingAODdeltaAODlevel==0)
fHisNentries->Fill(3);
1496 if (matchingAODdeltaAODlevel<0 || (matchingAODdeltaAODlevel==0 &&
fAODProtection==1)) {
1506 TClonesArray *arrayProng =0;
1509 TClonesArray *arrayProngD0toKpi =0;
1510 TClonesArray *arrayProng3Prong =0;
1511 TClonesArray *arrayProng4Prong =0;
1512 TClonesArray *arrayProngDstar =0;
1513 TClonesArray *arrayProngCascades =0;
1516 Int_t *pdgdaughters=0x0;
1519 if(!aod && AODEvent() && IsStandardAOD()) {
1525 AliAODHandler* aodHandler = (AliAODHandler*)
1526 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
1527 if(aodHandler->GetExtensions()) {
1529 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
1532 arrayProng3Prong =(TClonesArray*)aodFromExt->GetList()->FindObject(
"Charm3Prong");
1533 arrayProng4Prong =(TClonesArray*)aodFromExt->GetList()->FindObject(
"Charm4Prong");
1534 arrayProngD0toKpi =(TClonesArray*)aodFromExt->GetList()->FindObject(
"D0toKpi");
1535 arrayProngDstar =(TClonesArray*)aodFromExt->GetList()->FindObject(
"Dstar");
1536 arrayProngCascades=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
1541 arrayProng=arrayProng3Prong;
1544 pdgdaughters =
new Int_t[3];
1545 pdgdaughters[0]=211;
1546 pdgdaughters[1]=321;
1547 pdgdaughters[2]=211;
1551 arrayProng=arrayProngD0toKpi;
1554 pdgdaughters =
new Int_t[2];
1555 pdgdaughters[0]=211;
1556 pdgdaughters[1]=321;
1560 arrayProng=arrayProngDstar;
1563 pdgdaughters =
new Int_t[3];
1564 pdgdaughters[1]=211;
1565 pdgdaughters[0]=321;
1566 pdgdaughters[2]=211;
1570 arrayProng=arrayProng3Prong;
1573 pdgdaughters =
new Int_t[3];
1574 pdgdaughters[0]=321;
1575 pdgdaughters[1]=321;
1576 pdgdaughters[2]=211;
1580 arrayProng=arrayProng4Prong;
1583 pdgdaughters =
new Int_t[4];
1584 pdgdaughters[0]=321;
1585 pdgdaughters[1]=211;
1586 pdgdaughters[2]=211;
1587 pdgdaughters[3]=211;
1591 arrayProng=arrayProng3Prong;
1594 pdgdaughters =
new Int_t[3];
1595 pdgdaughters[0]=2212;
1596 pdgdaughters[1]=321;
1597 pdgdaughters[2]=211;
1601 arrayProng=arrayProngCascades;
1604 pdgdaughters =
new Int_t[3];
1605 pdgdaughters[0]=2212;
1606 pdgdaughters[1]=211;
1607 pdgdaughters[2]=211;
1614 arrayProng3Prong =(TClonesArray*)aod->GetList()->FindObject(
"Charm3Prong");
1615 arrayProng4Prong =(TClonesArray*)aod->GetList()->FindObject(
"Charm4Prong");
1616 arrayProngD0toKpi =(TClonesArray*)aod->GetList()->FindObject(
"D0toKpi");
1617 arrayProngDstar =(TClonesArray*)aod->GetList()->FindObject(
"Dstar");
1618 arrayProngCascades=(TClonesArray*)aod->GetList()->FindObject(
"CascadesHF");
1623 arrayProng=arrayProng3Prong;
1626 pdgdaughters =
new Int_t[3];
1627 pdgdaughters[0]=211;
1628 pdgdaughters[1]=321;
1629 pdgdaughters[2]=211;
1633 arrayProng=arrayProngD0toKpi;
1636 pdgdaughters =
new Int_t[2];
1637 pdgdaughters[0]=211;
1638 pdgdaughters[1]=321;
1642 arrayProng=arrayProngDstar;
1645 pdgdaughters =
new Int_t[3];
1646 pdgdaughters[1]=211;
1647 pdgdaughters[0]=321;
1648 pdgdaughters[2]=211;
1652 arrayProng=arrayProng3Prong;
1655 pdgdaughters =
new Int_t[3];
1656 pdgdaughters[0]=321;
1657 pdgdaughters[1]=321;
1658 pdgdaughters[2]=211;
1662 arrayProng=arrayProng4Prong;
1665 pdgdaughters =
new Int_t[4];
1666 pdgdaughters[0]=321;
1667 pdgdaughters[1]=211;
1668 pdgdaughters[2]=211;
1669 pdgdaughters[3]=211;
1673 arrayProng=arrayProng3Prong;
1676 pdgdaughters =
new Int_t[3];
1677 pdgdaughters[0]=2212;
1678 pdgdaughters[1]=321;
1679 pdgdaughters[2]=211;
1683 arrayProng=arrayProngCascades;
1686 pdgdaughters =
new Int_t[3];
1687 pdgdaughters[0]=2212;
1688 pdgdaughters[1]=211;
1689 pdgdaughters[2]=211;
1696 AliInfo(
"Branch not found! The output will contain only track related histograms\n");
1701 TClonesArray *mcArray = 0;
1702 AliAODMCHeader *mcHeader = 0;
1705 delete [] pdgdaughters;
1712 mcArray = (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
1714 printf(
"AliAnalysisTaskSEHFQA::UserExec: MC particles branch not found!\n");
1715 delete [] pdgdaughters;
1720 mcHeader = (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
1722 printf(
"AliAnalysisTaskSEHFQA::UserExec: MC header branch not found!\n");
1723 delete [] pdgdaughters;
1729 UInt_t evSelMask=((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1731 AliAODHeader * header =
dynamic_cast<AliAODHeader*
>(aod->GetHeader());
1732 if(!header) AliFatal(
"Not a standard AOD");
1734 Double_t multiplicity=header->GetRefMultiplicity();
1735 Int_t runNumber = aod->GetRunNumber();
1736 TString trigClass=aod->GetFiredTriggerClasses();
1737 Int_t nAODtracks=aod->GetNumberOfTracks();
1738 Int_t nSelTracksTPCOnly=0;
1739 Int_t nSelTracksTPCITS=0;
1740 Int_t nSelTracksTPCITS1SPD=0;
1741 Int_t ntracksFBit4=0;
1743 AliTRDTriggerAnalysis trdSelection;
1744 trdSelection.CalcTriggers(aod);
1747 if(aod->GetTriggerMask()==0 &&
1748 (runNumber>=195344 && runNumber<=195677)){
1749 AliDebug(3,
"Event rejected because of null trigger mask");
1750 delete [] pdgdaughters;
1755 for (
Int_t k=0;k<nAODtracks;k++){
1756 AliAODTrack* track=
dynamic_cast<AliAODTrack*
>(aod->GetTrack(k));
1757 if(!track) AliFatal(
"Not a standard AOD");
1758 if(track->GetID()<0)
continue;
1759 Int_t nclsTot=0,nclsSPD=0;
1760 for(
Int_t l=0;l<6;l++) {
1761 if(TESTBIT(track->GetITSClusterMap(),l)) {
1762 nclsTot++;
if(l<2) nclsSPD++;
1765 UShort_t nTPCClus=track->GetTPCClusterMap().CountBits();
1766 if(TMath::Abs(track->Eta())<0.8 && nTPCClus>=70 && track->GetStatus()&AliESDtrack::kTPCrefit){
1767 if(track->TestFilterBit(1)) nSelTracksTPCOnly++;
1768 if(track->GetStatus()&AliESDtrack::kITSrefit){
1770 if(nclsSPD>0) nSelTracksTPCITS1SPD++;
1773 if(track->TestFilterMask(AliAODTrack::kTrkGlobalNoDCA)){
1783 AliCounterCollection* trigCount=(AliCounterCollection*)
fOutputEvSelection->FindObject(
"trigCounter");
1784 AliCounterCollection* trigCount2=(AliCounterCollection*)
fOutputEvSelection->FindObject(
"trigCounter2");
1788 trigCount->Count(Form(
"triggerType:All/Run:%d",runNumber));
1789 trigCount2->Count(Form(
"triggerType:All/Run:%d",runNumber));
1791 if(aod->GetEventType()!=7 || trigClass.Contains(
"BEAMB")){
1792 trigCount->Count(Form(
"triggerType:NoPhysSelEvNot7/Run:%d",runNumber));
1793 trigCount2->Count(Form(
"triggerType:NoPhysSelEvNot7/Run:%d",runNumber));
1794 }
else if(trigClass.Contains(
"CMUP1")){
1795 trigCount->Count(Form(
"triggerType:NoPhysSelCMUP1/Run:%d",runNumber));
1796 }
else if(trigClass.Contains(
"MUON")){
1797 trigCount->Count(Form(
"triggerType:NoPhysSelMUON/Run:%d",runNumber));
1798 }
else if(trigClass.Contains(
"CPBI2_B1-B") || trigClass.Contains(
" CPBI2WU_B1-B")){
1799 trigCount->Count(Form(
"triggerType:NoPhysSelMB/Run:%d",runNumber));
1800 trigCount2->Count(Form(
"triggerType:NoPhysSelMB/Run:%d",runNumber));
1801 }
else if(trigClass.Contains(
"CCENT") || trigClass.Contains(
"CVHN")){
1802 trigCount->Count(Form(
"triggerType:NoPhysSelCent/Run:%d",runNumber));
1803 }
else if(trigClass.Contains(
"CSEMI") || trigClass.Contains(
"CVLN")){
1804 trigCount->Count(Form(
"triggerType:NoPhysSelSemiCent/Run:%d",runNumber));
1807 if(evSelMask & AliVEvent::kAny){
1810 trigCount->Count(Form(
"triggerType:Any/Run:%d",runNumber));
1811 trigCount2->Count(Form(
"triggerType:Any/Run:%d",runNumber));
1813 if(evSelMask & AliVEvent::kMB){
1816 trigCount->Count(Form(
"triggerType:MB/Run:%d",runNumber));
1817 trigCount2->Count(Form(
"triggerType:MB/Run:%d",runNumber));
1819 if(evSelMask & AliVEvent::kINT7){
1822 trigCount->Count(Form(
"triggerType:CINT7/Run:%d",runNumber));
1823 trigCount2->Count(Form(
"triggerType:CINT7/Run:%d",runNumber));
1825 if(evSelMask & AliVEvent::kINT8){
1828 trigCount->Count(Form(
"triggerType:INT8/Run:%d",runNumber));
1829 trigCount2->Count(Form(
"triggerType:INT8/Run:%d",runNumber));
1831 if(evSelMask & AliVEvent::kCINT5){
1835 if(evSelMask & AliVEvent::kCentral){
1838 trigCount->Count(Form(
"triggerType:Cent/Run:%d",runNumber));
1840 if(evSelMask & AliVEvent::kSemiCentral){
1843 trigCount->Count(Form(
"triggerType:SemiCent/Run:%d",runNumber));
1846 if(evSelMask & AliVEvent::kEMC1){
1849 trigCount->Count(Form(
"triggerType:EMCAL/Run:%d",runNumber));
1850 trigCount2->Count(Form(
"triggerType:EMC1/Run:%d",runNumber));
1852 if((evSelMask & AliVEvent::kEMC7) && trigClass.Contains(
"CEMC7")){
1855 trigCount->Count(Form(
"triggerType:EMCAL/Run:%d",runNumber));
1856 trigCount2->Count(Form(
"triggerType:EMC7/Run:%d",runNumber));
1858 if((evSelMask & AliVEvent::kEMC8) && trigClass.Contains(
"CEMC8")){
1861 trigCount->Count(Form(
"triggerType:EMCAL/Run:%d",runNumber));
1862 trigCount2->Count(Form(
"triggerType:EMC8/Run:%d",runNumber));
1864 if(evSelMask & AliVEvent::kEMCEJE){
1865 trigCount->Count(Form(
"triggerType:EMCAL/Run:%d",runNumber));
1866 if(trigClass.Contains(
"CEMC7EJE")) {
1867 trigCount2->Count(Form(
"triggerType:EMCJET7/Run:%d",runNumber));
1872 else if(trigClass.Contains(
"CEMC8EJE")) {
1873 trigCount2->Count(Form(
"triggerType:EMCJET8/Run:%d",runNumber));
1878 if(evSelMask & AliVEvent::kEMCEGA){
1879 if(trigClass.Contains(
"CEMC7EGA")) {
1882 }
else if (trigClass.Contains(
"CEMC8EGA")){
1887 trigCount->Count(Form(
"triggerType:EMCAL/Run:%d",runNumber));
1888 trigCount2->Count(Form(
"triggerType:EMCGAMMA/Run:%d",runNumber));
1890 if(evSelMask & (((AliVEvent::kCMUS5 | AliVEvent::kMUSH7) | (AliVEvent::kMUL7 | AliVEvent::kMUU7)) | (AliVEvent::kMUS7 | AliVEvent::kMUON))){
1893 trigCount->Count(Form(
"triggerType:MUON/Run:%d",runNumber));
1895 if(evSelMask & (AliVEvent::kPHI1 | AliVEvent::kPHI7)){
1899 if(evSelMask & (AliVEvent::kTRD)){
1902 trigCount2->Count(Form(
"triggerType:TRD/Run:%d",runNumber));
1904 if((evSelMask & AliVEvent::kTRD) && trdSelection.IsFired(AliTRDTriggerAnalysis::kHJT)){
1907 trigCount2->Count(Form(
"triggerType:TRDHJT/Run:%d",runNumber));
1909 if((evSelMask & AliVEvent::kTRD) && trdSelection.IsFired(AliTRDTriggerAnalysis::kHSE)){
1912 trigCount2->Count(Form(
"triggerType:TRDHSE/Run:%d",runNumber));
1914 if(evSelMask & (AliVEvent::kHighMult)){
1917 trigCount2->Count(Form(
"triggerType:HighMult/Run:%d",runNumber));
1919 if(evSelMask & AliVEvent::kSPI7){
1920 if(trigClass.Contains(
"CSPI7")) {
1923 trigCount2->Count(Form(
"triggerType:SPI7/Run:%d",runNumber));
1926 if(evSelMask & AliVEvent::kSPI){
1927 if(trigClass.Contains(
"CSPI8")) {
1930 trigCount2->Count(Form(
"triggerType:SPI8/Run:%d",runNumber));
1933 if(evSelMask & (AliVEvent::kDG5 | AliVEvent::kZED)){
1942 Double_t magField = aod->GetMagneticField();
1943 if(!aod->GetPrimaryVertex() || TMath::Abs(magField)<0.001) {
1944 delete [] pdgdaughters;
1952 AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
1955 vtx1->GetCovarianceMatrix(cov);
1956 const AliESDVertex vESD(pos,cov,100.,100);
1958 TString primTitle = vtx1->GetTitle();
1959 if(primTitle.Contains(
"VertexerTracks") && vtx1->GetNContributors()>0)
fHisNentries->Fill(9);
1968 Bool_t evSelbyCentrality=kTRUE,evSelected=kTRUE,evSelByVertex=kTRUE,evselByPileup=kTRUE,evSelByPS=kTRUE;
1979 evselByPileup=kFALSE;
1983 evSelbyCentrality=kFALSE;
1987 evSelByVertex=kFALSE;
1994 evSelByVertex=kFALSE;
1995 if(
fOnOff[3]) ((AliCounterCollection*)
fOutputEvSelection->FindObject(
"evselection"))->Count(Form(
"evnonsel:zvtx/Run:%d",runNumber));
2003 if(evSelected &&
fOnOff[3]){
2006 if(evSelMask & AliVEvent::kAny) {
2009 if(evSelMask & AliVEvent::kMB) {
2012 if(evSelMask & AliVEvent::kINT7){
2015 if(evSelMask & AliVEvent::kINT8){
2018 if(evSelMask & AliVEvent::kCINT5){
2021 if(evSelMask & AliVEvent::kCentral){
2024 if(evSelMask & AliVEvent::kSemiCentral){
2027 if(evSelMask & AliVEvent::kEMC1){
2031 if((evSelMask & AliVEvent::kEMC7) && trigClass.Contains(
"CEMC7")){
2035 if((evSelMask & AliVEvent::kEMC8) && trigClass.Contains(
"CEMC8")){
2039 if((evSelMask & AliVEvent::kEMCEJE) && trigClass.Contains(
"CEMC7EJE")){
2043 if((evSelMask & AliVEvent::kEMCEGA) && trigClass.Contains(
"CEMC7EGA")){
2047 if((evSelMask & AliVEvent::kEMCEJE) && trigClass.Contains(
"CEMC8EJE")){
2051 if((evSelMask & AliVEvent::kEMCEGA) && trigClass.Contains(
"CEMC8EGA")){
2055 if(evSelMask & (((AliVEvent::kCMUS5 | AliVEvent::kMUSH7) | (AliVEvent::kMUL7 | AliVEvent::kMUU7)) | (AliVEvent::kMUS7 | AliVEvent::kMUON))){
2058 if(evSelMask & (AliVEvent::kPHI1 | AliVEvent::kPHI7)){
2061 if(evSelMask & (AliVEvent::kTRD)){
2065 if((evSelMask & AliVEvent::kTRD) && trdSelection.IsFired(AliTRDTriggerAnalysis::kHJT)){
2069 if((evSelMask & AliVEvent::kTRD) && trdSelection.IsFired(AliTRDTriggerAnalysis::kHSE)){
2073 if(evSelMask & (AliVEvent::kHighMult)){
2076 if(evSelMask & AliVEvent::kSPI7){
2077 if(trigClass.Contains(
"CSPI7")) {
2082 if(evSelMask & AliVEvent::kSPI){
2083 if(trigClass.Contains(
"CSPI8")) {
2088 if(evSelMask & (AliVEvent::kDG5 | AliVEvent::kZED)){
2093 if(evSelected || (!evSelbyCentrality && evSelByVertex && evselByPileup && evSelByPS)){
2100 Int_t mincent=stdCent-stdCent%10;
2103 AliAODVZERO *vzeroAOD = (AliAODVZERO*)aod->GetVZEROData();
2104 AliAODZDC *zdcAOD = (AliAODZDC*)aod->GetZDCData();
2105 const Double_t *towerZNASignal = zdcAOD->GetZNATowerEnergy();
2109 stdSignal = vzeroAOD->GetMTotV0A() + vzeroAOD->GetMTotV0C();
2112 stdSignal = vzeroAOD->GetMTotV0A();
2115 stdSignal = towerZNASignal[0];
2124 secondSignal = vzeroAOD->GetMTotV0A() + vzeroAOD->GetMTotV0C();
2127 secondSignal = vzeroAOD->GetMTotV0A();
2130 secondSignal = towerZNASignal[0];
2142 if(mincent==100)mincent--;
2143 ((AliCounterCollection*)
fOutputCounters->FindObject(
"stdEstimator"))->Count(Form(
"centralityclass:%d_%d/Run:%d",mincent,mincent+10,runNumber));
2145 mincent=secondCent-secondCent%10;
2146 if(secondCentf==-1) {
2150 if(mincent==100)mincent--;
2151 ((AliCounterCollection*)
fOutputCounters->FindObject(
"secondEstimator"))->Count(Form(
"centralityclass:%d_%d/Run:%d",mincent,mincent+10,runNumber));
2158 fHisMultIn->Fill(header->GetRefMultiplicity());
2173 AliMultSelection *multSelectionOld = (AliMultSelection*) aod -> FindListObject(
"MultSelection");
2174 Float_t oldFrmwCent = multSelectionOld ? multSelectionOld->GetMultiplicityPercentile(
"V0M") : -1;
2178 Double_t differenceCent = TMath::Abs( stdCentf - oldFrmwCent );
2190 fHisNtracklets->Fill(aod->GetTracklets()->GetNumberOfTracklets());
2192 fHisMult->Fill(header->GetRefMultiplicity());
2200 if(evSelected || (!evSelbyCentrality && evSelByVertex && evselByPileup && evSelByPS) || (!evSelByVertex && evselByPileup && evSelByPS)){
2211 const AliVVertex *vertex = aod->GetPrimaryVertex();
2216 if(vertex->GetNContributors()<=0) vtxTyp=-1;
2218 if(title.Contains(
"Z")) vtxTyp=2;
2219 if(title.Contains(
"3D")) vtxTyp=1;
2233 delete [] pdgdaughters;
2240 delete [] pdgdaughters;
2245 Int_t nCand3Prong = arrayProng3Prong->GetEntriesFast();
2246 Int_t nCandD0toKpi = arrayProngD0toKpi->GetEntriesFast();
2247 Int_t nCandDstar = arrayProngDstar->GetEntriesFast();
2250 if(arrayProngCascades)nCandCasc = arrayProngCascades->GetEntriesFast();
2251 if(arrayProng4Prong)n4Prong = arrayProng4Prong->GetEntriesFast();
2254 for (
Int_t iCand = 0; iCand < nCand3Prong; iCand++) {
2268 for (
Int_t iCand = 0; iCand < nCandD0toKpi; iCand++) {
2279 for (
Int_t iCand = 0; iCand < nCandDstar; iCand++) {
2290 if(arrayProngCascades){
2291 for (
Int_t iCand = 0; iCand < nCandCasc; iCand++) {
2299 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
2300 AliPIDResponse *pidResp=inputHandler->GetPIDResponse();
2303 AliTPCPIDResponse* tpcres=
new AliTPCPIDResponse();
2308 tpcres->SetBetheBlochParameters(alephParameters[0],alephParameters[1],alephParameters[2],alephParameters[3],alephParameters[4]);
2313 Int_t isGoodTrack=0, isFakeTrack=0, isSelTrack=0;
2315 if(aod) ntracks=aod->GetNumberOfTracks();
2319 for (
Int_t k=0;k<ntracks;k++){
2320 AliAODTrack* track=
dynamic_cast<AliAODTrack*
>(aod->GetTrack(k));
2321 if(!track) AliFatal(
"Not a standard AOD");
2323 if(track->GetID()<0)
continue;
2325 if(!track->PropagateToDCA(vtx1,magField,99999.,d0z0,covd0z0))
continue;
2326 if(track->TestFilterMask(AliAODTrack::kTrkGlobalNoDCA)){
2329 ULong_t trStatus=track->GetStatus();
2330 if(trStatus&AliESDtrack::kITSrefit){
2331 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)){
2333 if(track->HasPointOnITSLayer(0)){
2340 if (!((trStatus & AliVTrack::kTPCrefit) == AliVTrack::kTPCrefit) ||
2341 !((trStatus & AliVTrack::kITSrefit) == AliVTrack::kITSrefit)){
2344 if(!track->TestFilterMask(AliAODTrack::kTrkGlobalNoDCA)){
2347 if(TMath::Abs(track->Eta())>0.9){
2350 Float_t nCrossedRowsTPC = track->GetTPCClusterInfo(2,1);
2351 Float_t ratioCrossedRowsOverFindableClustersTPC = 1.0;
2352 if (track->GetTPCNclsF()>0) {
2353 ratioCrossedRowsOverFindableClustersTPC = nCrossedRowsTPC/track->GetTPCNclsF();
2356 Bool_t selTrackNoSPD=selTrack;
2358 if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)){
2363 AliAODPid *pid = track->GetDetPid();
2364 if(!pid && fDebug>1) cout<<
"No AliAODPid found"<<endl;
2368 pid->GetIntegratedTimes(times);
2371 pid->GetTOFpidResolution(tofRes);
2375 if (trStatus&AliESDtrack::kTPCout)
fHisTOFflags->Fill(1.);
2376 if (trStatus&AliESDtrack::kTOFout)
fHisTOFflags->Fill(2.);
2377 if (trStatus&AliESDtrack::kTIME)
fHisTOFflags->Fill(3.);
2378 if (trStatus&AliESDtrack::kTOFpid)
fHisTOFflags->Fill(4.);
2379 if (trStatus&AliESDtrack::kTOFmismatch)
fHisTOFflags->Fill(5.);
2384 if(pidResp->ComputeTOFProbability(track,AliPID::kSPECIES,prob)==AliPIDResponse::kDetPidOk){
2390 if(selTrack && isTOFok){
2391 Double_t tofTime=pid->GetTOFsignal();
2392 AliTOFHeader* tofH=(AliTOFHeader*)aod->GetTOFHeader();
2393 if (tofH && (TMath::Abs(tofRes[0]) <= 1.E-16) ) {
2395 AliTOFPIDResponse tofResp=pidResp->GetTOFResponse();
2396 Double_t startTime = tofResp.GetStartTime(track->P());
2397 Float_t startTimeRes = tofResp.GetStartTimeRes(track->P());
2398 Int_t startTimeMask = tofResp.GetStartTimeMask(track->P());
2403 for (
Int_t type=0;type<AliPID::kSPECIES;type++) tofRes[type]=tofResp.GetExpectedSigma(track->P(),times[type],AliPID::ParticleMassZ(type));
2408 if (pid->GetTOFsignal()< 0)
fHisTOFsig->Fill(-1);
2411 nsigma[0]=pidResp->NumberOfSigmasTOF(track,AliPID::kPion);
2412 nsigma[1]=pidResp->NumberOfSigmasTOF(track,AliPID::kKaon);
2413 nsigma[2]=pidResp->NumberOfSigmasTOF(track,AliPID::kProton);
2419 Int_t label=track->GetLabel();
2420 if(label<=0)
continue;
2421 AliMCParticle* mcpart=(AliMCParticle*)mcArray->At(label);
2423 Int_t abspdgcode=TMath::Abs(mcpart->PdgCode());
2431 for (
Int_t iS=2; iS<5; iS++){
2432 if ( TMath::Abs(nsigma[iS-2])<3.){
2440 case AliPID::kProton:
2451 if(pidHF && pidHF->
CheckStatus(track,
"TPC") && selTrack){
2453 Double_t TPCp=pid->GetTPCmomentum();
2454 Double_t TPCsignal=pid->GetTPCsignal();
2455 UShort_t TPCsignalN=pid->GetTPCsignalN();
2470 Int_t label=track->GetLabel();
2471 if(label<=0)
continue;
2472 AliMCParticle* mcpart=(AliMCParticle*)mcArray->At(label);
2474 Int_t abspdgcode=TMath::Abs(mcpart->PdgCode());
2482 if(
fFillDistrTrackEffChecks && track->GetStatus()&AliESDtrack::kITSrefit && track->GetStatus()&AliESDtrack::kTPCrefit){
2491 Int_t nclsTot=0,nclsSPD=0;
2498 for(
Int_t l=0;l<6;l++) {
2499 if(TESTBIT(track->GetITSClusterMap(),l)) {
2502 nclsTot++;
if(l<2) nclsSPD++;
2508 if(
fFillDistrTrackEffChecks && track->GetStatus()&AliESDtrack::kITSrefit && track->GetStatus()&AliESDtrack::kTPCrefit){
2526 if(!(track->HasPointOnITSLayer(0)) && !(track->HasPointOnITSLayer(1))){
2529 if(track->HasPointOnITSLayer(0) && !(track->HasPointOnITSLayer(1))){
2532 if(!(track->HasPointOnITSLayer(0)) && track->HasPointOnITSLayer(1)){
2535 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)){
2544 if(track->Pt()>0.3 &&
2545 TMath::Abs(track->Eta())<0.8 &&
2546 track->GetStatus()&AliESDtrack::kITSrefit &&
2547 track->GetStatus()&AliESDtrack::kTPCrefit &&
2551 if(!(track->GetStatus()&AliESDtrack::kTPCin) && track->GetStatus()&AliESDtrack::kITSrefit && !(track->GetStatus()&AliESDtrack::kITSpureSA)){
2554 for(
Int_t l=0;l<6;l++) {
2555 if(TESTBIT(track->GetITSClusterMap(),l)) {
2562 label=track->GetLabel();
2568 if (track->Pt()>0.3 &&
2569 track->GetStatus()&AliESDtrack::kTPCrefit &&
2570 track->GetStatus()&AliESDtrack::kITSrefit &&
2600 Int_t nCand = arrayProng->GetEntriesFast();
2605 for (
Int_t iCand = 0; iCand < nCand; iCand++) {
2619 Int_t pdgDgLctoV0bachelor[2]={2212,310};
2620 Int_t pdgDgV0toDaughters[2]={211,211};
2621 Int_t mcLabelK0S = (
dynamic_cast<AliAODRecoCascadeHF*
>(d))->MatchToMC(pdg,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
2622 pdgDgLctoV0bachelor[1]=3122, pdgDgLctoV0bachelor[0]=211;
2623 pdgDgV0toDaughters[0]=2212, pdgDgV0toDaughters[1]=211;
2624 Int_t mcLabelLambda = (
dynamic_cast<AliAODRecoCascadeHF*
>(d))->MatchToMC(pdg,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
2625 if (mcLabelK0S!=-1 || mcLabelLambda!=-1) AliInfo(Form(
"mcLabelK0S=%d - mcLabelLambda=%d",mcLabelK0S,mcLabelLambda));
2627 if (mcLabelK0S!=-1 && mcLabelLambda!=-1)
2628 AliInfo(
"Strange: current Lc->V0+bachelor candidate has two MC different labels!");
2629 else if (mcLabelK0S>-1 && mcLabelLambda==-1)
2631 else if (mcLabelLambda>-1 && mcLabelK0S==-1)
2632 labD = mcLabelLambda;
2635 labD = d->MatchToMC(pdg,mcArray,ndaugh,pdgdaughters);
2638 AliAODMCParticle *partD = (AliAODMCParticle*)mcArray->At(labD);
2639 Int_t label=partD->GetMother();
2640 AliAODMCParticle *mot = (AliAODMCParticle*)mcArray->At(label);
2642 mot = (AliAODMCParticle*)mcArray->At(label);
2643 label=mot->GetMother();
2646 Int_t pdgMotCode = mot->GetPdgCode();
2655 for(
Int_t id=0;
id<ndaugh;
id++){
2657 AliAODTrack* track=0;
2661 track=(AliAODTrack*)(dynamic_cast<AliAODRecoCascadeHF*>(d))->GetBachelor();
2663 track=(AliAODTrack*)(dynamic_cast<AliAODRecoCascadeHF*>(d))->Getv0PositiveTrack();
2665 track=(AliAODTrack*)(dynamic_cast<AliAODRecoCascadeHF*>(d))->Getv0NegativeTrack();
2668 track=(AliAODTrack*)d->GetDaughter(
id);
2676 if(
fReadMC)label=track->GetLabel();
2687 Double_t phidaughter = d->PhiProng(
id);
2688 if(phidaughter<0) phidaughter=2.0*TMath::Pi()+phidaughter;
2691 Bool_t isDCA=track->PropagateToDCA(vtx1,magField,9999.,d0rphiz,covd0);
2707 if(
fReadMC)label=track->GetLabel();
2714 fHisd0f->Fill(d->Getd0Prong(
id));
2718 Double_t phidaughter = d->PhiProng(
id);
2719 if(phidaughter<0) phidaughter=2.0*TMath::Pi()+phidaughter;
2722 Bool_t isDCA=track->PropagateToDCA(vtx1,magField,9999.,d0rphiz,covd0);
2733 Double_t nTPCCrossedRows = track->GetTPCClusterInfo(2,1);
2734 Double_t ratioCrossedRowsOverFcls = 1.0;
2735 if(track->GetTPCNclsF()>0){
2736 ratioCrossedRowsOverFcls = (nTPCCrossedRows)/(track->GetTPCNclsF());
2738 for(
Int_t l=0;l<6;l++) {
2739 if(TESTBIT(track->GetITSClusterMap(),l)) {
2764 if(!(track->HasPointOnITSLayer(0)) && !(track->HasPointOnITSLayer(1))){
2767 if(track->HasPointOnITSLayer(0) && !(track->HasPointOnITSLayer(1))){
2770 if(!(track->HasPointOnITSLayer(0)) && track->HasPointOnITSLayer(1)){
2773 if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)){
2779 AliAODPid *pid = track->GetDetPid();
2794 AliAODPid *pid = track->GetDetPid();
2797 pid->GetIntegratedTimes(times);
2799 Double_t tofTime=pid->GetTOFsignal();
2800 AliTOFHeader* tofH=(AliTOFHeader*)aod->GetTOFHeader();
2802 pid->GetTOFpidResolution(tofRes);
2803 if (tofH && (TMath::Abs(tofRes[0]) <= 1.E-16) ) {
2804 AliTOFPIDResponse tofResp=pidHF->
GetPidResponse()->GetTOFResponse();
2805 Double_t startTime=tofResp.GetStartTime(track->P());
2822 delete [] pdgdaughters;
2838 UInt_t mask=((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
2839 UInt_t trigger=AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral;
2840 if(mask & trigger) {
2842 if (mask & AliVEvent::kMB)
fHisFEvents->Fill(2.,cc);
2843 if (mask & AliVEvent::kCentral)
fHisFEvents->Fill(3.,cc);
2844 if (mask & AliVEvent::kSemiCentral)
fHisFEvents->Fill(4.,cc);
2846 if(cc<0 || cc>60) rejected=
true;
2847 const AliVVertex *vertex = aod->GetPrimaryVertex();
2850 if(rejected)
return;
2868 for(
Int_t i=0; i!=3; ++i) {
2887 vQ = vQaQb[0]+vQaQb[1];
2890 if( dMa<2 || dMb<2 ) {
2894 psi[i] = vQ.Phi()/2;
2896 fHisQ[i]->Fill(0,cc,vQaQb[0].X()/dMa,dMa);
2897 fHisQ[i]->Fill(1,cc,vQaQb[0].Y()/dMa,dMa);
2898 fHisQ[i]->Fill(2,cc,vQaQb[1].X()/dMb,dMb);
2899 fHisQ[i]->Fill(3,cc,vQaQb[1].Y()/dMb,dMb);
2904 if(!track)
continue;
2924 printf(
"ERROR: %s not available\n",GetOutputSlot(1)->GetContainer()->GetName());
2930 printf(
"ERROR: %s not available\n",GetOutputSlot(2)->GetContainer()->GetName());
2936 printf(
"ERROR: %s not available\n",GetOutputSlot(3)->GetContainer()->GetName());
Bool_t fOnOff[5]
flag to use or not the selection bit
Float_t GetMaxCentrality() const
TH2F * fHisTPCsigNvsEtaAllTracks
! Histo. of output slot #2 (fOutputPID)
Bool_t IsEventRejectedDueToCentrality() const
TH1F * fHisd0dau_filt
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisd0zdau
! Histo. of output slot #3 (fOutputTrack)
Bool_t IsEventRejectedDueToZVertexOutsideFiducialRegion() const
TH2F * fHisNTPCCrossedRowsvsPhiDaughters
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisRatioCRowsOverFclsvsPtDaughters
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisRatioCRowsOverFclsvsEtaDaughters
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisRatioCRowsOverFclsvsEtaAllTracks
! Histo. of output slot #3 (fOutputTrack)
Bool_t IsEventRejectedDueToNotRecoVertex() const
TH2F * fHisNentriesSelBit
! Histo. of output slot #1 (fOutputEntries)
TH1F * fHisNtracklets
! Histo. of output slot #3 (fOutputTrack)
void SetMaxChi2PerClusterTPC(Float_t a)
TH1F * fHisMultComb08
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisTPCsigmaMCPion
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisd0TracksSPDin
! Histo. of output slot #3 (fOutputTrack)
TList * fOutputCounters
! list sent on output slot 5
TH1F * fHisNtrackletsIn
! Histo. of output slot #6 (fOutputCheckCentrality)
TH2F * fHisRatioCRowsOverFclsvsPtAllTracks
! Histo. of output slot #3 (fOutputTrack)
Bool_t fUseSelectionBit
if true, don't do candidates (much faster in PbPb)
TH1F * fHisTOFstartTimeRes
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisntrklvsPercentile01AllEv
! Histo. of output slot #6 (fOutputCheckCentrality)
TH1F * fHisPhiAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisMultComb05
! Histo. of output slot #3 (fOutputTrack)
virtual void UserCreateOutputObjects()
Implementation of interface methods.
TH2F * fHisnTPCITS1SPDTracksvsPercentile
! Histo. of output slot #6 (fOutputCheckCentrality)
Bool_t HasSelectionBit(Int_t i) const
TH2F * fHisTPCsigmaProton
! Histo. of output slot #2 (fOutputPID)
Int_t GetNumberOfRPs() const
TH2F * fHisNTPCclsvsPtDaughters
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisTPCsigNvsPhiAllTracks
! Histo. of output slot #2 (fOutputPID)
Int_t GetnSigmaTPC(AliAODTrack *track, Int_t species, Double_t &sigma) const
TH2F * fHisStdEstimSignalNtrackletsIn
! Histo. of output slot #6 (fOutputCheckCentrality)
TH1F * fHisPtAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisdistrFakeTr
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisTPCsigNvsPhiDaughters
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisStdSignalSecondSignal
! Histo. of output slot #6 (fOutputCheckCentrality)
TH2F * fHisAngleQ[3]
! Histo. of output slot #8 (fOutputFlowObs)
static Int_t CheckMatchingAODdeltaAODevents()
TH2F * fHisNTPCCrossedRowsvsPhiAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisRatioCRowsOverFclsvsPhiAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisptGoodTr
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisnClsITS
! Histo. of output slot #3 (fOutputTrack)
Bool_t IsEventRejectedDueToVertexContributors() const
TList * fOutputEvSelection
! list sent on output slot 7
TH1F * fHisdistrGoodTr
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisNTPCclsvsEtaDaughters
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisd0TracksSPDany
! Histo. of output slot #3 (fOutputTrack)
AliFlowEvent * fFlowEvent
! to handle the reusage of the flowEvent object
TString GetMultSelectionObjectName() const
void SetPhiMin(Double_t min)
TH1F * fHisEtaAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHiszvtx
! Histo. of output slot #7 (fOutputEvSelection)
Bool_t FillRecoCand(AliVEvent *event, AliAODRecoDecayHF3Prong *rd3)
TH1F * fHisNentries
! Histo. of output slot #1 (fOutputEntries)
TH2F * fHisTPCsigmaK
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisEtavsPhiDaughters
! Histo. of output slot #3 (fOutputTrack)
void SetParamType(trackParameterType paramType)
ULong_t GetSelectionMap() const
TH1F * fHisyvtx
! Histo. of output slot #7 (fOutputEvSelection)
TH2F * fHisntrklvsPercentile01
! Histo. of output slot #6 (fOutputCheckCentrality)
TH2F * fHisnTPCITSTracksvsPercentile
! Histo. of output slot #6 (fOutputCheckCentrality)
Double_t GetMaxVtxZ() const
TH1F * fHisMultFBit4
! Histo. of output slot #3 (fOutputTrack)
void SetAODfilterBit(UInt_t a)
TH2F * fHisCentVsMultRPS
! Histo. of output slot #8 (fOutputFlowObs)
TH1F * fHisEtaDaughters
! Histo. of output slot #3 (fOutputTrack)
Bool_t InRPSelection() const
Bool_t FillRecoCasc(AliVEvent *event, AliAODRecoCascadeHF *rc, Bool_t isDStar, Bool_t recoSecVtx=kFALSE)
TH2F * fHisEtavsPhiAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisd0zdau_filt
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisTPCsigvsp
! Histo. of output slot #2 (fOutputPID)
AliAODPidHF * GetPidHF() const
AliFlowTrack * GetTrack(Int_t i)
TH1F * fHisNtracklets01
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisptFakeTr
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisStdEstimSignalPercentile
! Histo. of output slot #6 (fOutputCheckCentrality)
TH1F * fHisxvtxSelEv
! Histo. of output slot #7 (fOutputEvSelection)
TH2F * fHisNTPCCrossedRowsvsEtaDaughters
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisTOFsigmaMCProtonSigPid
! Histo. of output slot #2 (fOutputPID)
Class for cuts on AOD reconstructed D+->Kpipi.
AliRDHFCuts::ECentrality fEstimator
void SetPtRange(Float_t r1, Float_t r2)
TH2F * fHisTrigCentSel
! Histo. of output slot #7 (fOutputEvSelection)
TH1F * fHisd0f_filt
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisNTPCCrossedRowsvsPtAllTracks
! Histo. of output slot #3 (fOutputTrack)
static Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent *ev, Double_t mineta, Double_t maxeta)
TH2F * fHisd0dauphi_filt
! Histo. of output slot #3 (fOutputTrack)
void Fill(AliFlowTrackCuts *rpCuts, AliFlowTrackCuts *poiCuts)
void SetMinimalTPCdedx(Double_t d=10.)
TH1F * fHisTOFtime
! Histo. of output slot #2 (fOutputPID)
Int_t GetIsFilled() const
TProfile2D * fHisQ[3]
! Histo. of output slot #8 (fOutputFlowObs)
void GetTPCBetheBlochParams(Double_t alephParameters[5]) const
TH2F * fHisNITSclsvsEtaAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisStdPercentileOldFrwPercentileDev
! Histo. of output slot #6 (fOutputCheckCentrality)
TH2F * fHisTOFsigmaPionSigPid
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisptFakeTrFromDaugh
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisStdPercentileOldFrwPercentile
! Histo. of output slot #6 (fOutputCheckCentrality)
TH2F * fHisTrigCent
! Histo. of output slot #7 (fOutputEvSelection)
TH2F * fHisNITSclsvsPtDaughters
! Histo. of output slot #3 (fOutputTrack)
TList * fOutputPID
! list sent on output slot 2
Bool_t CheckStatus(AliAODTrack *track, TString detectors) const
TList * fOutputCheckCentrality
! list sent on output slot 6
TList * fOutputEntries
! list sent on output slot 1
TH2F * fHisNTPCCrossedRowsvsPtDaughters
! Histo. of output slot #3 (fOutputTrack)
virtual void UserExec(Option_t *option)
TH1F * fHisPtDaughters
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisTOFsigPid3sigKaon
! Histo. of output slot #2 (fOutputPID)
AliESDtrackCuts * GetTrackCuts() const
TH1F * fHisxvtx
! Histo. of output slot #7 (fOutputEvSelection)
TH1F * fHisnClsSPD
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisdistrSelTr
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisNITSclsvsPhiDaughters
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisTOFsigPid3sigPion
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisMult
! Histo. of output slot #3 (fOutputTrack)
Float_t GetCentrality(AliAODEvent *aodEvent)
Bool_t IsEventRejectedDueToPileup() const
TH2F * fHisTPCsigmaMCProton
! Histo. of output slot #2 (fOutputPID)
TH1F * fHiszvtxSelEv
! Histo. of output slot #7 (fOutputEvSelection)
TH2F * fHisTOFsigmaMCKSigPid
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisTOFsig
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisTrigMulSel
! Histo. of output slot #7 (fOutputEvSelection)
TH2F * fHisTPCsigmaMCK
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisNTPCclsvsEtaAllTracks
! Histo. of output slot #3 (fOutputTrack)
AliPIDResponse * GetPidResponse() const
TH1F * fHisnLayerITSselTr
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisd0dauphi
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisWhichVert
! Histo. of output slot #7 (fOutputEvSelection)
TH1F * fHisTOFstartTimeMask
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisFEvents
! Histo. of output slot #8 (fOutputFlowObs)
TH1F * fHisnClsITSSA
! Histo. of output slot #3 (fOutputTrack)
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TH2F * fHisd0zdauphi_filt
! Histo. of output slot #3 (fOutputTrack)
Bool_t IsEventRejectedDuePhysicsSelection() const
TH2F * fHisNTPCclsvsPhiDaughters
! Histo. of output slot #3 (fOutputTrack)
TList * fOutputFlowObs
! list sent on output slot 8
TH2F * fHisTrigMul
! Histo. of output slot #7 (fOutputEvSelection)
TH1F * fHisTOFsigPid3sigProton
! Histo. of output slot #2 (fOutputPID)
Bool_t fSimpleMode
flag to read MC
TH2F * fHisNITSclsvsPtAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisnLayerITS
! Histo. of output slot #3 (fOutputTrack)
Bool_t IsEventRejectedDueToMismatchOldNewCentrality() const
TH2F * fHisntrklvsPercentile
! Histo. of output slot #6 (fOutputCheckCentrality)
void SetAcceptKinkDaughters(Bool_t a)
TH1F * fHisTOFstartTimeDistrib
! Histo. of output slot #2 (fOutputPID)
virtual ~AliAnalysisTaskSEHFQA()
AliFlowTrackCuts * fRFPcuts
! reference flow particle cuts
TH2F * fHisStdPercentileSecondPercentile
! Histo. of output slot #6 (fOutputCheckCentrality)
Bool_t IsEventSelected(AliVEvent *event)
void SetEvent(AliVEvent *event, AliMCEvent *mcEvent=NULL)
TH2F * fHisNITSclsvsPhiAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisNTPCclsvsPhiAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisTOFtimeKaonHyptimeAC
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisptGoodTrFromDaugh
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisd0TracksTPCITSSPDany
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisWhyEvRejected
! Histo. of output slot #7 (fOutputEvSelection)
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
TH2F * fHisTOFsigmaKSigPid
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisyvtxSelEv
! Histo. of output slot #7 (fOutputEvSelection)
TH1F * fHisMultIn
! Histo. of output slot #6 (fOutputCheckCentrality)
TH1F * fHisptGoodTrFromDaugh_filt
! Histo. of output slot #3 (fOutputTrack)
void SetMinNClustersTPC(Int_t a)
TList * fOutputTrack
! list sent on output slot 3
TH3F * fHisPhiEta[3]
! Histo. of output slot #8 (fOutputFlowObs)
Bool_t IsSelected(TObject *obj)
TH1F * fHisTOFflags
! Histo. of output slot #2 (fOutputPID)
void TagSubeventsInEta(Double_t etaMinA, Double_t etaMaxA, Double_t etaMinB, Double_t etaMaxB)
void SetPhiMax(Double_t max)
TH1F * fHisnLayerITSsa
! Histo. of output slot #3 (fOutputTrack)
TH3F * fHisTPCVZE_AngleQ
! Histo. of output slot #8 (fOutputFlowObs)
void SetMinChi2PerClusterTPC(Float_t a)
TH2F * fHisTOFsigmaProtonSigPid
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisMultOut
! Histo. of output slot #6 (fOutputCheckCentrality)
TH2F * fHisnTPCTracksvsPercentile
! Histo. of output slot #6 (fOutputCheckCentrality)
TH1F * fHisStdEstimSignal
! Histo. of output slot #6 (fOutputCheckCentrality)
TH2F * fHisRatioCRowsOverFclsvsPhiDaughters
! Histo. of output slot #3 (fOutputTrack)
Bool_t IsEventRejectedDueToTrigger() const
TH2F * fHisNTPCclsvsPtAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisd0zdauphi
! Histo. of output slot #3 (fOutputTrack)
virtual void Get2Qsub(AliFlowVector *Qarray, Int_t n=2, TList *weightsList=0x0, Bool_t usePhiWeights=0x0, Bool_t usePtWeights=0x0, Bool_t useEtaWeights=0x0)
TH2F * fHisMultvsPercentile
! Histo. of output slot #6 (fOutputCheckCentrality)
virtual void Terminate(Option_t *option)
TH1F * fHisTPCsig
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisd0dau
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisSPDclsDaughters
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisTOFtimeKaonHyptime
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisTPCsigmaPion
! Histo. of output slot #2 (fOutputPID)
void FillFlowObs(AliAODEvent *aod)
virtual Bool_t IsInFiducialAcceptance(Double_t, Double_t) const
Int_t GetUseCentrality() const
TH1F * fHisNtrackletsOut
! Histo. of output slot #6 (fOutputCheckCentrality)
TH2F * fHisTPCsigNvsPtDaughters
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisTPCsigvspAC
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisd0TracksFilterBit4
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisWhichVertSelEv
! Histo. of output slot #7 (fOutputEvSelection)
TH1F * fHisPhiDaughters
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisNtracklets01AllEv
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisnClsITSselTr
! Histo. of output slot #3 (fOutputTrack)
TH1F * fHisptFakeTrFromDaughFilt
! Histo. of output slot #3 (fOutputTrack)
Bool_t IsDaughterSelected(AliAODTrack *track, const AliESDVertex *primary, AliESDtrackCuts *cuts, const AliAODEvent *aod=0x0) const
TH2F * fHisNTPCCrossedRowsvsEtaAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisTPCsigNvsPtAllTracks
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisTOFsigmaMCPionSigPid
! Histo. of output slot #2 (fOutputPID)
TH2F * fHisTPCsigNvsEtaDaughters
! Histo. of output slot #2 (fOutputPID)
TH1F * fHisd0f
! Histo. of output slot #3 (fOutputTrack)
Bool_t fFillDistrTrackEffChecks
on-off the QA on tracks (0), PID (1), centrality (2), event selection – default is {kTRUE...
TH1F * fHisSPDclsAllTracks
! Histo. of output slot #3 (fOutputTrack)
TH2F * fHisNITSclsvsEtaDaughters
! Histo. of output slot #3 (fOutputTrack)
void SetEtaRange(Float_t r1, Float_t r2)
Int_t NumberOfTracks() const