24 #include <TClonesArray.h> 28 #include <TDatabasePDG.h> 32 #include <THnSparse.h> 34 #include "AliAnalysisManager.h" 42 #include "AliAODHandler.h" 43 #include "AliAODEvent.h" 44 #include "AliAODVertex.h" 45 #include "AliAODTrack.h" 49 #include "AliAnalysisTaskSE.h" 53 #include "AliAODVZERO.h" 54 #include "AliESDUtils.h" 68 fHistNtrEta16vsNtrEta1EvSel(0),
69 fHistNtrEta05vsNtrEta1EvSel(0),
70 fHistNtrEta03vsNtrEta1EvSel(0),
71 fHistNtrEtaV0AvsNtrEta1EvSel(0),
72 fHistNtrEtaV0MvsNtrEta1EvSel(0),
73 fHistNtrEtaV0AvsV0AEqEvSel(0),
74 fHistNtrEtaV0MvsV0MEqEvSel(0),
75 fHistNtrCorrEta1vsNtrRawEta1EvSel(0),
76 fHistMultCorrvsMultRawEvSel(0),
77 fHistNtrEta16vsNtrEta1EvWithCand(0),
78 fHistNtrEta05vsNtrEta1EvWithCand(0),
79 fHistNtrEta03vsNtrEta1EvWithCand(0),
80 fHistNtrEtaV0AvsNtrEta1EvWithCand(0),
81 fHistNtrEtaV0MvsNtrEta1EvWithCand(0),
82 fHistNtrEtaV0AvsV0AEqEvWithCand(0),
83 fHistNtrEtaV0MvsV0MEqEvWithCand(0),
84 fHistNtrCorrEta1vsNtrRawEta1EvWithCand(0),
85 fHistMultCorrvsMultRawEvWithCand(0),
86 fHistNtrEta16vsNtrEta1EvWithD(0),
87 fHistNtrEta05vsNtrEta1EvWithD(0),
88 fHistNtrEta03vsNtrEta1EvWithD(0),
89 fHistNtrEtaV0AvsNtrEta1EvWithD(0),
90 fHistNtrEtaV0MvsNtrEta1EvWithD(0),
91 fHistNtrEtaV0AvsV0AEqEvWithD(0),
92 fHistNtrEtaV0MvsV0MEqEvWithD(0),
93 fHistNtrCorrEta1vsNtrRawEta1EvWithD(0),
94 fHistMultCorrvsMultRawEvWithD(0),
96 fHistNtrCorrVsZvtx(0),
98 fHistNtrCorrVsNchMC(0),
99 fHistNtrVsNchMCPrimary(0),
100 fHistNtrCorrVsNchMCPrimary(0),
101 fHistNtrVsNchMCPhysicalPrimary(0),
102 fHistNtrCorrVsNchMCPhysicalPrimary(0),
103 fHistGenPrimaryParticlesInelGt0(0),
104 fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary(0),
105 fHistNtrUnCorrPSSel(0),
106 fHistNtrUnCorrPSTrigSel(0),
107 fHistNtrUnCorrPSTrigPileUpSel(0),
108 fHistNtrUnCorrPSTrigPileUpVtxSel(0),
109 fHistNtrUnCorrPSTrigPileUpVtxContSel(0),
110 fHistNtrUnCorrPSTrigPileUpVtxRangeSel(0),
111 fHistNtrUnCorrPSTrigPileUpVtxRangeCentrSel(0),
112 fHistNtrUnCorrEvSel(0),
113 fHistNtrUnCorrEvWithCand(0),
114 fHistNtrUnCorrEvWithD(0),
115 fHistNtrCorrPSSel(0),
116 fHistNtrCorrEvSel(0),
117 fHistNtrCorrEvWithCand(0),
118 fHistNtrCorrEvWithD(0),
120 fPtVsMassVsMultNoPid(0),
121 fPtVsMassVsMultUncorr(0),
122 fPtVsMassVsMultPart(0),
123 fPtVsMassVsMultAntiPart(0),
124 fPtVsMassVsMultMC(0),
126 fLowmasslimit(1.765),
131 fCounterCandidates(0),
134 fLowerImpPar(-2000.),
135 fHigherImpPar(2000.),
140 fSubtractTrackletsFromDau(kFALSE),
141 fKeepCorrPlots(kFALSE),
149 fMultiplicityEstimator(kNtrk10),
150 fMCPrimariesEstimator(kEta10),
151 fDoVZER0ParamVertexCorr(1),
264 Int_t nInvMassBins = (
Int_t)(0.7/MassBinSize+0.5);
265 Double_t massDs = TDatabasePDG::Instance()->GetParticle(431)->Mass();
271 Double_t massLc = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
272 Int_t nInvMassBins = 1000;
284 DefineOutput(1,TList::Class());
286 DefineOutput(2,TList::Class());
288 DefineOutput(3,TList::Class());
290 DefineOutput(4,TList::Class());
306 for(
Int_t i=0; i<4; i++) {
310 for(
Int_t i=0; i<5; i++){
320 if(uplimit>lowlimit){
324 AliError(
"Wrong mass limits: upper value should be larger than lower one");
330 Double_t mass=TDatabasePDG::Instance()->GetParticle(TMath::Abs(pdg))->Mass();
338 printf(
"AnalysisTaskSEDvsMultiplicity_0::Init() \n");
343 if(
fisPPbData){ AliFatal(
"Nch weights can only be used with MC and data histogram in pPb");
return; }
356 copycut->SetName(
"AnalysisCutsDplus");
360 copycut->SetName(
"AnalysisCutsDzero");
364 copycut->SetName(
"AnalysisCutsDStar");
368 copycut->SetName(
"AnalysisCutsDs");
373 copycut->SetName(
"AnalysisCutsLc2pK0S");
377 copycut->SetName(
"LctopKpiProdCuts");
396 period[0]=
"LHC16qt_1stBunch";
397 period[1]=
"LHC16qt_2ndBunch";
398 period[2]=
"LHC16qt_3rdBunch";
399 period[3]=
"LHC16qt_4thBunch";
411 for(
Int_t i=0; i<nProfiles; i++){
414 hprof->SetName(Form(
"ProfileTrkVsZvtx%s\n",period[i].
Data()));
429 if(fDebug > 1) printf(
"AnalysisTaskSEDvsMultiplicity::UserCreateOutputObjects() \n");
434 fOutput->SetName(
"OutputHistos");
436 Int_t nMultBins = 200;
439 Int_t nMultBinsNtrk = nMultBins;
440 Float_t lastMultBinNtrk = lastMultBin;
441 Int_t nMultBinsV0 = 400;
443 const char *estimatorName=
"tracklets";
446 lastMultBinNtrk = 374.5;
447 nMultBins = nMultBinsNtrk;
448 lastMultBin = lastMultBinNtrk;
451 nMultBins = nMultBinsV0;
452 lastMultBin = lastMultBinV0;
453 estimatorName =
"vzero";
456 fHistNtrUnCorrPSSel =
new TH1F(
"hNtrUnCorrPSSel",Form(
"Uncorrected %s multiplicity for PS selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
457 fHistNtrUnCorrPSTrigSel =
new TH1F(
"hNtrUnCorrPSTrigSel",Form(
"Uncorrected %s multiplicity for PS + trigger name selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
458 fHistNtrUnCorrPSTrigPileUpSel =
new TH1F(
"hNtrUnCorrPSTrigPileUpSel",Form(
"Uncorrected %s multiplicity for PS + trigger name + pileup selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
459 fHistNtrUnCorrPSTrigPileUpVtxSel =
new TH1F(
"hNtrUnCorrPSTrigPileUpVtxSel",Form(
"Uncorrected %s multiplicity for PS + trigger name + pileup + with-vertex selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
460 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);
461 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);
462 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);
463 fHistNtrUnCorrEvSel =
new TH1F(
"hNtrUnCorrEvSel",Form(
"Uncorrected %s multiplicity for selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
464 fHistNtrUnCorrEvWithCand =
new TH1F(
"hNtrUnCorrEvWithCand",Form(
"Uncorrected %s multiplicity for events with D candidates; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
465 fHistNtrUnCorrEvWithD =
new TH1F(
"hNtrUnCorrEvWithD",Form(
"Uncorrected %s multiplicity for events with D in mass region ; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
466 fHistNtrCorrPSSel =
new TH1F(
"hNtrCorrPSSel",Form(
"Corrected %s multiplicity for PS selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
467 fHistNtrCorrEvSel =
new TH1F(
"hNtrCorrEvSel",Form(
"Corrected %s multiplicity for selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
468 fHistNtrCorrEvWithCand =
new TH1F(
"hNtrCorrEvWithCand", Form(
"%s multiplicity for events with D candidates; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
469 fHistNtrCorrEvWithD =
new TH1F(
"hNtrCorrEvWithD", Form(
"%s multiplicity for events with D in mass region ; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
472 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);
473 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);
474 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);
475 fHistNtrEtaV0AvsNtrEta1EvSel =
new TH2F(
"hNtrEtaV0AvsNtrEta1EvSel",
"Uncorrected Eta-V0A vs Eta1.0 (events selected); Ntracklets #eta<1.0; Multiplicity V0A",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsV0,firstMultBin,lastMultBinV0);
476 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);
477 fHistNtrEtaV0AvsV0AEqEvSel =
new TH2F(
"hNtrEtaV0AvsV0AEqEvSel",
"Corrected V0A vs corrected V0A-Equalized (events selected); Vzero-A; Vzero-A Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0);
478 fHistNtrEtaV0MvsV0MEqEvSel =
new TH2F(
"hNtrEtaV0MvsV0MEqEvSel",
"Corrected V0M vs corrected V0M-Equalized (events selected); Vzero-M; Vzero-M Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0);
479 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);
480 fHistMultCorrvsMultRawEvSel =
new TH2F(
"hMultCorrvsMultRawEvSel",Form(
"Corrected multiplicity vs uncorrected multiplicity (events selected); %s corrected; %s",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
482 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);
483 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);
484 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);
485 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);
486 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);
487 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);
488 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);
489 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);
490 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);
493 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);
494 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);
495 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);
496 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);
497 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);
498 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);
499 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);
500 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);
501 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);
504 fHistNtrVsZvtx =
new TH2F(
"hNtrVsZvtx",Form(
"N%s vs VtxZ; VtxZ;N_{%s};",estimatorName,estimatorName),300,-15,15,nMultBins,firstMultBin,lastMultBin);
505 fHistNtrCorrVsZvtx =
new TH2F(
"hNtrCorrVsZvtx",Form(
"N%s vs VtxZ; VtxZ;N_{%s};",estimatorName,estimatorName),300,-15,15,nMultBins,firstMultBin,lastMultBin);
507 fHistNtrVsNchMC =
new TH2F(
"hNtrVsNchMC",Form(
"N%s vs NchMC; Nch;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
508 fHistNtrCorrVsNchMC =
new TH2F(
"hNtrCorrVsNchMC",Form(
"N%s vs Nch; Nch;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
510 fHistNtrVsNchMCPrimary =
new TH2F(
"hNtrVsNchMCPrimary",Form(
"N%s vs Nch (Primary); Nch (Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
511 fHistNtrCorrVsNchMCPrimary =
new TH2F(
"hNtrCorrVsNchMCPrimary",Form(
"N%s vs Nch (Primary); Nch(Primary) ;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
513 fHistNtrVsNchMCPhysicalPrimary =
new TH2F(
"hNtrVsNchMCPhysicalPrimary",Form(
"N%s vs Nch (Physical Primary); Nch (Physical Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
514 fHistNtrCorrVsNchMCPhysicalPrimary =
new TH2F(
"hNtrCorrVsMCPhysicalPrimary",Form(
"N%s vs Nch (Physical Primary); Nch (Physical Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin);
516 fHistGenPrimaryParticlesInelGt0 =
new TH1F(
"hGenPrimaryParticlesInelGt0",
"Multiplcity of generated charged particles ; Nparticles ; Entries",nMultBins,firstMultBin,lastMultBin);
518 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);
591 fHistNEvents =
new TH1F(
"fHistNEvents",
"number of events ",11,-0.5,10.5);
592 fHistNEvents->GetXaxis()->SetBinLabel(1,
"nEvents total");
593 fHistNEvents->GetXaxis()->SetBinLabel(2,
"nEvents with Z vertex");
594 fHistNEvents->GetXaxis()->SetBinLabel(3,
"nEvents selected");
595 fHistNEvents->GetXaxis()->SetBinLabel(4,
"Rejected due to trigger");
596 fHistNEvents->GetXaxis()->SetBinLabel(5,
"Rejected due to phys sel");
597 fHistNEvents->GetXaxis()->SetBinLabel(6,
"Rejected due to vertex cuts");
598 fHistNEvents->GetXaxis()->SetBinLabel(7,
"Rejected due to pileup");
599 fHistNEvents->GetXaxis()->SetBinLabel(8,
"Total no. of candidate");
600 fHistNEvents->GetXaxis()->SetBinLabel(9,
"no. of cand wo bitmask");
601 fHistNEvents->GetXaxis()->SetBinLabel(10,
"D after cuts (No PID)");
602 fHistNEvents->GetXaxis()->SetBinLabel(11,
"D after cuts + PID)");
608 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.);
610 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.);
612 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.);
614 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.);
616 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.);
618 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.);
674 if (matchingAODdeltaAODlevel<0 || (matchingAODdeltaAODlevel==0 &&
fAODProtection==1)) {
681 TClonesArray *arrayCand = 0;
687 arrayName=
"Charm3Prong";
688 pdgDau[0]=211; pdgDau[1]=321; pdgDau[2]=211;
693 pdgDau[0]=211; pdgDau[1]=321; pdgDau[2]=0;
698 pdgDau[0]=321; pdgDau[1]=211; pdgDau[2]=0;
702 arrayName=
"Charm3Prong";
703 pdgDau[0]=321; pdgDau[1]=321; pdgDau[2]=211;
708 arrayName=
"CascadesHF";
709 pdgDau[0]=211; pdgDau[1]=211; pdgDau[2]=0;
713 arrayName=
"Charm3Prong";
714 pdgDau[0]=2212; pdgDau[1]=321; pdgDau[2]=211;
720 if(!aod && AODEvent() && IsStandardAOD()) {
726 AliAODHandler* aodHandler = (AliAODHandler*)
727 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
728 if(aodHandler->GetExtensions()) {
729 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
731 arrayCand=(TClonesArray*)aodFromExt->GetList()->FindObject(arrayName.Data());
734 arrayCand=(TClonesArray*)aod->GetList()->FindObject(arrayName.Data());
737 if(!aod || !arrayCand) {
738 printf(
"AliAnalysisTaskSEDvsMultiplicity::UserExec: Charm3Prong branch not found!\n");
743 Int_t runnumber = aod->GetRunNumber();
744 if(aod->GetTriggerMask()==0 &&
745 (runnumber>=195344 && runnumber<=195677)){
746 AliDebug(3,
"Event rejected because of null trigger mask");
754 if(!aod->GetPrimaryVertex()||TMath::Abs(aod->GetMagneticField())<0.001)
return;
760 Int_t countTreta1=0, countTreta03=0, countTreta05=0, countTreta16=0;
761 AliAODTracklets* tracklets=aod->GetTracklets();
762 Int_t nTr=tracklets->GetNumberOfTracklets();
763 for(
Int_t iTr=0; iTr<nTr; iTr++){
764 Double_t theta=tracklets->GetTheta(iTr);
765 Double_t eta=-TMath::Log(TMath::Tan(theta/2.));
766 if(eta>-0.3 && eta<0.3) countTreta03++;
767 if(eta>-0.5 && eta<0.5) countTreta05++;
768 if(eta>-1.0 && eta<1.0) countTreta1++;
769 if(eta>-1.6 && eta<1.6) countTreta16++;
773 Int_t vzeroMult=0, vzeroMultA=0, vzeroMultC=0;
774 Int_t vzeroMultEq=0, vzeroMultAEq=0, vzeroMultCEq=0;
775 AliAODVZERO *vzeroAOD = (AliAODVZERO*)aod->GetVZEROData();
777 vzeroMultA =
static_cast<Int_t>(vzeroAOD->GetMTotV0A());
778 vzeroMultC =
static_cast<Int_t>(vzeroAOD->GetMTotV0C());
779 vzeroMult = vzeroMultA + vzeroMultC;
782 vzeroMultEq = vzeroMultAEq + vzeroMultCEq;
785 Int_t countMult = countTreta1;
798 Double_t countTreta1corr=countTreta1;
800 AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
803 Bool_t isDataDrivenZvtxCorr=kTRUE;
805 Int_t vzeroMultACorr=vzeroMultA, vzeroMultCCorr=vzeroMultC, vzeroMultCorr=vzeroMult;
806 Int_t vzeroMultAEqCorr=vzeroMultAEq, vzeroMultCEqCorr=vzeroMultCEq, vzeroMultEqCorr=vzeroMultEq;
808 if(vtx1->GetNContributors()>0){
818 isDataDrivenZvtxCorr=kFALSE;
822 isDataDrivenZvtxCorr=kFALSE;
823 vzeroMultACorr =
static_cast<Int_t>(AliESDUtils::GetCorrV0A(vzeroMultA,zvtx));
824 vzeroMultCCorr =
static_cast<Int_t>(AliESDUtils::GetCorrV0C(vzeroMultC,zvtx));
825 vzeroMultCorr = vzeroMultACorr + vzeroMultCCorr;
826 vzeroMultAEqCorr =
static_cast<Int_t>(AliESDUtils::GetCorrV0A(vzeroMultAEq,zvtx));
827 vzeroMultCEqCorr =
static_cast<Int_t>( AliESDUtils::GetCorrV0C(vzeroMultCEq,zvtx));
828 vzeroMultEqCorr = vzeroMultAEqCorr + vzeroMultCEqCorr;
837 if(isVtxOk && isDataDrivenZvtxCorr){
869 if(!isEvTrigNameRejected){
871 if(!isEvPileUpRejected){
873 if(!isEvNoVtxRejected){
875 if(!isEvVtxContribRejected){
877 if(!isEvVtxRangeRejected){
879 if(!isEvCentralityRejected){
907 TClonesArray *arrayMC=0;
908 AliAODMCHeader *mcHeader=0;
915 arrayMC = (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
917 printf(
"AliAnalysisTaskSEDvsMultiplicity::UserExec: MC particles branch not found!\n");
921 mcHeader = (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
923 printf(
"AliAnalysisTaskSEDvsMultiplicity::UserExec: MC header branch not found!\n");
932 Int_t nChargedMCEta10=0, nChargedMCEta03=0, nChargedMCEta05=0, nChargedMCEta16=0, nChargedMCEtam37tm17=0, nChargedMCEta28t51=0;
933 Int_t nChargedMCPrimaryEta10=0, nChargedMCPrimaryEta03=0, nChargedMCPrimaryEta05=0, nChargedMCPrimaryEta16=0, nChargedMCPrimaryEtam37tm17=0, nChargedMCPrimaryEta28t51=0;
934 Int_t nChargedMCPhysicalPrimaryEta10=0, nChargedMCPhysicalPrimaryEta03=0, nChargedMCPhysicalPrimaryEta05=0, nChargedMCPhysicalPrimaryEta16=0, nChargedMCPhysicalPrimaryEtam37tm17=0, nChargedMCPhysicalPrimaryEta28t51=0;
935 for(
Int_t i=0; i<arrayMC->GetEntriesFast(); i++){
936 AliAODMCParticle *part=(AliAODMCParticle*)arrayMC->UncheckedAt(i);
939 Bool_t isPrim = part->IsPrimary();
940 Bool_t isPhysPrim = part->IsPhysicalPrimary();
942 if(eta>-0.3 && eta< 0.3) {
944 if(isPrim) nChargedMCPrimaryEta03++;
945 if(isPhysPrim) nChargedMCPhysicalPrimaryEta03++;
947 if(eta>-0.5 && eta< 0.5) {
949 if(isPrim) nChargedMCPrimaryEta05++;
950 if(isPhysPrim) nChargedMCPhysicalPrimaryEta05++;
952 if(eta>-1.0 && eta< 1.0) {
954 if(isPrim) nChargedMCPrimaryEta10++;
955 if(isPhysPrim) nChargedMCPhysicalPrimaryEta10++;
957 if(eta>-1.6 && eta< 1.6) {
959 if(isPrim) nChargedMCPrimaryEta16++;
960 if(isPhysPrim) nChargedMCPhysicalPrimaryEta16++;
962 if(eta>-3.7 && eta<-1.7) {
963 nChargedMCEtam37tm17++;
964 if(isPrim) nChargedMCPrimaryEtam37tm17++;
965 if(isPhysPrim) nChargedMCPhysicalPrimaryEtam37tm17++;
967 if(eta> 2.8 && eta< 5.1) {
968 nChargedMCEta28t51++;
969 if(isPrim) nChargedMCPrimaryEta28t51++;
970 if(isPhysPrim) nChargedMCPhysicalPrimaryEta28t51++;
974 Int_t nChargedMC=nChargedMCEta10;
975 Int_t nChargedMCPrimary=nChargedMCPrimaryEta10;
976 Int_t nChargedMCPhysicalPrimary=nChargedMCPhysicalPrimaryEta10;
982 Double_t tmpXweight=nChargedMCPhysicalPrimary;
985 if(tmpXweight<=0) tmpweight = 0.0;
990 tmpweight = pMC>0 ? pMeas/pMC : 0.;
992 nchWeight *= tmpweight;
993 AliDebug(2,Form(
"Using Nch weights, Mult=%f Weight=%f\n",tmpXweight,nchWeight));
1017 nChargedMC = nChargedMCEta16 - nChargedMCEta10;
1018 nChargedMCPrimary = nChargedMCPrimaryEta16 - nChargedMCPrimaryEta10;
1019 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEta16 - nChargedMCPhysicalPrimaryEta10;
1021 nChargedMC = nChargedMCEta05;
1022 nChargedMCPrimary = nChargedMCPrimaryEta05;
1023 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEta05;
1025 nChargedMC = nChargedMCEta03;
1026 nChargedMCPrimary = nChargedMCPrimaryEta03;
1027 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEta03;
1029 nChargedMC = nChargedMCEtam37tm17 + nChargedMCEta28t51;
1030 nChargedMCPrimary = nChargedMCPrimaryEtam37tm17 + nChargedMCPrimaryEta28t51;
1031 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEtam37tm17 + nChargedMCPhysicalPrimaryEta28t51;
1033 nChargedMC = nChargedMCEta28t51;
1034 nChargedMCPrimary = nChargedMCPrimaryEta28t51;
1035 nChargedMCPhysicalPrimary = nChargedMCPhysicalPrimaryEta28t51;
1039 if(nChargedMCPhysicalPrimary>0){
1055 Int_t nCand = arrayCand->GetEntriesFast();
1056 Int_t nSelectedNoPID=0,nSelectedPID=0,nSelectedInMassPeak=0;
1057 Double_t mD0PDG = TDatabasePDG::Instance()->GetParticle(421)->Mass();
1058 Double_t mDplusPDG = TDatabasePDG::Instance()->GetParticle(411)->Mass();
1059 Double_t mDstarPDG = TDatabasePDG::Instance()->GetParticle(413)->Mass();
1060 Double_t mDsPDG = TDatabasePDG::Instance()->GetParticle(431)->Mass();
1061 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
1064 UInt_t pdgDgDStartoD0pi[2]={421,211};
1067 UInt_t pdgDgLctopK0S[2]={2212,310};
1071 for (
Int_t iCand = 0; iCand < nCand; iCand++) {
1080 AliAODv0 * v0part = (AliAODv0*)dCascade->
Getv0();
1081 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
1097 if(!isFidAcc)
continue;
1118 if (
fPdgMeson != 431 && passTopolCuts==0)
continue;
1121 if(
fPdgMeson == 431 && passAllCuts==0)
continue;
1131 AliAODTrack *t = (AliAODTrack *)dCascade->
GetBachelor();
1133 if(t->HasPointOnITSLayer(0) && t->HasPointOnITSLayer(1)){
1134 if(multForCand>0) multForCand-=1;
1141 for(
Int_t iDau=0; iDau<nDau; iDau++){
1142 AliAODTrack *t = NULL;
1143 if(
fPdgMeson==413){ t = (AliAODTrack*)d0fromDstar->GetDaughter(iDau); }
1144 else{ t = (AliAODTrack*)d->GetDaughter(iDau); }
1146 if(t->HasPointOnITSLayer(0) && t->HasPointOnITSLayer(1)){
1147 if(multForCand>0) multForCand-=1;
1158 mass[0]=d->InvMass(nDau,pdgDau);
1160 if(TMath::Abs(mass[0]-mDplusPDG)<0.02) nSelectedInMassPeak++;
1162 UInt_t pdgdaughtersD0[2]={211,321};
1163 UInt_t pdgdaughtersD0bar[2]={321,211};
1164 mass[0]=d->InvMass(2,pdgdaughtersD0);
1165 mass[1]=d->InvMass(2,pdgdaughtersD0bar);
1166 if(TMath::Abs(mass[0]-mD0PDG)<0.02 || TMath::Abs(mass[1]-mD0PDG)<0.02 ) nSelectedInMassPeak++;
1171 if(TMath::Abs(mass[0]-(mDstarPDG-mD0PDG))<0.0015) nSelectedInMassPeak++;
1173 UInt_t pdgDsKKpi[3]={321,321,211};
1174 UInt_t pdgDspiKK[3]={211,321,321};
1175 mass[0]=d->InvMass(nDau,pdgDsKKpi);
1176 mass[1]=d->InvMass(nDau,pdgDspiKK);
1177 if(TMath::Abs(mass[0]-mDsPDG)<0.02 || TMath::Abs(mass[1]-mDsPDG)<0.02 ) nSelectedInMassPeak++;
1180 mass[0]=d->InvMass(2,pdgDgLctopK0S);
1182 if(TMath::Abs(mass[0]-mLcPDG)<0.02) nSelectedInMassPeak++;
1184 UInt_t pdgpKpi[3]={2212,321,211};
1185 UInt_t pdgpiKp[3]={211,321,2212};
1186 if(passTopolCuts==3 || passTopolCuts==1)mass[0]=d->InvMass(3,pdgpKpi);
1187 if(passTopolCuts>=2) mass[1]=d->InvMass(3,pdgpiKp);
1188 if(TMath::Abs(mass[0]-mLcPDG)<0.02) nSelectedInMassPeak++;
1192 for(
Int_t iHyp=0; iHyp<2; iHyp++){
1193 if(mass[iHyp]<0.)
continue;
1195 Double_t arrayForSparse[5]={invMass,ptCand,impparXY,dlen,multForCand};
1209 AliAODMCParticle *partD = (AliAODMCParticle*)arrayMC->At(labD);
1210 Int_t code=partD->GetPdgCode();
1211 if(
CheckOrigin(arrayMC,partD)==5) isPrimary=kFALSE;
1212 if(code<0 && iHyp==0) fillHisto=kFALSE;
1213 if(code>0 && iHyp==1) fillHisto=kFALSE;
1222 Double_t arrayForSparseTrue[5]={invMass,ptCand,trueImpParXY,dlen,multForCand};
1223 if(fillHisto && passAllCuts){
1240 if(iHyp==0 && !(passTopolCuts&1))
continue;
1241 if(iHyp==1 && !(passTopolCuts&2))
continue;
1247 if(iHyp==0 && !(passAllCuts&1))
continue;
1248 if(iHyp==1 && !(passAllCuts&2))
continue;
1251 if(iHyp==0 && !(passAllCuts&4))
continue;
1252 if(iHyp==1 && !(passAllCuts&8))
continue;
1255 if(iHyp==0 && !(passTopolCuts&1))
continue;
1256 if(iHyp==1 && !(passTopolCuts&2))
continue;
1260 aveMult+=multForCand;
1293 if(nSelectedPID>0) {
1308 if(nSelectedInMassPeak>0) {
1341 "Mass vs. pt vs.imppar - All",
1344 "Mass vs. pt vs.imppar - promptD",
1347 "Mass vs. pt vs.imppar - DfromB",
1350 "Mass vs. pt vs.true imppar -DfromB",
1353 "Mass vs. pt vs.imppar - backgr.",
1355 for(
Int_t i=0; i<5;i++){
1365 if(fDebug > 1) printf(
"AnalysisTaskSEDvsMultiplicity: Terminate() \n");
1369 printf(
"ERROR: fOutput not available\n");
1375 printf(
"ERROR: fHistNEvents not available\n");
1378 printf(
"Number of Analyzed Events = %d\n",(
Int_t)
fHistNEvents->GetBinContent(3));
1388 Int_t pdgGranma = 0;
1390 mother = mcPartCandidate->GetMother();
1392 Int_t abspdgGranma =0;
1397 AliAODMCParticle* mcGranma =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(mother));
1399 pdgGranma = mcGranma->GetPdgCode();
1400 abspdgGranma = TMath::Abs(pdgGranma);
1401 if ((abspdgGranma > 500 && abspdgGranma < 600) || (abspdgGranma > 5000 && abspdgGranma < 6000)){
1405 mother = mcGranma->GetMother();
1407 AliError(
"Failed casting the mother particle!");
1412 if(isFromB)
return 5;
1425 Int_t runNo =
event->GetRunNumber();
1431 if (runNo>195343 && runNo<195484) period = 0;
1432 else if (runNo>195528 && runNo<195678) period = 1;
1433 if (period < 0 || period > 1)
return 0;
1436 if ((runNo>=265499 && runNo<=265525) || (runNo>=265309 && runNo<=265387)) period = 0;
1437 else if (runNo == 265435) period = 1;
1438 else if (runNo>=265388 && runNo<=265427) period = 2;
1439 else if (runNo>=267163 && runNo<=267166) period = 3;
1440 if (period < 0 || period > 3)
return 0;
1444 if(runNo>114930 && runNo<117223) period = 0;
1445 if(runNo>119158 && runNo<120830) period = 1;
1446 if(runNo>122373 && runNo<126438) period = 2;
1447 if(runNo>127711 && runNo<130851) period = 3;
1448 if(period<0 || period>3)
return 0;
1463 Double_t nchbins[82]={0.50,1.50,2.50,3.50,4.50,5.50,6.50,7.50,8.50,9.50,
1464 10.50,11.50,12.50,13.50,14.50,15.50,16.50,17.50,18.50,19.50,
1465 20.50,21.50,22.50,23.50,24.50,25.50,26.50,27.50,28.50,29.50,
1466 30.50,31.50,32.50,33.50,34.50,35.50,36.50,37.50,38.50,39.50,
1467 40.50,41.50,42.50,43.50,44.50,45.50,46.50,47.50,48.50,49.50,
1468 50.50,51.50,52.50,53.50,54.50,55.50,56.50,57.50,58.50,59.50,
1469 60.50,62.50,64.50,66.50,68.50,70.50,72.50,74.50,76.50,78.50,
1470 80.50,82.50,84.50,86.50,88.50,90.50,92.50,94.50,96.50,98.50,
1472 Double_t pch[81]={0.062011,0.072943,0.070771,0.067245,0.062834,0.057383,0.051499,0.04591,0.041109,0.036954,
1473 0.03359,0.030729,0.028539,0.026575,0.024653,0.0229,0.021325,0.019768,0.018561,0.017187,
1474 0.01604,0.014836,0.013726,0.012576,0.011481,0.010393,0.009502,0.008776,0.008024,0.007452,
1475 0.006851,0.006428,0.00594,0.005515,0.005102,0.00469,0.004162,0.003811,0.003389,0.003071,
1476 0.002708,0.002422,0.002184,0.001968,0.00186,0.00165,0.001577,0.001387,0.001254,0.001118,
1477 0.001037,0.000942,0.000823,0.000736,0.000654,0.000579,0.000512,0.00049,0.00045,0.000355,
1478 0.000296,0.000265,0.000193,0.00016,0.000126,0.0000851, 0.0000676,0.0000537,0.0000426, 0.0000338,
1479 0.0000268,0.0000213,0.0000166,0.0000133,0.0000106,0.00000837,0.00000662, 0.00000524,0.00000414, 0.00000327,
1484 for(
Int_t i=0; i<81; i++){
1498 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
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
flag for Lc in K0sp decay
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
Bool_t fLctoV0
pdg code of analyzed meson
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)