24 #include <TClonesArray.h> 28 #include <TDatabasePDG.h> 32 #include <THnSparse.h> 34 #include "AliAnalysisManager.h" 41 #include "AliAODHandler.h" 42 #include "AliAODEvent.h" 43 #include "AliAODVertex.h" 44 #include "AliAODTrack.h" 48 #include "AliAnalysisTaskSE.h" 52 #include "AliAODVZERO.h" 53 #include "AliESDUtils.h" 67 fHistNtrEta16vsNtrEta1EvSel(0),
68 fHistNtrEta05vsNtrEta1EvSel(0),
69 fHistNtrEta03vsNtrEta1EvSel(0),
70 fHistNtrEtaV0AvsNtrEta1EvSel(0),
71 fHistNtrEtaV0MvsNtrEta1EvSel(0),
72 fHistNtrEtaV0AvsV0AEqEvSel(0),
73 fHistNtrEtaV0MvsV0MEqEvSel(0),
74 fHistNtrCorrEta1vsNtrRawEta1EvSel(0),
75 fHistMultCorrvsMultRawEvSel(0),
76 fHistNtrEta16vsNtrEta1EvWithCand(0),
77 fHistNtrEta05vsNtrEta1EvWithCand(0),
78 fHistNtrEta03vsNtrEta1EvWithCand(0),
79 fHistNtrEtaV0AvsNtrEta1EvWithCand(0),
80 fHistNtrEtaV0MvsNtrEta1EvWithCand(0),
81 fHistNtrEtaV0AvsV0AEqEvWithCand(0),
82 fHistNtrEtaV0MvsV0MEqEvWithCand(0),
83 fHistNtrCorrEta1vsNtrRawEta1EvWithCand(0),
84 fHistMultCorrvsMultRawEvWithCand(0),
85 fHistNtrEta16vsNtrEta1EvWithD(0),
86 fHistNtrEta05vsNtrEta1EvWithD(0),
87 fHistNtrEta03vsNtrEta1EvWithD(0),
88 fHistNtrEtaV0AvsNtrEta1EvWithD(0),
89 fHistNtrEtaV0MvsNtrEta1EvWithD(0),
90 fHistNtrEtaV0AvsV0AEqEvWithD(0),
91 fHistNtrEtaV0MvsV0MEqEvWithD(0),
92 fHistNtrCorrEta1vsNtrRawEta1EvWithD(0),
93 fHistMultCorrvsMultRawEvWithD(0),
95 fHistNtrCorrVsZvtx(0),
97 fHistNtrCorrVsNchMC(0),
98 fHistNtrVsNchMCPrimary(0),
99 fHistNtrCorrVsNchMCPrimary(0),
100 fHistNtrVsNchMCPhysicalPrimary(0),
101 fHistNtrCorrVsNchMCPhysicalPrimary(0),
102 fHistGenPrimaryParticlesInelGt0(0),
103 fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary(0),
104 fHistNtrUnCorrPSSel(0),
105 fHistNtrUnCorrPSTrigSel(0),
106 fHistNtrUnCorrPSTrigPileUpSel(0),
107 fHistNtrUnCorrPSTrigPileUpVtxSel(0),
108 fHistNtrUnCorrPSTrigPileUpVtxContSel(0),
109 fHistNtrUnCorrPSTrigPileUpVtxRangeSel(0),
110 fHistNtrUnCorrPSTrigPileUpVtxRangeCentrSel(0),
111 fHistNtrUnCorrEvSel(0),
112 fHistNtrUnCorrEvWithCand(0),
113 fHistNtrUnCorrEvWithD(0),
114 fHistNtrCorrPSSel(0),
115 fHistNtrCorrEvSel(0),
116 fHistNtrCorrEvWithCand(0),
117 fHistNtrCorrEvWithD(0),
119 fPtVsMassVsMultNoPid(0),
120 fPtVsMassVsMultUncorr(0),
121 fPtVsMassVsMultPart(0),
122 fPtVsMassVsMultAntiPart(0),
123 fPtVsMassVsMultMC(0),
125 fLowmasslimit(1.765),
130 fCounterCandidates(0),
133 fLowerImpPar(-2000.),
134 fHigherImpPar(2000.),
139 fSubtractTrackletsFromDau(kFALSE),
140 fKeepCorrPlots(kFALSE),
147 fMultiplicityEstimator(kNtrk10),
148 fMCPrimariesEstimator(kEta10),
149 fDoVZER0ParamVertexCorr(1),
261 Int_t nInvMassBins = (
Int_t)(0.7/MassBinSize+0.5);
262 Double_t massDs = TDatabasePDG::Instance()->GetParticle(431)->Mass();
268 Double_t massLc = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
269 Int_t nInvMassBins = 1000;
281 DefineOutput(1,TList::Class());
283 DefineOutput(2,TList::Class());
285 DefineOutput(3,TList::Class());
287 DefineOutput(4,TList::Class());
303 for(
Int_t i=0; i<4; i++) {
307 for(
Int_t i=0; i<5; i++){
317 if(uplimit>lowlimit){
321 AliError(
"Wrong mass limits: upper value should be larger than lower one");
327 Double_t mass=TDatabasePDG::Instance()->GetParticle(TMath::Abs(pdg))->Mass();
335 printf(
"AnalysisTaskSEDvsMultiplicity_0::Init() \n");
340 if(
fisPPbData){ AliFatal(
"Nch weights can only be used with MC and data histogram in pPb");
return; }
353 copycut->SetName(
"AnalysisCutsDplus");
357 copycut->SetName(
"AnalysisCutsDzero");
361 copycut->SetName(
"AnalysisCutsDStar");
365 copycut->SetName(
"AnalysisCutsDs");
369 copycut->SetName(
"AnalysisCutsLc2pK0S");
387 period[0]=
"LHC16qt_1stBunch";
388 period[1]=
"LHC16qt_2ndBunch";
389 period[2]=
"LHC16qt_3rdBunch";
390 period[3]=
"LHC16qt_4thBunch";
402 for(
Int_t i=0; i<nProfiles; i++){
405 hprof->SetName(Form(
"ProfileTrkVsZvtx%s\n",period[i].
Data()));
420 if(fDebug > 1) printf(
"AnalysisTaskSEDvsMultiplicity::UserCreateOutputObjects() \n");
425 fOutput->SetName(
"OutputHistos");
427 Int_t nMultBins = 200;
430 Int_t nMultBinsNtrk = nMultBins;
431 Float_t lastMultBinNtrk = lastMultBin;
432 Int_t nMultBinsV0 = 400;
434 const char *estimatorName=
"tracklets";
437 lastMultBinNtrk = 374.5;
438 nMultBins = nMultBinsNtrk;
439 lastMultBin = lastMultBinNtrk;
442 nMultBins = nMultBinsV0;
443 lastMultBin = lastMultBinV0;
444 estimatorName =
"vzero";
447 fHistNtrUnCorrPSSel =
new TH1F(
"hNtrUnCorrPSSel",Form(
"Uncorrected %s multiplicity for PS selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
448 fHistNtrUnCorrPSTrigSel =
new TH1F(
"hNtrUnCorrPSTrigSel",Form(
"Uncorrected %s multiplicity for PS + trigger name selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
449 fHistNtrUnCorrPSTrigPileUpSel =
new TH1F(
"hNtrUnCorrPSTrigPileUpSel",Form(
"Uncorrected %s multiplicity for PS + trigger name + pileup selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
450 fHistNtrUnCorrPSTrigPileUpVtxSel =
new TH1F(
"hNtrUnCorrPSTrigPileUpVtxSel",Form(
"Uncorrected %s multiplicity for PS + trigger name + pileup + with-vertex selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
451 fHistNtrUnCorrPSTrigPileUpVtxContSel =
new TH1F(
"hNtrUnCorrPSTrigPileUpVtxContSel",Form(
"Uncorrected %s multiplicity for PS + trigger name + pileup + with-vertex-contrib selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
452 fHistNtrUnCorrPSTrigPileUpVtxRangeSel =
new TH1F(
"hNtrUnCorrPSTrigPileUpVtxRangeSel",Form(
"Uncorrected %s multiplicity for PS + trigger name + pileup + with-vertex-contrib-range selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
453 fHistNtrUnCorrPSTrigPileUpVtxRangeCentrSel =
new TH1F(
"hNtrUnCorrPSTrigPileUpVtxRangeCentrSel",Form(
"Uncorrected %s multiplicity for PS + trigger name + pileup + with-vertex-contrib-range + centrality selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
454 fHistNtrUnCorrEvSel =
new TH1F(
"hNtrUnCorrEvSel",Form(
"Uncorrected %s multiplicity for selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
455 fHistNtrUnCorrEvWithCand =
new TH1F(
"hNtrUnCorrEvWithCand",Form(
"Uncorrected %s multiplicity for events with D candidates; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
456 fHistNtrUnCorrEvWithD =
new TH1F(
"hNtrUnCorrEvWithD",Form(
"Uncorrected %s multiplicity for events with D in mass region ; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
457 fHistNtrCorrPSSel =
new TH1F(
"hNtrCorrPSSel",Form(
"Corrected %s multiplicity for PS selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
458 fHistNtrCorrEvSel =
new TH1F(
"hNtrCorrEvSel",Form(
"Corrected %s multiplicity for selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
459 fHistNtrCorrEvWithCand =
new TH1F(
"hNtrCorrEvWithCand", Form(
"%s multiplicity for events with D candidates; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
460 fHistNtrCorrEvWithD =
new TH1F(
"hNtrCorrEvWithD", Form(
"%s multiplicity for events with D in mass region ; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
463 fHistNtrEta16vsNtrEta1EvSel =
new TH2F(
"hNtrEta16vsNtrEta1EvSel",
"Uncorrected Eta1.6 vs Eta1.0 (events selected); Ntracklets #eta<1.0; Ntracklets #eta<1.6",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
464 fHistNtrEta05vsNtrEta1EvSel =
new TH2F(
"hNtrEta05vsNtrEta1EvSel",
"Uncorrected Eta0.5 vs Eta1.0 (events selected); Ntracklets #eta<1.0; Ntracklets #eta<0.5",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
465 fHistNtrEta03vsNtrEta1EvSel =
new TH2F(
"hNtrEta03vsNtrEta1EvSel",
"Uncorrected Eta0.3 vs Eta1.0 (events selected); Ntracklets #eta<1.0; Ntracklets #eta<0.3",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
466 fHistNtrEtaV0AvsNtrEta1EvSel =
new TH2F(
"hNtrEtaV0AvsNtrEta1EvSel",
"Uncorrected Eta-V0A vs Eta1.0 (events selected); Ntracklets #eta<1.0; Multiplicity V0A",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsV0,firstMultBin,lastMultBinV0);
467 fHistNtrEtaV0MvsNtrEta1EvSel =
new TH2F(
"hNtrEtaV0MvsNtrEta1EvSel",
"Uncorrected Eta-V0M vs Eta1.0 (events selected); Ntracklets #eta<1.0; Multiplicity V0A+V0C",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsV0,firstMultBin,lastMultBinV0);
468 fHistNtrEtaV0AvsV0AEqEvSel =
new TH2F(
"hNtrEtaV0AvsV0AEqEvSel",
"Corrected V0A vs corrected V0A-Equalized (events selected); Vzero-A; Vzero-A Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0);
469 fHistNtrEtaV0MvsV0MEqEvSel =
new TH2F(
"hNtrEtaV0MvsV0MEqEvSel",
"Corrected V0M vs corrected V0M-Equalized (events selected); Vzero-M; Vzero-M Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0);
470 fHistNtrCorrEta1vsNtrRawEta1EvSel =
new TH2F(
"hNtrCorrEta1vsNtrRawEta1EvSel",
"Corrected Eta1 vs Eta1.0 (events selected); Ntracklets #eta<1.0 corrected; Ntracklets #eta<1",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
471 fHistMultCorrvsMultRawEvSel =
new TH2F(
"hMultCorrvsMultRawEvSel",Form(
"Corrected multiplicity vs uncorrected multiplicity (events selected); %s corrected; %s",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
473 fHistNtrEta16vsNtrEta1EvWithCand =
new TH2F(
"hNtrEta16vsNtrEta1EvWithCand",
"Uncorrected Eta1.6 vs Eta1.0 (events selected with a D candidate); Ntracklets #eta<1.0; Ntracklets #eta<1.6",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
474 fHistNtrEta05vsNtrEta1EvWithCand =
new TH2F(
"hNtrEta05vsNtrEta1EvWithCand",
"Uncorrected Eta0.5 vs Eta1.0 (events selected with a D candidate); Ntracklets #eta<1.0; Ntracklets #eta<0.5",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
475 fHistNtrEta03vsNtrEta1EvWithCand =
new TH2F(
"hNtrEta03vsNtrEta1EvWithCand",
"Uncorrected Eta0.3 vs Eta1.0 (events selected with a D candidate); Ntracklets #eta<1.0; Ntracklets #eta<0.3",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
476 fHistNtrEtaV0AvsNtrEta1EvWithCand =
new TH2F(
"hNtrEtaV0AvsNtrEta1EvWithCand",
"Uncorrected Eta-V0A vs Eta1.0 (events selected with a D candidate); Ntracklets #eta<1.0; Multiplicity V0A",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsV0,firstMultBin,lastMultBinV0);
477 fHistNtrEtaV0MvsNtrEta1EvWithCand =
new TH2F(
"hNtrEtaV0MvsNtrEta1EvWithCand",
"Uncorrected Eta-V0M vs Eta1.0 (events selected with a D candidate); Ntracklets #eta<1.0; Multiplicity V0A+V0C",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsV0,firstMultBin,lastMultBinV0);
478 fHistNtrEtaV0AvsV0AEqEvWithCand =
new TH2F(
"hNtrEtaV0AvsV0AEqEvWithCand",
"Corrected V0A vs corrected V0A-Equalized (events selected with a D candidate); Vzero-A; Vzero-A Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0);
479 fHistNtrEtaV0MvsV0MEqEvWithCand =
new TH2F(
"hNtrEtaV0MvsV0MEqEvWithCand",
"Corrected V0M vs corrected V0M-Equalized (events selected with a D candidate); Vzero-M; Vzero-M Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0);
480 fHistNtrCorrEta1vsNtrRawEta1EvWithCand =
new TH2F(
"hNtrCorrEta1vsNtrRawEta1EvWithCand",
"Corrected Eta1 vs Eta1.0 (events selected with a D candidate); Ntracklets #eta<1.0 corrected; Ntracklets #eta<1",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
481 fHistMultCorrvsMultRawEvWithCand =
new TH2F(
"hMultCorrvsMultRawEvWithCand",Form(
"Corrected multiplicity vs uncorrected multiplicity (events selected) with a D candidate; %s corrected; %s",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
484 fHistNtrEta16vsNtrEta1EvWithD =
new TH2F(
"hNtrEta16vsNtrEta1EvWithD",
"Uncorrected Eta1.6 vs Eta1.0 (events selected with D in mass range); Ntracklets #eta<1.0; Ntracklets #eta<1.6",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
485 fHistNtrEta05vsNtrEta1EvWithD =
new TH2F(
"hNtrEta05vsNtrEta1EvWithD",
"Uncorrected Eta0.5 vs Eta1.0 (events selected with D in mass range); Ntracklets #eta<1.0; Ntracklets #eta<0.5",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
486 fHistNtrEta03vsNtrEta1EvWithD =
new TH2F(
"hNtrEta03vsNtrEta1EvWithD",
"Uncorrected Eta0.3 vs Eta1.0 (events selected with D in mass range); Ntracklets #eta<1.0; Ntracklets #eta<0.3",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
487 fHistNtrEtaV0AvsNtrEta1EvWithD =
new TH2F(
"hNtrEtaV0AvsNtrEta1EvWithD",
"Uncorrected Eta-V0A vs Eta1.0 (events selected with D in mass range); Ntracklets #eta<1.0; Multiplicity V0A",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsV0,firstMultBin,lastMultBinV0);
488 fHistNtrEtaV0MvsNtrEta1EvWithD =
new TH2F(
"hNtrEtaV0MvsNtrEta1EvWithD",
"Uncorrected Eta-V0M vs Eta1.0 (events selected with D in mass range); Ntracklets #eta<1.0; Multiplicity V0A+V0C",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsV0,firstMultBin,lastMultBinV0);
489 fHistNtrEtaV0AvsV0AEqEvWithD =
new TH2F(
"hNtrEtaV0AvsV0AEqEvWithD",
"Corrected V0A vs corrected V0A-Equalized (events selected with D in mass range); Vzero-A; Vzero-A Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0);
490 fHistNtrEtaV0MvsV0MEqEvWithD =
new TH2F(
"hNtrEtaV0MvsV0MEqEvWithD",
"Corrected V0M vs corrected V0M-Equalized (events selected with D in mass range); Vzero-M; Vzero-M Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0);
491 fHistNtrCorrEta1vsNtrRawEta1EvWithD =
new TH2F(
"hNtrCorrEta1vsNtrRawEta1EvWithD",
"Corrected Eta1 vs Eta1.0 (events selected with D in mass range); Ntracklets #eta<1.0 corrected; Ntracklets #eta<1",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsNtrk,firstMultBin,lastMultBinNtrk);
492 fHistMultCorrvsMultRawEvWithD =
new TH2F(
"hMultCorrvsMultRawEvWithD",Form(
"Corrected multiplicity vs uncorrected multiplicity (events selected with D in mass range); %s corrected; %s",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
495 fHistNtrVsZvtx =
new TH2F(
"hNtrVsZvtx",Form(
"N%s vs VtxZ; VtxZ;N_{%s};",estimatorName,estimatorName),300,-15,15,nMultBins,firstMultBin,lastMultBin);
496 fHistNtrCorrVsZvtx =
new TH2F(
"hNtrCorrVsZvtx",Form(
"N%s vs VtxZ; VtxZ;N_{%s};",estimatorName,estimatorName),300,-15,15,nMultBins,firstMultBin,lastMultBin);
498 fHistNtrVsNchMC =
new TH2F(
"hNtrVsNchMC",Form(
"N%s vs NchMC; Nch;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
499 fHistNtrCorrVsNchMC =
new TH2F(
"hNtrCorrVsNchMC",Form(
"N%s vs Nch; Nch;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
501 fHistNtrVsNchMCPrimary =
new TH2F(
"hNtrVsNchMCPrimary",Form(
"N%s vs Nch (Primary); Nch (Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
502 fHistNtrCorrVsNchMCPrimary =
new TH2F(
"hNtrCorrVsNchMCPrimary",Form(
"N%s vs Nch (Primary); Nch(Primary) ;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
504 fHistNtrVsNchMCPhysicalPrimary =
new TH2F(
"hNtrVsNchMCPhysicalPrimary",Form(
"N%s vs Nch (Physical Primary); Nch (Physical Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
505 fHistNtrCorrVsNchMCPhysicalPrimary =
new TH2F(
"hNtrCorrVsMCPhysicalPrimary",Form(
"N%s vs Nch (Physical Primary); Nch (Physical Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
507 fHistGenPrimaryParticlesInelGt0 =
new TH1F(
"hGenPrimaryParticlesInelGt0",
"Multiplcity of generated charged particles ; Nparticles ; Entries",nMultBins,firstMultBin,lastMultBin);
509 fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary =
new TH3F(
"fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary",
"MC: Nch (Physical Primary) vs Nch (Primary) vs Nch (Generated); Nch (Generated); Nch (Primary); Nch (Physical Primary)",nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
582 fHistNEvents =
new TH1F(
"fHistNEvents",
"number of events ",11,-0.5,10.5);
583 fHistNEvents->GetXaxis()->SetBinLabel(1,
"nEvents total");
584 fHistNEvents->GetXaxis()->SetBinLabel(2,
"nEvents with Z vertex");
585 fHistNEvents->GetXaxis()->SetBinLabel(3,
"nEvents selected");
586 fHistNEvents->GetXaxis()->SetBinLabel(4,
"Rejected due to trigger");
587 fHistNEvents->GetXaxis()->SetBinLabel(5,
"Rejected due to phys sel");
588 fHistNEvents->GetXaxis()->SetBinLabel(6,
"Rejected due to vertex cuts");
589 fHistNEvents->GetXaxis()->SetBinLabel(7,
"Rejected due to pileup");
590 fHistNEvents->GetXaxis()->SetBinLabel(8,
"Total no. of candidate");
591 fHistNEvents->GetXaxis()->SetBinLabel(9,
"no. of cand wo bitmask");
592 fHistNEvents->GetXaxis()->SetBinLabel(10,
"D after cuts (No PID)");
593 fHistNEvents->GetXaxis()->SetBinLabel(11,
"D after cuts + PID)");
599 fPtVsMassVsMult=
new TH3F(
"hPtVsMassvsMult",
"D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",nMultBins,firstMultBin,lastMultBin,
fNMassBins,
fLowmasslimit,
fUpmasslimit,48,0.,24.);
601 fPtVsMassVsMultNoPid=
new TH3F(
"hPtVsMassvsMultNoPid",
"D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",nMultBins,firstMultBin,lastMultBin,
fNMassBins,
fLowmasslimit,
fUpmasslimit,48,0.,24.);
603 fPtVsMassVsMultUncorr=
new TH3F(
"hPtVsMassvsMultUncorr",
"D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",nMultBins,firstMultBin,lastMultBin,
fNMassBins,
fLowmasslimit,
fUpmasslimit,48,0.,24.);
605 fPtVsMassVsMultPart=
new TH3F(
"hPtVsMassvsMultPart",
"D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",nMultBins,firstMultBin,lastMultBin,
fNMassBins,
fLowmasslimit,
fUpmasslimit,48,0.,24.);
607 fPtVsMassVsMultAntiPart=
new TH3F(
"hPtVsMassvsMultAntiPart",
"D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",nMultBins,firstMultBin,lastMultBin,
fNMassBins,
fLowmasslimit,
fUpmasslimit,48,0.,24.);
609 fPtVsMassVsMultMC=
new TH3F(
"hPtVsMassvsMultMC",
"D true candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",nMultBins,firstMultBin,lastMultBin,
fNMassBins,
fLowmasslimit,
fUpmasslimit,48,0.,24.);
665 if (matchingAODdeltaAODlevel<0 || (matchingAODdeltaAODlevel==0 &&
fAODProtection==1)) {
672 TClonesArray *arrayCand = 0;
678 arrayName=
"Charm3Prong";
679 pdgDau[0]=211; pdgDau[1]=321; pdgDau[2]=211;
684 pdgDau[0]=211; pdgDau[1]=321; pdgDau[2]=0;
689 pdgDau[0]=321; pdgDau[1]=211; pdgDau[2]=0;
693 arrayName=
"Charm3Prong";
694 pdgDau[0]=321; pdgDau[1]=321; pdgDau[2]=211;
698 arrayName=
"CascadesHF";
699 pdgDau[0]=211; pdgDau[1]=211; pdgDau[2]=0;
704 if(!aod && AODEvent() && IsStandardAOD()) {
710 AliAODHandler* aodHandler = (AliAODHandler*)
711 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
712 if(aodHandler->GetExtensions()) {
713 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
715 arrayCand=(TClonesArray*)aodFromExt->GetList()->FindObject(arrayName.Data());
718 arrayCand=(TClonesArray*)aod->GetList()->FindObject(arrayName.Data());
721 if(!aod || !arrayCand) {
722 printf(
"AliAnalysisTaskSEDvsMultiplicity::UserExec: Charm3Prong branch not found!\n");
727 Int_t runnumber = aod->GetRunNumber();
728 if(aod->GetTriggerMask()==0 &&
729 (runnumber>=195344 && runnumber<=195677)){
730 AliDebug(3,
"Event rejected because of null trigger mask");
738 if(!aod->GetPrimaryVertex()||TMath::Abs(aod->GetMagneticField())<0.001)
return;
744 Int_t countTreta1=0, countTreta03=0, countTreta05=0, countTreta16=0;
745 AliAODTracklets* tracklets=aod->GetTracklets();
746 Int_t nTr=tracklets->GetNumberOfTracklets();
747 for(
Int_t iTr=0; iTr<nTr; iTr++){
748 Double_t theta=tracklets->GetTheta(iTr);
749 Double_t eta=-TMath::Log(TMath::Tan(theta/2.));
750 if(eta>-0.3 && eta<0.3) countTreta03++;
751 if(eta>-0.5 && eta<0.5) countTreta05++;
752 if(eta>-1.0 && eta<1.0) countTreta1++;
753 if(eta>-1.6 && eta<1.6) countTreta16++;
757 Int_t vzeroMult=0, vzeroMultA=0, vzeroMultC=0;
758 Int_t vzeroMultEq=0, vzeroMultAEq=0, vzeroMultCEq=0;
759 AliAODVZERO *vzeroAOD = (AliAODVZERO*)aod->GetVZEROData();
761 vzeroMultA =
static_cast<Int_t>(vzeroAOD->GetMTotV0A());
762 vzeroMultC =
static_cast<Int_t>(vzeroAOD->GetMTotV0C());
763 vzeroMult = vzeroMultA + vzeroMultC;
766 vzeroMultEq = vzeroMultAEq + vzeroMultCEq;
769 Int_t countMult = countTreta1;
782 Double_t countTreta1corr=countTreta1;
784 AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
787 Bool_t isDataDrivenZvtxCorr=kTRUE;
789 Int_t vzeroMultACorr=vzeroMultA, vzeroMultCCorr=vzeroMultC, vzeroMultCorr=vzeroMult;
790 Int_t vzeroMultAEqCorr=vzeroMultAEq, vzeroMultCEqCorr=vzeroMultCEq, vzeroMultEqCorr=vzeroMultEq;
792 if(vtx1->GetNContributors()>0){
802 isDataDrivenZvtxCorr=kFALSE;
806 isDataDrivenZvtxCorr=kFALSE;
807 vzeroMultACorr =
static_cast<Int_t>(AliESDUtils::GetCorrV0A(vzeroMultA,zvtx));
808 vzeroMultCCorr =
static_cast<Int_t>(AliESDUtils::GetCorrV0C(vzeroMultC,zvtx));
809 vzeroMultCorr = vzeroMultACorr + vzeroMultCCorr;
810 vzeroMultAEqCorr =
static_cast<Int_t>(AliESDUtils::GetCorrV0A(vzeroMultAEq,zvtx));
811 vzeroMultCEqCorr =
static_cast<Int_t>( AliESDUtils::GetCorrV0C(vzeroMultCEq,zvtx));
812 vzeroMultEqCorr = vzeroMultAEqCorr + vzeroMultCEqCorr;
821 if(isVtxOk && isDataDrivenZvtxCorr){
853 if(!isEvTrigNameRejected){
855 if(!isEvPileUpRejected){
857 if(!isEvNoVtxRejected){
859 if(!isEvVtxContribRejected){
861 if(!isEvVtxRangeRejected){
863 if(!isEvCentralityRejected){
891 TClonesArray *arrayMC=0;
892 AliAODMCHeader *mcHeader=0;
899 arrayMC = (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
901 printf(
"AliAnalysisTaskSEDvsMultiplicity::UserExec: MC particles branch not found!\n");
905 mcHeader = (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
907 printf(
"AliAnalysisTaskSEDvsMultiplicity::UserExec: MC header branch not found!\n");
916 Int_t nChargedMCEta10=0, nChargedMCEta03=0, nChargedMCEta05=0, nChargedMCEta16=0, nChargedMCEtam37tm17=0, nChargedMCEta28t51=0;
917 Int_t nChargedMCPrimaryEta10=0, nChargedMCPrimaryEta03=0, nChargedMCPrimaryEta05=0, nChargedMCPrimaryEta16=0, nChargedMCPrimaryEtam37tm17=0, nChargedMCPrimaryEta28t51=0;
918 Int_t nChargedMCPhysicalPrimaryEta10=0, nChargedMCPhysicalPrimaryEta03=0, nChargedMCPhysicalPrimaryEta05=0, nChargedMCPhysicalPrimaryEta16=0, nChargedMCPhysicalPrimaryEtam37tm17=0, nChargedMCPhysicalPrimaryEta28t51=0;
919 for(
Int_t i=0; i<arrayMC->GetEntriesFast(); i++){
920 AliAODMCParticle *
part=(AliAODMCParticle*)arrayMC->UncheckedAt(i);
923 Bool_t isPrim = part->IsPrimary();
924 Bool_t isPhysPrim = part->IsPhysicalPrimary();
926 if(eta>-0.3 && eta< 0.3) {
928 if(isPrim) nChargedMCPrimaryEta03++;
929 if(isPhysPrim) nChargedMCPhysicalPrimaryEta03++;
931 if(eta>-0.5 && eta< 0.5) {
933 if(isPrim) nChargedMCPrimaryEta05++;
934 if(isPhysPrim) nChargedMCPhysicalPrimaryEta05++;
936 if(eta>-1.0 && eta< 1.0) {
938 if(isPrim) nChargedMCPrimaryEta10++;
939 if(isPhysPrim) nChargedMCPhysicalPrimaryEta10++;
941 if(eta>-1.6 && eta< 1.6) {
943 if(isPrim) nChargedMCPrimaryEta16++;
944 if(isPhysPrim) nChargedMCPhysicalPrimaryEta16++;
946 if(eta>-3.7 && eta<-1.7) {
947 nChargedMCEtam37tm17++;
948 if(isPrim) nChargedMCPrimaryEtam37tm17++;
949 if(isPhysPrim) nChargedMCPhysicalPrimaryEtam37tm17++;
951 if(eta> 2.8 && eta< 5.1) {
952 nChargedMCEta28t51++;
953 if(isPrim) nChargedMCPrimaryEta28t51++;
954 if(isPhysPrim) nChargedMCPhysicalPrimaryEta28t51++;
958 Int_t nChargedMC=nChargedMCEta10;
959 Int_t nChargedMCPrimary=nChargedMCPrimaryEta10;
960 Int_t nChargedMCPhysicalPrimary=nChargedMCPhysicalPrimaryEta10;
966 Double_t tmpXweight=nChargedMCPhysicalPrimary;
969 if(tmpXweight<=0) tmpweight = 0.0;
974 tmpweight = pMC>0 ? pMeas/pMC : 0.;
976 nchWeight *= tmpweight;
977 AliDebug(2,Form(
"Using Nch weights, Mult=%f Weight=%f\n",tmpXweight,nchWeight));
1001 nChargedMC = nChargedMCEta16 - nChargedMCEta10;
1002 nChargedMCPrimary = nChargedMCPrimaryEta16 - nChargedMCPrimaryEta10;
1003 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEta16 - nChargedMCPhysicalPrimaryEta10;
1005 nChargedMC = nChargedMCEta05;
1006 nChargedMCPrimary = nChargedMCPrimaryEta05;
1007 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEta05;
1009 nChargedMC = nChargedMCEta03;
1010 nChargedMCPrimary = nChargedMCPrimaryEta03;
1011 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEta03;
1013 nChargedMC = nChargedMCEtam37tm17 + nChargedMCEta28t51;
1014 nChargedMCPrimary = nChargedMCPrimaryEtam37tm17 + nChargedMCPrimaryEta28t51;
1015 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEtam37tm17 + nChargedMCPhysicalPrimaryEta28t51;
1017 nChargedMC = nChargedMCEta28t51;
1018 nChargedMCPrimary = nChargedMCPrimaryEta28t51;
1019 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEta28t51;
1023 if(nChargedMCPhysicalPrimary>0){
1039 Int_t nCand = arrayCand->GetEntriesFast();
1040 Int_t nSelectedNoPID=0,nSelectedPID=0,nSelectedInMassPeak=0;
1041 Double_t mD0PDG = TDatabasePDG::Instance()->GetParticle(421)->Mass();
1042 Double_t mDplusPDG = TDatabasePDG::Instance()->GetParticle(411)->Mass();
1043 Double_t mDstarPDG = TDatabasePDG::Instance()->GetParticle(413)->Mass();
1044 Double_t mDsPDG = TDatabasePDG::Instance()->GetParticle(431)->Mass();
1045 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
1048 UInt_t pdgDgDStartoD0pi[2]={421,211};
1051 UInt_t pdgDgLctopK0S[2]={2212,310};
1055 for (
Int_t iCand = 0; iCand < nCand; iCand++) {
1061 AliAODv0 * v0part = (AliAODv0*)dCascade->
Getv0();
1062 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
1063 if (onFlyV0)
continue;
1075 if(!isFidAcc)
continue;
1093 if (
fPdgMeson != 431 && passTopolCuts==0)
continue;
1096 if(
fPdgMeson == 431 && passAllCuts==0)
continue;
1106 AliAODTrack *t = (AliAODTrack *)dCascade->
GetBachelor();
1108 if(t->HasPointOnITSLayer(0) && t->HasPointOnITSLayer(1)){
1109 if(multForCand>0) multForCand-=1;
1116 for(
Int_t iDau=0; iDau<nDau; iDau++){
1117 AliAODTrack *t = NULL;
1118 if(
fPdgMeson==413){ t = (AliAODTrack*)d0fromDstar->GetDaughter(iDau); }
1119 else{ t = (AliAODTrack*)d->GetDaughter(iDau); }
1121 if(t->HasPointOnITSLayer(0) && t->HasPointOnITSLayer(1)){
1122 if(multForCand>0) multForCand-=1;
1133 mass[0]=d->InvMass(nDau,pdgDau);
1135 if(TMath::Abs(mass[0]-mDplusPDG)<0.02) nSelectedInMassPeak++;
1137 UInt_t pdgdaughtersD0[2]={211,321};
1138 UInt_t pdgdaughtersD0bar[2]={321,211};
1139 mass[0]=d->InvMass(2,pdgdaughtersD0);
1140 mass[1]=d->InvMass(2,pdgdaughtersD0bar);
1141 if(TMath::Abs(mass[0]-mD0PDG)<0.02 || TMath::Abs(mass[1]-mD0PDG)<0.02 ) nSelectedInMassPeak++;
1146 if(TMath::Abs(mass[0]-(mDstarPDG-mD0PDG))<0.0015) nSelectedInMassPeak++;
1148 UInt_t pdgDsKKpi[3]={321,321,211};
1149 UInt_t pdgDspiKK[3]={211,321,321};
1150 mass[0]=d->InvMass(nDau,pdgDsKKpi);
1151 mass[1]=d->InvMass(nDau,pdgDspiKK);
1152 if(TMath::Abs(mass[0]-mDsPDG)<0.02 || TMath::Abs(mass[1]-mDsPDG)<0.02 ) nSelectedInMassPeak++;
1154 mass[0]=d->InvMass(2,pdgDgLctopK0S);
1156 if(TMath::Abs(mass[0]-mLcPDG)<0.02) nSelectedInMassPeak++;
1159 for(
Int_t iHyp=0; iHyp<2; iHyp++){
1160 if(mass[iHyp]<0.)
continue;
1162 Double_t arrayForSparse[5]={invMass,ptCand,impparXY,dlen,multForCand};
1176 AliAODMCParticle *partD = (AliAODMCParticle*)arrayMC->At(labD);
1177 Int_t code=partD->GetPdgCode();
1178 if(
CheckOrigin(arrayMC,partD)==5) isPrimary=kFALSE;
1179 if(code<0 && iHyp==0) fillHisto=kFALSE;
1180 if(code>0 && iHyp==1) fillHisto=kFALSE;
1189 Double_t arrayForSparseTrue[5]={invMass,ptCand,trueImpParXY,dlen,multForCand};
1190 if(fillHisto && passAllCuts){
1207 if(iHyp==0 && !(passTopolCuts&1))
continue;
1208 if(iHyp==1 && !(passTopolCuts&2))
continue;
1214 if(iHyp==0 && !(passAllCuts&1))
continue;
1215 if(iHyp==1 && !(passAllCuts&2))
continue;
1218 if(iHyp==0 && !(passAllCuts&4))
continue;
1219 if(iHyp==1 && !(passAllCuts&8))
continue;
1223 aveMult+=multForCand;
1256 if(nSelectedPID>0) {
1271 if(nSelectedInMassPeak>0) {
1304 "Mass vs. pt vs.imppar - All",
1307 "Mass vs. pt vs.imppar - promptD",
1310 "Mass vs. pt vs.imppar - DfromB",
1313 "Mass vs. pt vs.true imppar -DfromB",
1316 "Mass vs. pt vs.imppar - backgr.",
1318 for(
Int_t i=0; i<5;i++){
1328 if(fDebug > 1) printf(
"AnalysisTaskSEDvsMultiplicity: Terminate() \n");
1332 printf(
"ERROR: fOutput not available\n");
1338 printf(
"ERROR: fHistNEvents not available\n");
1341 printf(
"Number of Analyzed Events = %d\n",(
Int_t)
fHistNEvents->GetBinContent(3));
1351 Int_t pdgGranma = 0;
1353 mother = mcPartCandidate->GetMother();
1355 Int_t abspdgGranma =0;
1360 AliAODMCParticle* mcGranma =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(mother));
1362 pdgGranma = mcGranma->GetPdgCode();
1363 abspdgGranma = TMath::Abs(pdgGranma);
1364 if ((abspdgGranma > 500 && abspdgGranma < 600) || (abspdgGranma > 5000 && abspdgGranma < 6000)){
1368 mother = mcGranma->GetMother();
1370 AliError(
"Failed casting the mother particle!");
1375 if(isFromB)
return 5;
1388 Int_t runNo =
event->GetRunNumber();
1394 if (runNo>195343 && runNo<195484) period = 0;
1395 else if (runNo>195528 && runNo<195678) period = 1;
1396 if (period < 0 || period > 1)
return 0;
1399 if ((runNo>=265499 && runNo<=265525) || (runNo>=265309 && runNo<=265387)) period = 0;
1400 else if (runNo == 265435) period = 1;
1401 else if (runNo>=265388 && runNo<=265427) period = 2;
1402 else if (runNo>=267163 && runNo<=267166) period = 3;
1403 if (period < 0 || period > 3)
return 0;
1407 if(runNo>114930 && runNo<117223) period = 0;
1408 if(runNo>119158 && runNo<120830) period = 1;
1409 if(runNo>122373 && runNo<126438) period = 2;
1410 if(runNo>127711 && runNo<130851) period = 3;
1411 if(period<0 || period>3)
return 0;
1426 Double_t nchbins[82]={0.50,1.50,2.50,3.50,4.50,5.50,6.50,7.50,8.50,9.50,
1427 10.50,11.50,12.50,13.50,14.50,15.50,16.50,17.50,18.50,19.50,
1428 20.50,21.50,22.50,23.50,24.50,25.50,26.50,27.50,28.50,29.50,
1429 30.50,31.50,32.50,33.50,34.50,35.50,36.50,37.50,38.50,39.50,
1430 40.50,41.50,42.50,43.50,44.50,45.50,46.50,47.50,48.50,49.50,
1431 50.50,51.50,52.50,53.50,54.50,55.50,56.50,57.50,58.50,59.50,
1432 60.50,62.50,64.50,66.50,68.50,70.50,72.50,74.50,76.50,78.50,
1433 80.50,82.50,84.50,86.50,88.50,90.50,92.50,94.50,96.50,98.50,
1435 Double_t pch[81]={0.062011,0.072943,0.070771,0.067245,0.062834,0.057383,0.051499,0.04591,0.041109,0.036954,
1436 0.03359,0.030729,0.028539,0.026575,0.024653,0.0229,0.021325,0.019768,0.018561,0.017187,
1437 0.01604,0.014836,0.013726,0.012576,0.011481,0.010393,0.009502,0.008776,0.008024,0.007452,
1438 0.006851,0.006428,0.00594,0.005515,0.005102,0.00469,0.004162,0.003811,0.003389,0.003071,
1439 0.002708,0.002422,0.002184,0.001968,0.00186,0.00165,0.001577,0.001387,0.001254,0.001118,
1440 0.001037,0.000942,0.000823,0.000736,0.000654,0.000579,0.000512,0.00049,0.00045,0.000355,
1441 0.000296,0.000265,0.000193,0.00016,0.000126,0.0000851, 0.0000676,0.0000537,0.0000426, 0.0000338,
1442 0.0000268,0.0000213,0.0000166,0.0000133,0.0000106,0.00000837,0.00000662, 0.00000524,0.00000414, 0.00000327,
1447 for(
Int_t i=0; i<81; i++){
1461 AliAODMCParticle *partD = (AliAODMCParticle*)arrayMC->At(labD);
Bool_t IsEventRejectedDueToCentrality() const
TH2F * fHistMultCorrvsMultRawEvSel
!hist. for multiplicity with and w/o corrections
TH3F * fPtVsMassVsMult
! hist. of Pt vs Mult vs. mass (
Bool_t IsEventRejectedDueToZVertexOutsideFiducialRegion() const
Int_t fAODProtection
flag to look at the correlation of different estimators (eta ranges)
TH2F * fHistNtrCorrVsZvtx
! hist of ntracklets vs Zvertex
Int_t fDoVZER0ParamVertexCorr
Definition of the primaries estimator eta range: |eta|<1.0=0, -1.6<|eta|<1.0=1, VZEROrange=2.
TH2F * fHistNtrVsNchMCPhysicalPrimary
! hist of ntracklets vs Nch (Physical Primary)
TH2F * fHistNtrEtaV0MvsNtrEta1EvSel
!hist. for Ntracklets in eta-V0M vs. eta<1.
TH1F * fHistNtrCorrEvSel
! hist. of ntracklets for selected events
TH2F * fHistNtrEta05vsNtrEta1EvSel
!hist. for Ntracklets in eta<0.5 vs. eta<1.
Bool_t IsEventRejectedDueToNotRecoVertex() const
TH3F * fPtVsMassVsMultPart
! hist. of Pt vs Mult vs. mass (particle)
TH2F * fHistNtrEtaV0MvsNtrEta1EvWithD
!hist. for Ntracklets in eta-V0M vs. eta<1. for events with a candidate in D mass peak ...
TH2F * fHistNtrVsNchMCPrimary
! hist of ntracklets vs Nch (Primary)
TH2F * fHistMultCorrvsMultRawEvWithD
!hist. for multiplicity with and w/o corrections for events with a candidate in D mass peak ...
TH1F * fHistNtrUnCorrPSTrigPileUpVtxSel
! hist. of ntracklets for physics selection + trigger name + pileup + with-vertex selected events ...
TH2F * fHistNtrEta03vsNtrEta1EvSel
!hist. for Ntracklets in eta<0.3 vs. eta<1.
AliRDHFCuts * fRDCutsAnalysis
nbins for invariant mass histos
void StoreCandidates(AliVEvent *, Int_t nCand=0, Bool_t flagFilter=kTRUE)
Double_t fHigherImpPar
lower limit in impact parameter (um)
Double_t DeltaInvMass() const
TH1F * fHistNtrUnCorrPSSel
! hist. of ntracklets for physics selection only selected events
Int_t GetIsSelectedCuts() const
TH1F * fHistoMCNch
weight on the MC on the generated multiplicity (0->no weights, 1->Nch weights, 2->Ntrk weights) ...
TH3F * fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary
! hist of Nch (generated) vs Nch (Primary) vs Nch (Physical Primary)
Bool_t HasSelectionBit(Int_t i) const
Int_t fUseNchWeight
-1: no protection, 0: check AOD/dAOD nEvents only, 1: check AOD/dAOD nEvents + TProcessID names ...
Int_t MatchToMC(Int_t pdgabs, Int_t pdgabs2prong, Int_t *pdgDg, Int_t *pdgDg2prong, TClonesArray *mcArray, Bool_t isV0=kFALSE) const
TH2F * fHistNtrCorrVsNchMC
! hist of ntracklets vs Nch (Generated)
TH1F * fHistNtrUnCorrEvSel
! hist. of ntracklets for selected events
virtual void UserCreateOutputObjects()
Implementation of interface methods.
Double_t ImpParXY() const
TH1F * fHistNtrUnCorrPSTrigPileUpVtxRangeSel
! hist. of ntracklets for physics selection + trigger name + pileup + with-vertex-contrib-range selec...
static Int_t CheckMatchingAODdeltaAODevents()
TH2F * fHistNtrEta16vsNtrEta1EvSel
!hist. for Ntracklets in eta<1.6 vs. eta<1.
TH2F * fHistNtrEta03vsNtrEta1EvWithD
!hist. for Ntracklets in eta<0.3 vs. eta<1. for events with a candidate in D mass peak ...
TH2F * fHistNtrVsNchMC
! hist of ntracklets vs Nch (Generated)
Bool_t IsEventRejectedDueToVertexContributors() const
TH1F * fHistNtrCorrPSSel
! hist. of ntracklets for physics selection only selected events
TH2F * fHistNtrEta05vsNtrEta1EvWithD
!hist. for Ntracklets in eta<0.5 vs. eta<1. for events with a candidate in D mass peak ...
Int_t GetWhyRejection() const
AliNormalizationCounter * fCounterU
!Counter for normalization, uncorrected multiplicity
TH1F * fHistNtrUnCorrPSTrigSel
! hist. of ntracklets for physics selection + trigger name selected events
AliNormalizationCounter * fCounterC
Cuts for Analysis.
TH1F * fHistNtrCorrEvWithCand
! hist. of ntracklets for evnts with a candidate
virtual void UserExec(Option_t *option)
TH1F * fHistNtrCorrEvWithD
! hist. of ntracklets for evnts with a candidate in D mass peak
TString part
use mixed event to constrain combinatorial background
void SetNMassBins(Int_t nbins)
Int_t fMCPrimariesEstimator
Definition of the multiplicity estimator: kNtrk10=0, kNtrk10to16=1, kVZERO=2.
void SetMassLimits(Double_t lowlimit, Double_t uplimit)
TH2F * fHistNtrEtaV0MvsV0MEqEvWithCand
!hist. for V0M raw mult vs V0M equalized multiplicity for events with a candidate ...
Int_t fYearNumber
Flag to use the zvtx correction from (0=none, 1=usual d2h, 2=AliESDUtils for VZERO multiplicity) ...
TH1F * fHistNtrUnCorrPSTrigPileUpSel
! hist. of ntracklets for physics selection + trigger name + pileup selected events ...
TH1F * fHistNtrUnCorrEvWithD
! hist. of ntracklets for evnts with a candidate in D mass peak
void FillMCMassHistos(TClonesArray *arrayMC, Int_t labD, Int_t countMult, Double_t nchWeight)
static Double_t GetVZEROCEqualizedMultiplicity(AliAODEvent *ev)
Class for cuts on AOD reconstructed D+->Kpipi.
void SetStudyMultiplicity(Bool_t flag, Float_t etaRange)
TH2F * fHistNtrEtaV0AvsNtrEta1EvSel
!hist. for Ntracklets in eta-V0A vs. eta<1.
TH2F * fHistNtrEtaV0MvsNtrEta1EvWithCand
!hist. for Ntracklets in eta-V0M vs. eta<1. for events with a candidate
Bool_t fisPPbData
0=keep all cand, 1=keep only signal, 2= keep only back
AliNormalizationCounter * fCounterCandidates
!Counter for normalization, corrected multiplicity for candidates
TH2F * fHistNtrEtaV0MvsV0MEqEvWithD
!hist. for V0M raw mult vs V0M equalized multiplicity with a candidate in D mass peak ...
Int_t fMultiplicityEstimator
pdg code of analyzed meson
TH3F * fPtVsMassVsMultMC
! hist. of Pt vs Mult vs. mass (MC true candidates before reconstruction)
TList * fOutput
! list send on output slot 1
virtual ~AliAnalysisTaskSEDvsMultiplicity()
AliAODTrack * GetBachelor() const
TH2F * fHistNtrEtaV0MvsV0MEqEvSel
!hist. for V0M raw mult vs V0M equalized multiplicity
TProfile * fMultEstimatorAvg[4]
weight histogram on the true measured multiplicity
TH2F * fHistNtrEta16vsNtrEta1EvWithD
!hist. for Ntracklets in eta<1.6 vs. eta<1. for events with a candidate in D mass peak ...
TH1F * fHistGenPrimaryParticlesInelGt0
!hist. of geenrated multiplcity
Bool_t IsEventRejectedDueToPileup() const
TH1F * fHistNtrUnCorrEvWithCand
! hist. of ntracklets for evnts with a candidate
TH2F * fHistNtrEtaV0AvsNtrEta1EvWithD
!hist. for Ntracklets in eta-V0A vs. eta<1. for events with a candidate in D mass peak ...
Int_t fNImpParBins
swicth for D impact parameter THnSparse
TH2F * fHistNtrEtaV0AvsNtrEta1EvWithCand
!hist. for Ntracklets in eta-V0A vs. eta<1. for events with a candidate
Int_t fNMassBins
lower inv mass limit for histos
TH2F * fHistNtrEtaV0AvsV0AEqEvSel
!hist. for V0A raw mult vs V0A equalized multiplicity
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 * fHistNtrEta05vsNtrEta1EvWithCand
!hist. for Ntracklets in eta<0.5 vs. eta<1. for events with a candidate
Bool_t IsEventRejectedDuePhysicsSelection() const
TH1F * fHistNtrUnCorrPSTrigPileUpVtxRangeCentrSel
! hist. of ntracklets for physics selection + trigger name + pileup + with-vertex-contrib-range + cen...
Int_t fMCOption
flag for access to MC
TH2F * fHistNtrCorrEta1vsNtrRawEta1EvSel
!hist. for Ntracklets in eta<1 with and w/o corrections
TH2F * fHistNtrCorrEta1vsNtrRawEta1EvWithCand
!hist. for Ntracklets in eta<1 with and w/o corrections for events with a candidate ...
TH1F * fHistNtrUnCorrPSTrigPileUpVtxContSel
! hist. of ntracklets for physics selection + trigger name + pileup + with-vertex-contrib selected ev...
Bool_t fUseBit
flag to run on pPb data (differen histogram bining)
static Double_t GetCorrectedNtracklets(TProfile *estimatorAvg, Double_t uncorrectedNacc, Double_t vtxZ, Double_t refMult)
TH3F * fPtVsMassVsMultAntiPart
! hist. of Pt vs Mult vs. mass (antiparticle)
Bool_t IsEventSelected(AliVEvent *event)
void StoreEvent(AliVEvent *, AliRDHFCuts *, Bool_t mc=kFALSE, Int_t multiplicity=-9999, Double_t spherocity=-99.)
AliAnalysisTaskSEDvsMultiplicity()
THnSparseF * fHistMassPtImpPar[5]
! histograms for impact paramter studies
TH2F * fHistNtrEtaV0AvsV0AEqEvWithCand
!hist. for V0A raw mult vs V0A equalized multiplicity for events with a candidate ...
TH3F * fPtVsMassVsMultNoPid
! hist. of Pt vs Mult vs. mass (no pid)
void CreateImpactParameterHistos()
Bool_t IsSelected(TObject *obj)
TH2F * fHistMultCorrvsMultRawEvWithCand
!hist. for multiplicity with and w/o corrections for events with a candidate
TH2F * fHistNtrEtaV0AvsV0AEqEvWithD
!hist. for V0A raw mult vs V0A equalized multiplicity with a candidate in D mass peak ...
void CreateMeasuredNchHisto()
Double_t fLowerImpPar
nunber of bins in impact parameter histos
TH2F * fHistNtrCorrVsNchMCPrimary
! hist of ntracklets vs Nch (Primary)
TH2F * fHistNtrEta03vsNtrEta1EvWithCand
!hist. for Ntracklets in eta<0.3 vs. eta<1. for events with a candidate
static Double_t GetVZEROAEqualizedMultiplicity(AliAODEvent *ev)
Utilities for V0 multiplicity checks.
Bool_t IsEventRejectedDueToTrigger() const
TH2F * fHistNtrVsZvtx
! hist of ntracklets vs Zvertex
TH1F * fHistNEvents
list of profile histos for z-vtx correction
static Double_t GetTrueImpactParameterDzero(AliAODMCHeader *mcHeader, TClonesArray *arrayMC, AliAODMCParticle *partDp)
Functions for computing true impact parameter of D meson.
TH2F * fHistNtrCorrEta1vsNtrRawEta1EvWithD
!hist. for Ntracklets in eta<1 with and w/o corrections for events with a candidate in D mass peak ...
TList * fOutputCounters
list of cuts
Int_t CheckOrigin(TClonesArray *arrayMC, AliAODMCParticle *mcPartCandidate) const
Bool_t fKeepCorrPlots
flag for subtracting D meson daughter contribution to N of tracklets
AliAODRecoDecayHF2Prong * Get2Prong() const
static Double_t GetTrueImpactParameterDplus(AliAODMCHeader *mcHeader, TClonesArray *arrayMC, AliAODMCParticle *partDp)
Bool_t fSubtractTrackletsFromDau
flag to use bitmask
TProfile * GetEstimatorHistogram(const AliVEvent *event)
virtual Bool_t IsInFiducialAcceptance(Double_t, Double_t) const
Double_t fRefMult
TProfile with mult vs. Z per period.
Double_t fLowmasslimit
upper inv mass limit for histos
TH2F * fHistNtrEta16vsNtrEta1EvWithCand
!hist. for Ntracklets in eta<1.6 vs. eta<1. for events with a candidate
Bool_t fReadMC
higher limit in impact parameter (um)
TH3F * fPtVsMassVsMultUncorr
! hist. of Pt vs Mult vs. mass (raw mult)
virtual void Terminate(Option_t *option)
TH1F * fHistoMeasNch
weight histogram for the MC on the generated multiplicity
TH2F * fHistNtrCorrVsNchMCPhysicalPrimary
! hist of ntracklets vs Nch (Physical Primary)
Int_t fPdgMeson
refrence multiplcity (period b)