#include "AliNormalizationCounter.h"
#include "AliVertexingHFUtils.h"
#include "AliAODVZERO.h"
+#include "AliESDUtils.h"
ClassImp(AliAnalysisTaskSEDvsMultiplicity)
fHistNtrEta03vsNtrEta1EvSel(0),
fHistNtrEtaV0AvsNtrEta1EvSel(0),
fHistNtrEtaV0MvsNtrEta1EvSel(0),
+ fHistNtrEtaV0AvsV0AEqEvSel(0),
+ fHistNtrEtaV0MvsV0MEqEvSel(0),
fHistNtrCorrEta1vsNtrRawEta1EvSel(0),
+ fHistMultCorrvsMultRawEvSel(0),
fHistNtrEta16vsNtrEta1EvWithCand(0),
fHistNtrEta05vsNtrEta1EvWithCand(0),
fHistNtrEta03vsNtrEta1EvWithCand(0),
fHistNtrEtaV0AvsNtrEta1EvWithCand(0),
fHistNtrEtaV0MvsNtrEta1EvWithCand(0),
+ fHistNtrEtaV0AvsV0AEqEvWithCand(0),
+ fHistNtrEtaV0MvsV0MEqEvWithCand(0),
fHistNtrCorrEta1vsNtrRawEta1EvWithCand(0),
+ fHistMultCorrvsMultRawEvWithCand(0),
fHistNtrEta16vsNtrEta1EvWithD(0),
fHistNtrEta05vsNtrEta1EvWithD(0),
fHistNtrEta03vsNtrEta1EvWithD(0),
fHistNtrEtaV0AvsNtrEta1EvWithD(0),
fHistNtrEtaV0MvsNtrEta1EvWithD(0),
+ fHistNtrEtaV0AvsV0AEqEvWithD(0),
+ fHistNtrEtaV0MvsV0MEqEvWithD(0),
fHistNtrCorrEta1vsNtrRawEta1EvWithD(0),
+ fHistMultCorrvsMultRawEvWithD(0),
fHistNtrVsZvtx(0),
fHistNtrCorrVsZvtx(0),
fHistNtrVsNchMC(0),
fRefMult(9.26),
fPdgMeson(411),
fMultiplicityEstimator(kNtrk10),
- fMCPrimariesEstimator(kEta10)
+ fMCPrimariesEstimator(kEta10),
+ fDoVZER0ParamVertexCorr(0)
{
// Default constructor
for(Int_t i=0; i<5; i++) fHistMassPtImpPar[i]=0;
fHistNtrEta03vsNtrEta1EvSel(0),
fHistNtrEtaV0AvsNtrEta1EvSel(0),
fHistNtrEtaV0MvsNtrEta1EvSel(0),
+ fHistNtrEtaV0AvsV0AEqEvSel(0),
+ fHistNtrEtaV0MvsV0MEqEvSel(0),
fHistNtrCorrEta1vsNtrRawEta1EvSel(0),
+ fHistMultCorrvsMultRawEvSel(0),
fHistNtrEta16vsNtrEta1EvWithCand(0),
fHistNtrEta05vsNtrEta1EvWithCand(0),
fHistNtrEta03vsNtrEta1EvWithCand(0),
fHistNtrEtaV0AvsNtrEta1EvWithCand(0),
fHistNtrEtaV0MvsNtrEta1EvWithCand(0),
+ fHistNtrEtaV0AvsV0AEqEvWithCand(0),
+ fHistNtrEtaV0MvsV0MEqEvWithCand(0),
fHistNtrCorrEta1vsNtrRawEta1EvWithCand(0),
+ fHistMultCorrvsMultRawEvWithCand(0),
fHistNtrEta16vsNtrEta1EvWithD(0),
fHistNtrEta05vsNtrEta1EvWithD(0),
fHistNtrEta03vsNtrEta1EvWithD(0),
fHistNtrEtaV0AvsNtrEta1EvWithD(0),
fHistNtrEtaV0MvsNtrEta1EvWithD(0),
+ fHistNtrEtaV0AvsV0AEqEvWithD(0),
+ fHistNtrEtaV0MvsV0MEqEvWithD(0),
fHistNtrCorrEta1vsNtrRawEta1EvWithD(0),
+ fHistMultCorrvsMultRawEvWithD(0),
fHistNtrVsZvtx(0),
fHistNtrCorrVsZvtx(0),
fHistNtrVsNchMC(0),
fRefMult(9.26),
fPdgMeson(pdgMeson),
fMultiplicityEstimator(kNtrk10),
- fMCPrimariesEstimator(kEta10)
+ fMCPrimariesEstimator(kEta10),
+ fDoVZER0ParamVertexCorr(0)
{
//
// Standard constructor
Float_t lastMultBinNtrk = lastMultBin;
Int_t nMultBinsV0 = 400;
Float_t lastMultBinV0 = 799.5;
+ const char *estimatorName="tracklets";
if(fisPPbData) {
nMultBinsNtrk = 375;
lastMultBinNtrk = 374.5;
nMultBins = nMultBinsNtrk;
lastMultBin = lastMultBinNtrk;
}
- if(fMultiplicityEstimator==kVZERO || fMultiplicityEstimator==kVZEROA) {
+ if(fMultiplicityEstimator==kVZERO || fMultiplicityEstimator==kVZEROA || fMultiplicityEstimator==kVZEROEq || fMultiplicityEstimator==kVZEROAEq) {
nMultBins = nMultBinsV0;
lastMultBin = lastMultBinV0;
+ estimatorName = "vzero";
}
- fHistNtrUnCorrPSSel = new TH1F("hNtrUnCorrPSSel","Uncorrected tracklets multiplicity for PS selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrUnCorrPSTrigSel = new TH1F("hNtrUnCorrPSTrigSel","Uncorrected tracklets multiplicity for PS + trigger name selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrUnCorrPSTrigPileUpSel = new TH1F("hNtrUnCorrPSTrigPileUpSel","Uncorrected tracklets multiplicity for PS + trigger name + pileup selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrUnCorrPSTrigPileUpVtxSel = new TH1F("hNtrUnCorrPSTrigPileUpVtxSel","Uncorrected tracklets multiplicity for PS + trigger name + pileup + with-vertex selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrUnCorrPSTrigPileUpVtxContSel = new TH1F("hNtrUnCorrPSTrigPileUpVtxContSel","Uncorrected tracklets multiplicity for PS + trigger name + pileup + with-vertex-contrib selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrUnCorrPSTrigPileUpVtxRangeSel = new TH1F("hNtrUnCorrPSTrigPileUpVtxRangeSel","Uncorrected tracklets multiplicity for PS + trigger name + pileup + with-vertex-contrib-range selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrUnCorrPSTrigPileUpVtxRangeCentrSel = new TH1F("hNtrUnCorrPSTrigPileUpVtxRangeCentrSel","Uncorrected tracklets multiplicity for PS + trigger name + pileup + with-vertex-contrib-range + centrality selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrUnCorrEvSel = new TH1F("hNtrUnCorrEvSel","Uncorrected tracklets multiplicity for selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrUnCorrEvWithCand = new TH1F("hNtrUnCorrEvWithCand", "Uncorrected Tracklets multiplicity for events with D candidates; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);// Total multiplicity
- fHistNtrUnCorrEvWithD = new TH1F("hNtrUnCorrEvWithD","Uncorrected Tracklets multiplicity for events with D in mass region ; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin); //
- fHistNtrCorrPSSel = new TH1F("hNtrCorrPSSel","Corrected tracklets multiplicity for PS selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrCorrEvSel = new TH1F("hNtrCorrEvSel","Corrected tracklets multiplicity for selected events; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);
- fHistNtrCorrEvWithCand = new TH1F("hNtrCorrEvWithCand", "Tracklets multiplicity for events with D candidates; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin);// Total multiplicity
- fHistNtrCorrEvWithD = new TH1F("hNtrCorrEvWithD", "Tracklets multiplicity for events with D in mass region ; Tracklets ; Entries",nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrUnCorrPSSel = new TH1F("hNtrUnCorrPSSel",Form("Uncorrected %s multiplicity for PS selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
+ fHistNtrUnCorrPSTrigSel = new TH1F("hNtrUnCorrPSTrigSel",Form("Uncorrected %s multiplicity for PS + trigger name selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
+ fHistNtrUnCorrPSTrigPileUpSel = new TH1F("hNtrUnCorrPSTrigPileUpSel",Form("Uncorrected %s multiplicity for PS + trigger name + pileup selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
+ fHistNtrUnCorrPSTrigPileUpVtxSel = new TH1F("hNtrUnCorrPSTrigPileUpVtxSel",Form("Uncorrected %s multiplicity for PS + trigger name + pileup + with-vertex selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
+ 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);
+ 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);
+ 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);
+ fHistNtrUnCorrEvSel = new TH1F("hNtrUnCorrEvSel",Form("Uncorrected %s multiplicity for selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
+ fHistNtrUnCorrEvWithCand = new TH1F("hNtrUnCorrEvWithCand",Form("Uncorrected %s multiplicity for events with D candidates; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);// Total multiplicity
+ fHistNtrUnCorrEvWithD = new TH1F("hNtrUnCorrEvWithD",Form("Uncorrected %s multiplicity for events with D in mass region ; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrCorrPSSel = new TH1F("hNtrCorrPSSel",Form("Corrected %s multiplicity for PS selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
+ fHistNtrCorrEvSel = new TH1F("hNtrCorrEvSel",Form("Corrected %s multiplicity for selected events; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);
+ fHistNtrCorrEvWithCand = new TH1F("hNtrCorrEvWithCand", Form("%s multiplicity for events with D candidates; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin);// Total multiplicity
+ fHistNtrCorrEvWithD = new TH1F("hNtrCorrEvWithD", Form("%s multiplicity for events with D in mass region ; %s ; Entries",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin); //
if(fKeepCorrPlots){
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); //eta 1.6 vs eta 1.0 histogram
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); //eta 0.5 vs eta 1.0 histogram
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); //eta 0.3 vs eta 1.0 histogram
fHistNtrEtaV0AvsNtrEta1EvSel = new TH2F("hNtrEtaV0AvsNtrEta1EvSel","Uncorrected Eta-V0A vs Eta1.0 (events selected); Ntracklets #eta<1.0; Multiplicity V0A",nMultBinsNtrk,firstMultBin,lastMultBinNtrk,nMultBinsV0,firstMultBin,lastMultBinV0); //eta V0A vs eta 1.0 histogram
- 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); //eta V0M vs eta 1.0 histogram
+ 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); //eta V0M vs eta 1.0 histogram
+ fHistNtrEtaV0AvsV0AEqEvSel = new TH2F("hNtrEtaV0AvsV0AEqEvSel","Corrected V0A vs corrected V0A-Equalized (events selected); Vzero-A; Vzero-A Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0); // comparison V0A - V0Aeq
+ fHistNtrEtaV0MvsV0MEqEvSel = new TH2F("hNtrEtaV0MvsV0MEqEvSel","Corrected V0M vs corrected V0M-Equalized (events selected); Vzero-M; Vzero-M Equalized",nMultBinsV0,firstMultBin,lastMultBinV0,nMultBinsV0,firstMultBin,lastMultBinV0); // comparison V0M - V0Meq
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); //eta 1.6 vs eta 1.0 histogram
+ fHistMultCorrvsMultRawEvSel = new TH2F("hMultCorrvsMultRawEvSel",Form("Corrected multiplicity vs uncorrected multiplicity (events selected); %s corrected; %s",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); // corrected vs uncorrected multiplicity
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); //eta 1.6 vs eta 1.0 histogram
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); //eta 0.5 vs eta 1.0 histogram
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); //eta 0.3 vs eta 1.0 histogram
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); //eta V0A vs eta 1.0 histogram
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); //eta V0M vs eta 1.0 histogram
+ 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); // comparison V0A - V0Aeq
+ 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); // comparison V0M - V0Meq
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); //eta 1.6 vs eta 1.0 histogram
+ 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); // corrected vs uncorrected multiplicity
+
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); //eta 1.6 vs eta 1.0 histogram
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); //eta 0.5 vs eta 1.0 histogram
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); //eta 0.3 vs eta 1.0 histogram
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); //eta V0A vs eta 1.0 histogram
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); //eta V0M vs eta 1.0 histogram
+ 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); // comparison V0A - V0Aeq
+ 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); // comparison V0M - V0Meq
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); //eta 1.6 vs eta 1.0 histogram
+ 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); // corrected vs uncorrected multiplicity
+
}
- fHistNtrVsZvtx = new TH2F("hNtrVsZvtx","Ntracklet vs VtxZ; VtxZ;N_{tracklet};",300,-15,15,nMultBins,firstMultBin,lastMultBin); //
- fHistNtrCorrVsZvtx = new TH2F("hNtrCorrVsZvtx","Ntracklet vs VtxZ; VtxZ;N_{tracklet};",300,-15,15,nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrVsZvtx = new TH2F("hNtrVsZvtx",Form("N%s vs VtxZ; VtxZ;N_{%s};",estimatorName,estimatorName),300,-15,15,nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrCorrVsZvtx = new TH2F("hNtrCorrVsZvtx",Form("N%s vs VtxZ; VtxZ;N_{%s};",estimatorName,estimatorName),300,-15,15,nMultBins,firstMultBin,lastMultBin); //
- fHistNtrVsNchMC = new TH2F("hNtrVsNchMC","Ntracklet vs NchMC; Nch;N_{tracklet};",nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
- fHistNtrCorrVsNchMC = new TH2F("hNtrCorrVsNchMC","Ntracklet vs Nch; Nch;N_{tracklet};",nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrVsNchMC = new TH2F("hNtrVsNchMC",Form("N%s vs NchMC; Nch;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrCorrVsNchMC = new TH2F("hNtrCorrVsNchMC",Form("N%s vs Nch; Nch;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
- fHistNtrVsNchMCPrimary = new TH2F("hNtrVsNchMCPrimary","Ntracklet vs Nch (Primary); Nch (Primary);N_{tracklet};",nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
- fHistNtrCorrVsNchMCPrimary = new TH2F("hNtrCorrVsNchMCPrimary","Ntracklet vs Nch (Primary); Nch(Primary) ;N_{tracklet};",nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrVsNchMCPrimary = new TH2F("hNtrVsNchMCPrimary",Form("N%s vs Nch (Primary); Nch (Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrCorrVsNchMCPrimary = new TH2F("hNtrCorrVsNchMCPrimary",Form("N%s vs Nch (Primary); Nch(Primary) ;N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
- fHistNtrVsNchMCPhysicalPrimary = new TH2F("hNtrVsNchMCPhysicalPrimary","Ntracklet vs Nch (Physical Primary); Nch (Physical Primary);N_{tracklet};",nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
- fHistNtrCorrVsNchMCPhysicalPrimary = new TH2F("hNtrCorrVsMCPhysicalPrimary","Ntracklet vs Nch (Physical Primary); Nch (Physical Primary);N_{tracklet};",nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrVsNchMCPhysicalPrimary = new TH2F("hNtrVsNchMCPhysicalPrimary",Form("N%s vs Nch (Physical Primary); Nch (Physical Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
+ fHistNtrCorrVsNchMCPhysicalPrimary = new TH2F("hNtrCorrVsMCPhysicalPrimary",Form("N%s vs Nch (Physical Primary); Nch (Physical Primary);N_{%s};",estimatorName,estimatorName),nMultBins,firstMultBin,lastMultBin,nMultBins,firstMultBin,lastMultBin); //
fHistGenPrimaryParticlesInelGt0 = new TH1F("hGenPrimaryParticlesInelGt0","Multiplcity of generated charged particles ; Nparticles ; Entries",nMultBins,firstMultBin,lastMultBin);
fOutput->Add(fHistNtrEta03vsNtrEta1EvSel);
fOutput->Add(fHistNtrEtaV0AvsNtrEta1EvSel);
fOutput->Add(fHistNtrEtaV0MvsNtrEta1EvSel);
+ fOutput->Add(fHistNtrEtaV0AvsV0AEqEvSel);
+ fOutput->Add(fHistNtrEtaV0MvsV0MEqEvSel);
fOutput->Add(fHistNtrCorrEta1vsNtrRawEta1EvSel);
+ fOutput->Add(fHistMultCorrvsMultRawEvSel);
fOutput->Add(fHistNtrEta16vsNtrEta1EvWithCand);
fOutput->Add(fHistNtrEta05vsNtrEta1EvWithCand);
fOutput->Add(fHistNtrEta03vsNtrEta1EvWithCand);
fOutput->Add(fHistNtrEtaV0AvsNtrEta1EvWithCand);
fOutput->Add(fHistNtrEtaV0MvsNtrEta1EvWithCand);
+ fOutput->Add(fHistNtrEtaV0AvsV0AEqEvWithCand);
+ fOutput->Add(fHistNtrEtaV0MvsV0MEqEvWithCand);
fOutput->Add(fHistNtrCorrEta1vsNtrRawEta1EvWithCand);
+ fOutput->Add(fHistMultCorrvsMultRawEvWithCand);
fOutput->Add(fHistNtrEta16vsNtrEta1EvWithD);
fOutput->Add(fHistNtrEta05vsNtrEta1EvWithD);
fOutput->Add(fHistNtrEta03vsNtrEta1EvWithD);
fOutput->Add(fHistNtrEtaV0AvsNtrEta1EvWithD);
fOutput->Add(fHistNtrEtaV0MvsNtrEta1EvWithD);
+ fOutput->Add(fHistNtrEtaV0AvsV0AEqEvWithD);
+ fOutput->Add(fHistNtrEtaV0MvsV0MEqEvWithD);
fOutput->Add(fHistNtrCorrEta1vsNtrRawEta1EvWithD);
+ fOutput->Add(fHistMultCorrvsMultRawEvWithD);
}
fOutput->Add(fHistNtrVsZvtx);
fOutput->Add(fHistNtrCorrVsZvtx);
}
- Int_t vzeroMult=0;
- Int_t vzeroMultA=0;
+ Int_t vzeroMult=0, vzeroMultA=0, vzeroMultC=0;
+ Int_t vzeroMultEq=0, vzeroMultAEq=0, vzeroMultCEq=0;
AliAODVZERO *vzeroAOD = (AliAODVZERO*)aod->GetVZEROData();
if(vzeroAOD) {
- vzeroMultA = vzeroAOD->GetMTotV0A();
- vzeroMult = vzeroMultA + vzeroAOD->GetMTotV0C();
+ vzeroMultA = static_cast<Int_t>(vzeroAOD->GetMTotV0A());
+ vzeroMultC = static_cast<Int_t>(vzeroAOD->GetMTotV0C());
+ vzeroMult = vzeroMultA + vzeroMultC;
+ vzeroMultAEq = static_cast<Int_t>(AliVertexingHFUtils::GetVZEROAEqualizedMultiplicity(aod));
+ vzeroMultCEq = static_cast<Int_t>(AliVertexingHFUtils::GetVZEROCEqualizedMultiplicity(aod));
+ vzeroMultEq = vzeroMultAEq + vzeroMultCEq;
}
Int_t countMult = countTreta1;
else if(fMultiplicityEstimator==kNtrk10to16) { countMult = countTreta16 - countTreta1; }
else if(fMultiplicityEstimator==kVZERO) { countMult = vzeroMult; }
else if(fMultiplicityEstimator==kVZEROA) { countMult = vzeroMultA; }
+ else if(fMultiplicityEstimator==kVZEROEq) { countMult = vzeroMultEq; }
+ else if(fMultiplicityEstimator==kVZEROAEq) { countMult = vzeroMultAEq; }
fCounterU->StoreEvent(aod,fRDCutsAnalysis,fReadMC,countMult);
Double_t countTreta1corr=countTreta1;
Double_t countCorr=countMult;
AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
- // if(vtx1){
- // FIX ME: No correction to the VZERO !!
- if(vtx1 && (fMultiplicityEstimator!=kVZERO) && (fMultiplicityEstimator!=kVZEROA)){
+ // In case of VZERO multiplicity, consider the zvtx correction flag
+ // fDoVZER0ParamVertexCorr: 0= none, 1= usual d2h, 2=AliESDUtils
+ Bool_t isDataDrivenZvtxCorr=kTRUE;
+ Bool_t isVtxOk=kFALSE;
+ Int_t vzeroMultACorr=vzeroMultA, vzeroMultCCorr=vzeroMultC, vzeroMultCorr=vzeroMult;
+ Int_t vzeroMultAEqCorr=vzeroMultAEq, vzeroMultCEqCorr=vzeroMultCEq, vzeroMultEqCorr=vzeroMultEq;
+ if(vtx1){
if(vtx1->GetNContributors()>0){
fHistNEvents->Fill(1);
- TProfile* estimatorAvg = GetEstimatorHistogram(aod);
- if(estimatorAvg){
- countTreta1corr=AliVertexingHFUtils::GetCorrectedNtracklets(estimatorAvg,countTreta1,vtx1->GetZ(),fRefMult);
- countCorr=AliVertexingHFUtils::GetCorrectedNtracklets(estimatorAvg,countMult,vtx1->GetZ(),fRefMult);
+ isVtxOk=kTRUE;
+ }
+ }
+ if(isVtxOk){
+ if( (fMultiplicityEstimator==kVZERO) || (fMultiplicityEstimator==kVZEROA) ||
+ (fMultiplicityEstimator==kVZEROEq) || (fMultiplicityEstimator==kVZEROAEq) ){
+ if(fDoVZER0ParamVertexCorr==0){
+ // do not correct
+ isDataDrivenZvtxCorr=kFALSE;
+ } else if (fDoVZER0ParamVertexCorr==2){
+ // use AliESDUtils correction
+ Float_t zvtx = vtx1->GetZ();
+ isDataDrivenZvtxCorr=kFALSE;
+ vzeroMultACorr = static_cast<Int_t>(AliESDUtils::GetCorrV0A(vzeroMultA,zvtx));
+ vzeroMultCCorr = static_cast<Int_t>(AliESDUtils::GetCorrV0C(vzeroMultC,zvtx));
+ vzeroMultCorr = vzeroMultACorr + vzeroMultCCorr;
+ vzeroMultAEqCorr = static_cast<Int_t>(AliESDUtils::GetCorrV0A(vzeroMultAEq,zvtx));
+ vzeroMultCEqCorr =static_cast<Int_t>( AliESDUtils::GetCorrV0C(vzeroMultCEq,zvtx));
+ vzeroMultEqCorr = vzeroMultAEqCorr + vzeroMultCEqCorr;
+ if(fMultiplicityEstimator==kVZERO) { countCorr = vzeroMultCorr; }
+ else if(fMultiplicityEstimator==kVZEROA) { countCorr = vzeroMultACorr; }
+ else if(fMultiplicityEstimator==kVZEROEq) { countCorr = vzeroMultEqCorr; }
+ else if(fMultiplicityEstimator==kVZEROAEq) { countCorr = vzeroMultAEqCorr; }
}
}
}
+ // Data driven multiplicity z-vertex correction
+ if(isVtxOk && isDataDrivenZvtxCorr){
+ TProfile* estimatorAvg = GetEstimatorHistogram(aod);
+ if(estimatorAvg){
+ countTreta1corr=static_cast<Int_t>(AliVertexingHFUtils::GetCorrectedNtracklets(estimatorAvg,countTreta1,vtx1->GetZ(),fRefMult));
+ // vzeroMultACorr=static_cast<Int_t>(AliVertexingHFUtils::GetCorrectedNtracklets(estimatorAvg,vzeroMultA,vtx1->GetZ(),fRefMult));
+ // vzeroMultCorr= vzeroMultACorr + static_cast<Int_t>(AliVertexingHFUtils::GetCorrectedNtracklets(estimatorAvg,vzeroMultC,vtx1->GetZ(),fRefMult));
+ // vzeroMultAEqCorr=static_cast<Int_t>(AliVertexingHFUtils::GetCorrectedNtracklets(estimatorAvg,vzeroMultAEq,vtx1->GetZ(),fRefMult));
+ // vzeroMultEqCorr= vzeroMultAEqCorr + static_cast<Int_t>(AliVertexingHFUtils::GetCorrectedNtracklets(estimatorAvg,vzeroMultCEq,vtx1->GetZ(),fRefMult));
+ countCorr=static_cast<Int_t>(AliVertexingHFUtils::GetCorrectedNtracklets(estimatorAvg,countMult,vtx1->GetZ(),fRefMult));
+ }
+ }
Bool_t isEvSel=fRDCutsAnalysis->IsEventSelected(aod);
fHistNtrEta03vsNtrEta1EvSel->Fill(countTreta1,countTreta03);
fHistNtrEtaV0AvsNtrEta1EvSel->Fill(countTreta1,vzeroMultA);
fHistNtrEtaV0MvsNtrEta1EvSel->Fill(countTreta1,vzeroMult);
+ fHistNtrEtaV0AvsV0AEqEvSel->Fill(vzeroMultA,vzeroMultAEq);
+ fHistNtrEtaV0MvsV0MEqEvSel->Fill(vzeroMult,vzeroMultEq);
fHistNtrCorrEta1vsNtrRawEta1EvSel->Fill(countTreta1,countTreta1corr);
+ fHistMultCorrvsMultRawEvSel->Fill(countMult,countCorr);
}
if(vtx1){
fHistNtrVsZvtx->Fill(vtx1->GetZ(),countMult);
fHistNtrEta03vsNtrEta1EvWithCand->Fill(countTreta1,countTreta03);
fHistNtrEtaV0AvsNtrEta1EvWithCand->Fill(countTreta1,vzeroMultA);
fHistNtrEtaV0MvsNtrEta1EvWithCand->Fill(countTreta1,vzeroMult);
+ fHistNtrEtaV0AvsV0AEqEvWithCand->Fill(vzeroMultA,vzeroMultAEq);
+ fHistNtrEtaV0MvsV0MEqEvWithCand->Fill(vzeroMult,vzeroMultEq);
fHistNtrCorrEta1vsNtrRawEta1EvWithCand->Fill(countTreta1,countTreta1corr);
+ fHistMultCorrvsMultRawEvWithCand->Fill(countMult,countCorr);
}
}
if(nSelectedInMassPeak>0) {
fHistNtrEta03vsNtrEta1EvWithD->Fill(countTreta1,countTreta03);
fHistNtrEtaV0AvsNtrEta1EvWithD->Fill(countTreta1,vzeroMultA);
fHistNtrEtaV0MvsNtrEta1EvWithD->Fill(countTreta1,vzeroMult);
+ fHistNtrEtaV0AvsV0AEqEvWithD->Fill(vzeroMultA,vzeroMultAEq);
+ fHistNtrEtaV0MvsV0MEqEvWithD->Fill(vzeroMult,vzeroMultEq);
fHistNtrCorrEta1vsNtrRawEta1EvWithD->Fill(countTreta1,countTreta1corr);
+ fHistMultCorrvsMultRawEvWithD->Fill(countMult,countCorr);
}
}