]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/SPECTRA/ChargedHadrons/dNdPt/AlidNdPtAnalysis.cxx
modifications to run in centrality and multilicity bins (M.Knichel and J.Gronefeld)
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / dNdPt / AlidNdPtAnalysis.cxx
index 2cd82e54c9cf5fefbbfc21f67a036003b6181820..0e15ef195f2739557b643dae9c627e4089ad1a09 100644 (file)
 // - control histograms\r
 //\r
 // Author: J.Otwinowski 04/11/2008 \r
-// last change: 2011-04-04 by M.Knichel\r
+// last change: 2013-06-13 by M.Knichel\r
+//\r
+// meaning of different multiplicities:\r
+// multRec      : number of reconstructed tracks, after AcceptanceCuts and TrackCuts\r
+// multRecMult  : number of reconstructed tracks, after MultAcceptanceCuts and MultTrackCuts\r
+// multMB       : number of contributers to vertex\r
+// multTrueMC   : MC true mult, after MultAcceptanceCuts\r
+// mutlAll      : number of ESD tracks\r
+// mutlAcc      : number of ESD tracks after AcceptanceCuts\r
 //------------------------------------------------------------------------------\r
 \r
 #include "TH1.h"\r
@@ -142,6 +150,7 @@ ClassImp(AlidNdPtAnalysis)
   fRecEventHist(0),\r
   fRecTrackHist(0),\r
   fEventCount(0),\r
+  fMCPrimTrackHist(0),\r
 \r
   // Candle event histogram\r
   fRecCandleEventMatrix(0),\r
@@ -256,6 +265,7 @@ AlidNdPtAnalysis::AlidNdPtAnalysis(Char_t* name, Char_t* title): AlidNdPt(name,t
   fRecEventHist(0),\r
   fRecTrackHist(0),\r
   fEventCount(0),\r
+  fMCPrimTrackHist(0),\r
 \r
   // Candle event histogram\r
   fRecCandleEventMatrix(0),\r
@@ -371,6 +381,7 @@ AlidNdPtAnalysis::~AlidNdPtAnalysis() {
   if(fRecEventHist) delete fRecEventHist; fRecEventHist=0; \r
   if(fRecTrackHist) delete fRecTrackHist; fRecTrackHist=0; \r
   if(fEventCount) delete fEventCount; fEventCount=0;\r
+  if(fMCPrimTrackHist) delete fMCPrimTrackHist; fMCPrimTrackHist=0;\r
 \r
   //\r
   if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;\r
@@ -386,23 +397,21 @@ AlidNdPtAnalysis::~AlidNdPtAnalysis() {
 void AlidNdPtAnalysis::Init()\r
 {\r
     //define default binning\r
-    Double_t binsMultDefault[28] = {-0.5, 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5,\r
-                                     9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5,\r
-                                    19.5,20.5, 21.5, 22.5, 23.5, 24.5, 29.5, 149.5};\r
+    Double_t binsMultDefault[15] = {-0.5, 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5, 9.5, 10.5, 20.5, 50.5, 150.5};\r
     Double_t binsPtDefault[69] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.5,5.0,5.5,6.0,6.5,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,40.0,45.0,50.0};\r
     Double_t binsPtCorrDefault[37] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,3.0,4.0,50.0};    \r
     Double_t binsEtaDefault[31] = {-1.5,-1.4,-1.3,-1.2,-1.1,-1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5};\r
     Double_t binsZvDefault[13] = {-30.,-25.,-20.,-15.,-10.,-5.,0.,5.,10.,15.,20.,25.,30.};\r
 \r
    // if no binning is set, use the default\r
-   if (!fBinsMult)   { SetBinsMult(27,binsMultDefault); }\r
+   if (!fBinsMult)   { SetBinsMult(14,binsMultDefault); }\r
    if (!fBinsPt)     { SetBinsPt(68,binsPtDefault); }\r
    if (!fBinsPtCorr) { SetBinsPtCorr(36,binsPtCorrDefault); }\r
    if (!fBinsEta)    { SetBinsEta(30,binsEtaDefault); }\r
    if (!fBinsZv)     { SetBinsZv(12,binsZvDefault); }   \r
   \r
   //Int_t binsTrackMatrix[3]={zvNbins,ptNbins,etaNbins};\r
-  Int_t binsTrackEventCorrMatrix[3]={fZvNbins,fPtCorrNbins,fEtaNbins};\r
+  Int_t binsTrackEventCorrMatrix[4]={fZvNbins,fPtCorrNbins,fEtaNbins,fMultNbins};\r
 \r
   //\r
   // Generic histograms to be corrected\r
@@ -423,7 +432,7 @@ void AlidNdPtAnalysis::Init()
  // Double_t minTrackHist[4]={-25.,0.,-1.5,-0.5}; \r
  // Double_t maxTrackHist[4]={25.,50.,1.5,149.5}; \r
 \r
-  fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta:multRec",4,binsTrackHist); //,minTrackHist,maxTrackHist);\r
+  fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta:multRecMult",4,binsTrackHist); //,minTrackHist,maxTrackHist);\r
   fRecTrackHist->SetBinEdges(0,fBinsZv);\r
   fRecTrackHist->SetBinEdges(1,fBinsPt);\r
   fRecTrackHist->SetBinEdges(2,fBinsEta);\r
@@ -431,21 +440,36 @@ void AlidNdPtAnalysis::Init()
   fRecTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
   fRecTrackHist->GetAxis(1)->SetTitle("p_{T} (GeV/c)");\r
   fRecTrackHist->GetAxis(2)->SetTitle("#eta");\r
-  fRecTrackHist->GetAxis(3)->SetTitle("multiplicity MB");\r
+  fRecTrackHist->GetAxis(3)->SetTitle("multiplicity (multCuts)");\r
   fRecTrackHist->Sumw2();\r
 \r
+    Int_t binsMCPrimTrackHist[4]={fZvNbins,fPtNbins,fEtaNbins,fMultNbins};\r
+ // Double_t minTrackHist[4]={-25.,0.,-1.5,-0.5}; \r
+ // Double_t maxTrackHist[4]={25.,50.,1.5,149.5}; \r
+\r
+  fMCPrimTrackHist = new THnSparseF("fMCPrimTrackHist","Zv:mcpT:mceta:multTrueMC",4,binsMCPrimTrackHist); \r
+  fMCPrimTrackHist->SetBinEdges(0,fBinsZv);\r
+  fMCPrimTrackHist->SetBinEdges(1,fBinsPt);\r
+  fMCPrimTrackHist->SetBinEdges(2,fBinsEta);\r
+  fMCPrimTrackHist->SetBinEdges(3,fBinsMult);\r
+  fMCPrimTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
+  fMCPrimTrackHist->GetAxis(1)->SetTitle("MC p_{T} (GeV/c)");\r
+  fMCPrimTrackHist->GetAxis(2)->SetTitle("#eta (MC)");\r
+  fMCPrimTrackHist->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
+  fMCPrimTrackHist->Sumw2();  \r
+\r
   //\r
   // rec. vs MC correlation matrices\r
   //\r
   Int_t binsMultTrueEventMatrix[3]={fMultNbins,fMultNbins,fMultNbins};\r
 //   Double_t minMultTrueEventMatrix[3]={-0.5,-0.5,-0.5}; \r
 //   Double_t maxMultTrueEventMatrix[3]={149.5,149.5,149.5}; \r
-  fEventMultCorrelationMatrix = new THnSparseF("fEventMultCorrelationMatrix","mult:true_mult:multMB",3,binsMultTrueEventMatrix); //,minMultTrueEventMatrix,maxMultTrueEventMatrix);\r
+  fEventMultCorrelationMatrix = new THnSparseF("fEventMultCorrelationMatrix","multRecMult:multTrueMC:multMB",3,binsMultTrueEventMatrix); //,minMultTrueEventMatrix,maxMultTrueEventMatrix);\r
   fEventMultCorrelationMatrix->SetBinEdges(0,fBinsMult);\r
   fEventMultCorrelationMatrix->SetBinEdges(1,fBinsMult);\r
   fEventMultCorrelationMatrix->SetBinEdges(2,fBinsMult);\r
-  fEventMultCorrelationMatrix->GetAxis(0)->SetTitle("track multiplicity");\r
-  fEventMultCorrelationMatrix->GetAxis(1)->SetTitle("true multiplicity");\r
+  fEventMultCorrelationMatrix->GetAxis(0)->SetTitle("multiplicity (multCuts)");\r
+  fEventMultCorrelationMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fEventMultCorrelationMatrix->GetAxis(2)->SetTitle("MB multiplicity");\r
   fEventMultCorrelationMatrix->Sumw2();\r
   \r
@@ -466,260 +490,290 @@ void AlidNdPtAnalysis::Init()
 //   Double_t minEventMatrix[2]={-25.,-0.5}; \r
 //   Double_t maxEventMatrix[2]={25.,149.5}; \r
 \r
-  fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fGenEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenEventMatrix->SetBinEdges(1,fBinsMult);\r
   fGenEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fGenEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fGenEventMatrix->Sumw2();\r
   \r
-  fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fGenSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenSDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fGenSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fGenSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fGenSDEventMatrix->Sumw2();\r
   \r
-  fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fGenDDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenDDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fGenDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fGenDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fGenDDEventMatrix->Sumw2();\r
   \r
-  fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fGenNDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenNDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fGenNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fGenNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fGenNDEventMatrix->Sumw2();\r
 \r
-  fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fGenNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fGenNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fGenNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fGenNSDEventMatrix->Sumw2();\r
 \r
   //\r
-  fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fTriggerEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerEventMatrix->SetBinEdges(1,fBinsMult);\r
   fTriggerEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fTriggerEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fTriggerEventMatrix->Sumw2();\r
 \r
-  fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fTriggerSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerSDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fTriggerSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fTriggerSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fTriggerSDEventMatrix->Sumw2();\r
   \r
-  fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fTriggerDDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerDDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fTriggerDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fTriggerDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fTriggerDDEventMatrix->Sumw2();\r
   \r
-  fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fTriggerNDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerNDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fTriggerNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fTriggerNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fTriggerNDEventMatrix->Sumw2();\r
  \r
-  fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fTriggerNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fTriggerNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fTriggerNSDEventMatrix->Sumw2();\r
  \r
   //\r
-  fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fRecEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecEventMatrix->SetBinEdges(1,fBinsMult);\r
   fRecEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fRecEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fRecEventMatrix->Sumw2();\r
 \r
-  fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fRecSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecSDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fRecSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fRecSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fRecSDEventMatrix->Sumw2();\r
   \r
-  fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fRecDDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecDDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fRecDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fRecDDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fRecDDEventMatrix->Sumw2();\r
   \r
-  fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fRecNDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecNDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fRecNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fRecNDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fRecNDEventMatrix->Sumw2();\r
  \r
-  fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fRecNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecNSDEventMatrix->SetBinEdges(1,fBinsMult);\r
   fRecNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fRecNSDEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fRecNSDEventMatrix->Sumw2();\r
 \r
-  fRecCandleEventMatrix = new THnSparseF("fRecCandleEventMatrix","mcZv:multMB",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
+  fRecCandleEventMatrix = new THnSparseF("fRecCandleEventMatrix","mcZv:multTrueMC",2,binsEventMatrix); //,minEventMatrix,maxEventMatrix);\r
   fRecCandleEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecCandleEventMatrix->SetBinEdges(1,fBinsMult);\r
   fRecCandleEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecCandleEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fRecCandleEventMatrix->GetAxis(1)->SetTitle("true multiplicity (MC)");\r
   fRecCandleEventMatrix->Sumw2();\r
 \r
   // \r
   // track to event corrections\r
   //\r
 \r
-  fGenTrackEventMatrix = new THnSparseF("fGenTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fGenTrackEventMatrix = new THnSparseF("fGenTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fGenTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fGenTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fGenTrackEventMatrix->SetBinEdges(3,fBinsMult);\r
   fGenTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fGenTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fGenTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fGenTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fGenTrackEventMatrix->Sumw2();\r
 \r
-  fGenTrackSDEventMatrix = new THnSparseF("fGenTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fGenTrackSDEventMatrix = new THnSparseF("fGenTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fGenTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fGenTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fGenTrackSDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fGenTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fGenTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fGenTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fGenTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fGenTrackSDEventMatrix->Sumw2();\r
 \r
-  fGenTrackDDEventMatrix = new THnSparseF("fGenTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fGenTrackDDEventMatrix = new THnSparseF("fGenTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fGenTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fGenTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fGenTrackDDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fGenTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fGenTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fGenTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fGenTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fGenTrackDDEventMatrix->Sumw2();\r
 \r
-  fGenTrackNDEventMatrix = new THnSparseF("fGenTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fGenTrackNDEventMatrix = new THnSparseF("fGenTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fGenTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fGenTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fGenTrackNDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fGenTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fGenTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fGenTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fGenTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fGenTrackNDEventMatrix->Sumw2();\r
 \r
-  fGenTrackNSDEventMatrix = new THnSparseF("fGenTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fGenTrackNSDEventMatrix = new THnSparseF("fGenTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fGenTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fGenTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fGenTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fGenTrackNSDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fGenTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fGenTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fGenTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fGenTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fGenTrackNSDEventMatrix->Sumw2();\r
 \r
 \r
   //\r
-  fTriggerTrackEventMatrix = new THnSparseF("fTriggerTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fTriggerTrackEventMatrix = new THnSparseF("fTriggerTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fTriggerTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fTriggerTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fTriggerTrackEventMatrix->SetBinEdges(3,fBinsMult);\r
   fTriggerTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fTriggerTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fTriggerTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fTriggerTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fTriggerTrackEventMatrix->Sumw2();\r
 \r
-  fTriggerTrackSDEventMatrix = new THnSparseF("fTriggerTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fTriggerTrackSDEventMatrix = new THnSparseF("fTriggerTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fTriggerTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fTriggerTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fTriggerTrackSDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fTriggerTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fTriggerTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fTriggerTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fTriggerTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fTriggerTrackSDEventMatrix->Sumw2();\r
 \r
-  fTriggerTrackDDEventMatrix = new THnSparseF("fTriggerTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fTriggerTrackDDEventMatrix = new THnSparseF("fTriggerTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fTriggerTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fTriggerTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fTriggerTrackDDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fTriggerTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fTriggerTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fTriggerTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fTriggerTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fTriggerTrackDDEventMatrix->Sumw2();\r
 \r
-  fTriggerTrackNDEventMatrix = new THnSparseF("fTriggerTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fTriggerTrackNDEventMatrix = new THnSparseF("fTriggerTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fTriggerTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fTriggerTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fTriggerTrackNDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fTriggerTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fTriggerTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fTriggerTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fTriggerTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fTriggerTrackNDEventMatrix->Sumw2();\r
 \r
-  fTriggerTrackNSDEventMatrix = new THnSparseF("fTriggerTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fTriggerTrackNSDEventMatrix = new THnSparseF("fTriggerTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fTriggerTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fTriggerTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fTriggerTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fTriggerTrackNSDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fTriggerTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fTriggerTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fTriggerTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fTriggerTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fTriggerTrackNSDEventMatrix->Sumw2();\r
 \r
   //\r
-  fRecTrackEventMatrix = new THnSparseF("fRecTrackEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fRecTrackEventMatrix = new THnSparseF("fRecTrackEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fRecTrackEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecTrackEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fRecTrackEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fRecTrackEventMatrix->SetBinEdges(3,fBinsMult);\r
   fRecTrackEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fRecTrackEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fRecTrackEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fRecTrackEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fRecTrackEventMatrix->Sumw2();\r
 \r
-  fRecTrackSDEventMatrix = new THnSparseF("fRecTrackSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fRecTrackSDEventMatrix = new THnSparseF("fRecTrackSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fRecTrackSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecTrackSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fRecTrackSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fRecTrackSDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fRecTrackSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fRecTrackSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fRecTrackSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fRecTrackSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fRecTrackSDEventMatrix->Sumw2();\r
 \r
-  fRecTrackDDEventMatrix = new THnSparseF("fRecTrackDDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fRecTrackDDEventMatrix = new THnSparseF("fRecTrackDDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fRecTrackDDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecTrackDDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fRecTrackDDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fRecTrackDDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fRecTrackDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fRecTrackDDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fRecTrackDDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fRecTrackDDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fRecTrackDDEventMatrix->Sumw2();\r
 \r
-  fRecTrackNDEventMatrix = new THnSparseF("fRecTrackNDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fRecTrackNDEventMatrix = new THnSparseF("fRecTrackNDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fRecTrackNDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecTrackNDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fRecTrackNDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fRecTrackNDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fRecTrackNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fRecTrackNDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fRecTrackNDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fRecTrackNDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fRecTrackNDEventMatrix->Sumw2();\r
 \r
-  fRecTrackNSDEventMatrix = new THnSparseF("fRecTrackNSDEventMatrix","mcZv:mcPt:mcEta",3,binsTrackEventCorrMatrix);\r
+  fRecTrackNSDEventMatrix = new THnSparseF("fRecTrackNSDEventMatrix","mcZv:mcPt:mcEta:multTrueMC",4,binsTrackEventCorrMatrix);\r
   fRecTrackNSDEventMatrix->SetBinEdges(0,fBinsZv);\r
   fRecTrackNSDEventMatrix->SetBinEdges(1,fBinsPtCorr);\r
   fRecTrackNSDEventMatrix->SetBinEdges(2,fBinsEta);\r
+  fRecTrackNSDEventMatrix->SetBinEdges(3,fBinsMult);\r
   fRecTrackNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
   fRecTrackNSDEventMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
   fRecTrackNSDEventMatrix->GetAxis(2)->SetTitle("mcEta");\r
+  fRecTrackNSDEventMatrix->GetAxis(3)->SetTitle("true multiplicity (MC)");\r
   fRecTrackNSDEventMatrix->Sumw2();\r
 \r
   //\r
@@ -822,13 +876,13 @@ void AlidNdPtAnalysis::Init()
 //   Double_t minRecEventHist2[3]={-25.,-0.5,-0.5}; \r
 //   Double_t maxRecEventHist2[3]={25.,149.5,149.5}; \r
   \r
-  fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB:mult",3,binsRecEventHist2); //,minRecEventHist2,maxRecEventHist2);\r
+  fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB:multRecMult",3,binsRecEventHist2); //,minRecEventHist2,maxRecEventHist2);\r
   fRecEventHist2->SetBinEdges(0,fBinsZv);\r
   fRecEventHist2->SetBinEdges(1,fBinsMult);\r
   fRecEventHist2->SetBinEdges(2,fBinsMult);\r
   fRecEventHist2->GetAxis(0)->SetTitle("Zv (cm)");\r
   fRecEventHist2->GetAxis(1)->SetTitle("multiplicity MB");\r
-  fRecEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
+  fRecEventHist2->GetAxis(2)->SetTitle("multiplicity (multCuts)");\r
   fRecEventHist2->Sumw2();\r
 \r
   //\r
@@ -848,19 +902,19 @@ void AlidNdPtAnalysis::Init()
   Double_t minRecMCEventHist2[3]={-10.0*kFact,-10.0*kFact,0.0}; \r
   Double_t maxRecMCEventHist2[3]={10.0*kFact,10.0*kFact,149.50}; \r
 \r
-  fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","Xv-mcXv:Zv-mcZv:mult",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
+  fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","Xv-mcXv:Zv-mcZv:multMB",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
   fRecMCEventHist2->SetBinEdges(2,fBinsMult);  \r
   fRecMCEventHist2->GetAxis(0)->SetTitle("Xv-mcXv (cm)");\r
   fRecMCEventHist2->GetAxis(1)->SetTitle("Zv-mcZv (cm)");\r
-  fRecMCEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
+  fRecMCEventHist2->GetAxis(2)->SetTitle("multiplicity MB");\r
   fRecMCEventHist2->Sumw2();\r
 \r
   Int_t binsRecMCEventHist3[2]={fMultNbins,5};\r
   Double_t minRecMCEventHist3[2]={-0.5,0.0}; \r
   Double_t maxRecMCEventHist3[2]={149.50,5.0}; \r
-  fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","mult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
+  fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","multRecMult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
   fRecMCEventHist3->SetBinEdges(0,fBinsMult);    \r
-  fRecMCEventHist3->GetAxis(0)->SetTitle("multiplicity");\r
+  fRecMCEventHist3->GetAxis(0)->SetTitle("multiplicity (multCuts)");\r
   fRecMCEventHist3->GetAxis(1)->SetTitle("EventType");\r
   fRecMCEventHist3->Sumw2();\r
 \r
@@ -1033,6 +1087,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
   AlidNdPtEventCuts *evtCuts = GetEventCuts(); \r
   AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); \r
   AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); \r
+  AlidNdPtAcceptanceCuts *multAccCuts = GetMultAcceptanceCuts(); \r
 \r
   if(!evtCuts || !accCuts  || !esdTrackCuts) {\r
     AliDebug(AliLog::kError, "cuts not available");\r
@@ -1135,7 +1190,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
 \r
     // multipliticy of all MC primary tracks\r
     // in Zv, pt and eta ranges)\r
-    multMCTrueTracks = AlidNdPtHelper::GetMCTrueTrackMult(mcEvent,evtCuts,accCuts);\r
+   multMCTrueTracks = AlidNdPtHelper::GetMCTrueTrackMult(mcEvent,evtCuts,multAccCuts);\r
 \r
   } // end bUseMC\r
 \r
@@ -1218,6 +1273,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
 \r
 \r
   // check event cuts\r
+  Int_t multRecMult=0;\r
   if(isEventOK && isEventTriggered && isEventSelected)\r
   {\r
     // get all charged tracks\r
@@ -1229,7 +1285,6 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
     \r
 \r
     // calculate mult of reconstructed tracks\r
-    Int_t multRecTemp=0;\r
     for(Int_t i=0; i<entries;++i) \r
     {\r
       AliESDtrack *track = (AliESDtrack*)allChargedTracks->At(i);\r
@@ -1245,9 +1300,9 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
       if(GetParticleMode() == AlidNdPtHelper::kMinus && track->Charge() > 0) \r
         continue;\r
 \r
-      if(esdTrackCuts->AcceptTrack(track)) \r
+      if(GetMultTrackCuts()->AcceptTrack(track)) \r
       {\r
-          if(accCuts->AcceptTrack(track)) multRecTemp++;\r
+          if(GetMultAcceptanceCuts()->AcceptTrack(track)) multRecMult++;\r
       }  \r
     }\r
 \r
@@ -1269,7 +1324,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
       if(GetParticleMode() == AlidNdPtHelper::kMinus && track->Charge() > 0) \r
         continue;\r
 \r
-      FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks, multRecTemp); \r
+      FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks, multRecMult); \r
       labelsAll[multAll] = TMath::Abs(track->GetLabel());\r
       multAll++;\r
      \r
@@ -1374,7 +1429,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
             track->Set(cParam.GetX(),cParam.GetAlpha(),cParam.GetParameter(),cParam.GetCovariance());\r
 \r
              if(accCuts->AcceptTrack(track)) {\r
-               FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecTemp); \r
+               FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecMult); \r
               labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
               multRec++;\r
             }  \r
@@ -1382,7 +1437,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
           else {\r
              if(accCuts->AcceptTrack(track)) \r
             {\r
-               FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecTemp); \r
+               FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecMult); \r
               labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
               multRec++;\r
             }\r
@@ -1397,7 +1452,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
      Double_t vRecEventHist1[3] = {vtxESD->GetXv(),vtxESD->GetYv(),vtxESD->GetZv()};\r
      fRecEventHist1->Fill(vRecEventHist1);\r
 \r
-     Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRec};\r
+     Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRecMult};\r
      fRecEventHist2->Fill(vRecEventHist2);\r
 \r
      // \r
@@ -1428,7 +1483,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
        }\r
      }\r
 \r
-     Double_t vMultTrueEventMatrix[3] = { multRec, multMCTrueTracks, multMBTracks};\r
+     Double_t vMultTrueEventMatrix[3] = { multRecMult, multMCTrueTracks, multMBTracks};\r
      if(isEventOK && isEventTriggered) {   \r
        if(TMath::Abs(vtxMC[2]) < 10.0) // both Rec. and corresponding MC events must be accepted\r
          fEventMultCorrelationMatrix->Fill(vMultTrueEventMatrix);\r
@@ -1439,7 +1494,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
      //\r
 \r
      // all inelastic\r
-     Double_t vEventMatrix[2] = {vtxMC[2],multMBTracks};\r
+     Double_t vEventMatrix[2] = {vtxMC[2],multMCTrueTracks};\r
      fGenEventMatrix->Fill(vEventMatrix); \r
      if(isEventTriggered) fTriggerEventMatrix->Fill(vEventMatrix);\r
      if(isEventOK && isEventTriggered) fRecEventMatrix->Fill(vEventMatrix);\r
@@ -1502,7 +1557,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
        // checked accepted\r
        if(accCuts->AcceptTrack(particle)) \r
        {\r
-         Double_t vTrackEventMatrix[3] = {vtxMC[2], particle->Pt(), particle->Eta()}; \r
+         Double_t vTrackEventMatrix[4] = {vtxMC[2], particle->Pt(), particle->Eta(),multMCTrueTracks}; \r
          fGenTrackEventMatrix->Fill(vTrackEventMatrix);\r
 \r
          if(evtType == AliPWG0Helper::kSD) {\r
@@ -1568,7 +1623,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
          Double_t vRecMCEventHist2[3] = {vtxESD->GetXv()-vtxMC[0],vtxESD->GetZv()-vtxMC[2],multMBTracks};\r
          fRecMCEventHist2->Fill(vRecMCEventHist2);\r
 \r
-         Double_t vRecMCEventHist3[2] = {multRec,evtType};\r
+         Double_t vRecMCEventHist3[2] = {multRecMult,evtType};\r
          fRecMCEventHist3->Fill(vRecMCEventHist3);\r
        }\r
 \r
@@ -1609,9 +1664,11 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
          // check accepted\r
          if(accCuts->AcceptTrack(particle)) \r
         {\r
-\r
-           if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetParticleMode()) ) \r
+           if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetParticleMode()) ) { \r
             fGenPrimTrackMatrix->Fill(vTrackMatrix);\r
+            Double_t vMCPrimTrackHist[4] = {vtxMC[2],particle->Pt(),particle->Eta(),multMCTrueTracks}; \r
+            fMCPrimTrackHist->Fill(vMCPrimTrackHist);\r
+           }        \r
 \r
           // fill control histograms\r
            if(fHistogramsOn) \r
@@ -1719,7 +1776,7 @@ void AlidNdPtAnalysis::FillHistograms(TObjArray *const allChargedTracks,Int_t *c
 }\r
 \r
 //_____________________________________________________________________________\r
-void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multMB)\r
+void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multRecMult)\r
 {\r
   //\r
   // Fill ESD track and MC histograms \r
@@ -1746,7 +1803,7 @@ void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *con
   Double_t values1[3] = {pt,eta,phi};    \r
   fRecTrackHist1[trackObj]->Fill(values1);\r
 \r
-  Double_t values[4] = {zv, pt,eta, multMB};     \r
+  Double_t values[4] = {zv, pt,eta, multRecMult};        \r
   if(trackObj == AlidNdPtHelper::kRecTracks) {\r
     fRecTrackHist->Fill(values);\r
   }\r
@@ -1976,6 +2033,7 @@ Long64_t AlidNdPtAnalysis::Merge(TCollection* const list)
     fMCMultRecTrackHist1->Add(entry->fMCMultRecTrackHist1);\r
     fRecTrackHist2->Add(entry->fRecTrackHist2);\r
     fEventCount->Add(entry->fEventCount);\r
+    fMCPrimTrackHist->Add(entry->fMCPrimTrackHist);\r
 \r
   count++;\r
   }\r