]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/dNdPt/AlidNdPtAnalysis.cxx
removed duplications in AlidNdPtHelper and AliPWG0Helper and small changes
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtAnalysis.cxx
index d53815e4cb539131be3a7513ec2e49c428a43255..24957c6096d20b1f3db6e23709b370bb0e1367b7 100644 (file)
@@ -32,6 +32,8 @@
 #include "AlidNdPtEventCuts.h"\r
 #include "AlidNdPtAcceptanceCuts.h"\r
 \r
+#include "AliPWG0Helper.h"\r
+#include "AlidNdPtHelper.h"\r
 #include "AlidNdPtAnalysis.h"\r
 \r
 using namespace std;\r
@@ -336,96 +338,96 @@ 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:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fGenEventMatrix->SetBinEdges(0,binsZv);\r
   fGenEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fGenEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fGenEventMatrix->Sumw2();\r
   \r
-  fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fGenSDEventMatrix->SetBinEdges(0,binsZv);\r
   fGenSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fGenSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fGenSDEventMatrix->Sumw2();\r
   \r
-  fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fGenDDEventMatrix->SetBinEdges(0,binsZv);\r
   fGenDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenDDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fGenDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fGenDDEventMatrix->Sumw2();\r
   \r
-  fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fGenNDEventMatrix->SetBinEdges(0,binsZv);\r
   fGenNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenNDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fGenNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fGenNDEventMatrix->Sumw2();\r
 \r
-  fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fGenNSDEventMatrix->SetBinEdges(0,binsZv);\r
   fGenNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fGenNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fGenNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fGenNSDEventMatrix->Sumw2();\r
 \r
   //\r
-  fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fTriggerEventMatrix->SetBinEdges(0,binsZv);\r
   fTriggerEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fTriggerEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fTriggerEventMatrix->Sumw2();\r
 \r
-  fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fTriggerSDEventMatrix->SetBinEdges(0,binsZv);\r
   fTriggerSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fTriggerSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fTriggerSDEventMatrix->Sumw2();\r
   \r
-  fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fTriggerDDEventMatrix->SetBinEdges(0,binsZv);\r
   fTriggerDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerDDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fTriggerDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fTriggerDDEventMatrix->Sumw2();\r
   \r
-  fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fTriggerNDEventMatrix->SetBinEdges(0,binsZv);\r
   fTriggerNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerNDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fTriggerNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fTriggerNDEventMatrix->Sumw2();\r
  \r
-  fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fTriggerNSDEventMatrix->SetBinEdges(0,binsZv);\r
   fTriggerNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fTriggerNSDEventMatrix->Sumw2();\r
  \r
   //\r
-  fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fRecEventMatrix->SetBinEdges(0,binsZv);\r
   fRecEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fRecEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fRecEventMatrix->Sumw2();\r
 \r
-  fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fRecSDEventMatrix->SetBinEdges(0,binsZv);\r
   fRecSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fRecSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fRecSDEventMatrix->Sumw2();\r
   \r
-  fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fRecDDEventMatrix->SetBinEdges(0,binsZv);\r
   fRecDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecDDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fRecDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fRecDDEventMatrix->Sumw2();\r
   \r
-  fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fRecNDEventMatrix->SetBinEdges(0,binsZv);\r
   fRecNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecNDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fRecNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fRecNDEventMatrix->Sumw2();\r
  \r
-  fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+  fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
   fRecNSDEventMatrix->SetBinEdges(0,binsZv);\r
   fRecNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
-  fRecNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+  fRecNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
   fRecNSDEventMatrix->Sumw2();\r
 \r
   // \r
@@ -645,14 +647,15 @@ void AlidNdPtAnalysis::Init(){
   fRecEventHist1->Sumw2();\r
 \r
   //\r
-  Int_t binsRecEventHist2[2]={zvNbins,150};\r
-  Double_t minRecEventHist2[2]={-25.,-0.5}; \r
-  Double_t maxRecEventHist2[2]={25.,149.5}; \r
+  Int_t binsRecEventHist2[3]={zvNbins,150,150};\r
+  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",2,binsRecEventHist2,minRecEventHist2,maxRecEventHist2);\r
+  fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB:mult",3,binsRecEventHist2,minRecEventHist2,maxRecEventHist2);\r
   fRecEventHist2->SetBinEdges(0,binsZv);\r
   fRecEventHist2->GetAxis(0)->SetTitle("Zv (cm)");\r
-  fRecEventHist2->GetAxis(1)->SetTitle("multMB");\r
+  fRecEventHist2->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fRecEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
   fRecEventHist2->Sumw2();\r
 \r
   //\r
@@ -663,10 +666,10 @@ void AlidNdPtAnalysis::Init(){
   Double_t minRecMCEventHist1[3]={-10.0*kFact,-10.0*kFact,-10.0*kFact}; \r
   Double_t maxRecMCEventHist1[3]={10.0*kFact,10.0*kFact,10.0*kFact}; \r
    \r
-  fRecMCEventHist1 = new THnSparseF("fRecMCEventHist1","mcXv-Xv:mcYv-Yv:mcZv-Zv",3,binsRecMCEventHist1,minRecMCEventHist1,maxRecMCEventHist1);\r
-  fRecMCEventHist1->GetAxis(0)->SetTitle("mcXv-Xv (cm)");\r
-  fRecMCEventHist1->GetAxis(1)->SetTitle("mcYv-Yv (cm)");\r
-  fRecMCEventHist1->GetAxis(2)->SetTitle("mcZv-Zv (cm)");\r
+  fRecMCEventHist1 = new THnSparseF("fRecMCEventHist1","Xv-mcXv:Yv-mcYv:Zv-mcZv",3,binsRecMCEventHist1,minRecMCEventHist1,maxRecMCEventHist1);\r
+  fRecMCEventHist1->GetAxis(0)->SetTitle("Xv-mcXv (cm)");\r
+  fRecMCEventHist1->GetAxis(1)->SetTitle("Yv-mcYv (cm)");\r
+  fRecMCEventHist1->GetAxis(2)->SetTitle("Zv-mcZv (cm)");\r
   fRecMCEventHist1->Sumw2();\r
 \r
   //\r
@@ -674,17 +677,17 @@ 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","mcXv-Xv:mcZv-Zv:Mult",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
-  fRecMCEventHist2->GetAxis(0)->SetTitle("mcXv-Xv (cm)");\r
-  fRecMCEventHist2->GetAxis(1)->SetTitle("mcZv-Zv (cm)");\r
-  fRecMCEventHist2->GetAxis(2)->SetTitle("Mult");\r
+  fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","Xv-mcXv:Zv-mcZv:mult",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
+  fRecMCEventHist2->GetAxis(0)->SetTitle("Xv-mcXv (cm)");\r
+  fRecMCEventHist2->GetAxis(1)->SetTitle("Zv-mcZv (cm)");\r
+  fRecMCEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
   fRecMCEventHist2->Sumw2();\r
 \r
   Int_t binsRecMCEventHist3[2]={150,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->GetAxis(0)->SetTitle("Mult");\r
+  fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","mult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
+  fRecMCEventHist3->GetAxis(0)->SetTitle("multiplicity");\r
   fRecMCEventHist3->GetAxis(1)->SetTitle("EventType");\r
   fRecMCEventHist3->Sumw2();\r
 \r
@@ -810,12 +813,8 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
     AliDebug(AliLog::kError, "esdEvent not available");\r
     return;\r
   }\r
-  // trigger definition\r
-  Bool_t isEventTriggered = AlidNdPtHelper::IsEventTriggered(esdEvent->GetTriggerMask(), GetTrigger());\r
-  //if(!isEventTriggered) printf("no MB1 trigger ... \n");\r
-  //\r
 \r
-  // cuts\r
+  // get selection cuts\r
   AlidNdPtEventCuts *evtCuts = GetEventCuts(); \r
   AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); \r
   AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); \r
@@ -824,14 +823,20 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
     AliDebug(AliLog::kError, "cuts not available");\r
     return;\r
   }\r
-  //if(!evtCuts->IsTriggerRequired()) isEventTriggered = kTRUE;\r
+\r
+  // trigger selection\r
+  Bool_t isEventTriggered = kTRUE;\r
+  if(evtCuts->IsTriggerRequired())  {\r
+    isEventTriggered = AliPWG0Helper::IsEventTriggered(esdEvent->GetTriggerMask(), GetTrigger());\r
+  }\r
 \r
   // use MC information\r
   AliHeader* header = 0;\r
   AliGenEventHeader* genHeader = 0;\r
   AliStack* stack = 0;\r
   TArrayF vtxMC(3);\r
-  AlidNdPtHelper::MCProcessType evtType = AlidNdPtHelper::kInvalidProcess;\r
+  //AlidNdPtHelper::MCProcessType evtType = AlidNdPtHelper::kInvalidProcess;\r
+  AliPWG0Helper::MCProcessType evtType = AliPWG0Helper::kInvalidProcess;\r
 \r
   Int_t multMCTrueTracks = 0;\r
   if(IsUseMCInfo())\r
@@ -854,7 +859,8 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
       return;\r
     }\r
     // get event type (ND=0x1, DD=0x2, SD=0x4)\r
-    evtType = AlidNdPtHelper::GetEventProcessType(header);\r
+    //evtType = AlidNdPtHelper::GetEventProcessType(header);\r
+    evtType = AliPWG0Helper::GetEventProcessType(header);\r
     AliDebug(AliLog::kDebug+1, Form("Found process type %d", evtType));\r
 \r
     // get MC vertex\r
@@ -879,8 +885,10 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
   Bool_t isRecVertex = kFALSE;\r
   if(evtCuts->IsRecVertexRequired()) \r
   {\r
-    vtxESD = AlidNdPtHelper::GetVertex(esdEvent, evtCuts,  accCuts, esdTrackCuts, GetAnalysisMode(), kFALSE, kTRUE, kTRUE);\r
-    isRecVertex = AlidNdPtHelper::TestVertex(vtxESD, GetAnalysisMode(), kFALSE); // should be moved to AcceptEvent\r
+    Bool_t bRedoTPCVertex = evtCuts->IsRedoTPCVertex();\r
+    Bool_t bUseConstraints = evtCuts->IsUseBeamSpotConstraint();\r
+    vtxESD = AlidNdPtHelper::GetVertex(esdEvent,evtCuts,accCuts,esdTrackCuts,GetAnalysisMode(),kFALSE,bRedoTPCVertex,bUseConstraints); \r
+    isRecVertex = AlidNdPtHelper::TestRecVertex(vtxESD, GetAnalysisMode(), kFALSE);\r
   }\r
   if( IsUseMCInfo() && !evtCuts->IsRecVertexRequired() ) {\r
     vtxESD = new AliESDVertex(vtxMC[2],10.,genHeader->NProduced(),"smearMC");\r
@@ -916,7 +924,8 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
   if(isEventOK && isEventTriggered)\r
   {\r
     // get all charged tracks\r
-    allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,vtxESD,GetAnalysisMode());\r
+    //allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,vtxESD,GetAnalysisMode());\r
+    allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,GetAnalysisMode());\r
     if(!allChargedTracks) return;\r
 \r
     Int_t entries = allChargedTracks->GetEntries();\r
@@ -951,7 +960,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[2] = {vtxESD->GetZv(),multMBTracks};\r
+     Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRec};\r
      fRecEventHist2->Fill(vRecEventHist2);\r
    } \r
 \r
@@ -977,28 +986,32 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
      if(isEventOK && isEventTriggered) fRecEventMatrix->Fill(vEventMatrix);\r
 \r
      // single diffractive\r
-     if(evtType == AlidNdPtHelper::kSD) {\r
+     //if(evtType == AlidNdPtHelper::kSD) {\r
+     if(evtType == AliPWG0Helper::kSD) {\r
        fGenSDEventMatrix->Fill(vEventMatrix); \r
        if(isEventTriggered) fTriggerSDEventMatrix->Fill(vEventMatrix);\r
        if(isEventOK && isEventTriggered) fRecSDEventMatrix->Fill(vEventMatrix);\r
      }\r
 \r
      // double diffractive\r
-     if(evtType == AlidNdPtHelper::kDD) {\r
+     //if(evtType == AlidNdPtHelper::kDD) {\r
+     if(evtType == AliPWG0Helper::kDD) {\r
        fGenDDEventMatrix->Fill(vEventMatrix); \r
        if(isEventTriggered) fTriggerDDEventMatrix->Fill(vEventMatrix);\r
        if(isEventOK && isEventTriggered)  fRecDDEventMatrix->Fill(vEventMatrix);\r
      }\r
 \r
      // non diffractive\r
-     if(evtType == AlidNdPtHelper::kND) {\r
+     //if(evtType == AlidNdPtHelper::kND) {\r
+     if(evtType == AliPWG0Helper::kND) {\r
        fGenNDEventMatrix->Fill(vEventMatrix); \r
        if(isEventTriggered) fTriggerNDEventMatrix->Fill(vEventMatrix);\r
        if(isEventOK && isEventTriggered) fRecNDEventMatrix->Fill(vEventMatrix);\r
      }\r
 \r
      // non single diffractive\r
-     if(evtType != AlidNdPtHelper::kSD) {\r
+     //if(evtType != AlidNdPtHelper::kSD) {\r
+     if(evtType != AliPWG0Helper::kSD) {\r
        fGenNSDEventMatrix->Fill(vEventMatrix); \r
        if(isEventTriggered) fTriggerNSDEventMatrix->Fill(vEventMatrix);\r
        if(isEventOK && isEventTriggered) fRecNSDEventMatrix->Fill(vEventMatrix);\r
@@ -1036,16 +1049,16 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
          Double_t vTrackEventMatrix[3] = {vtxMC[2], particle->Pt(), particle->Eta()}; \r
          fGenTrackEventMatrix->Fill(vTrackEventMatrix);\r
 \r
-         if(evtType == AlidNdPtHelper::kSD) {\r
+         if(evtType == AliPWG0Helper::kSD) {\r
            fGenTrackSDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType == AlidNdPtHelper::kDD) {\r
+         if(evtType == AliPWG0Helper::kDD) {\r
            fGenTrackDDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType == AlidNdPtHelper::kND) {\r
+         if(evtType == AliPWG0Helper::kND) {\r
            fGenTrackNDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType != AlidNdPtHelper::kSD) {\r
+         if(evtType != AliPWG0Helper::kSD) {\r
            fGenTrackNSDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
 \r
@@ -1053,16 +1066,16 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
          if(!isEventTriggered) continue;  \r
 \r
          fTriggerTrackEventMatrix->Fill(vTrackEventMatrix);\r
-         if(evtType == AlidNdPtHelper::kSD) {\r
+         if(evtType == AliPWG0Helper::kSD) {\r
            fTriggerTrackSDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType == AlidNdPtHelper::kDD) {\r
+         if(evtType == AliPWG0Helper::kDD) {\r
            fTriggerTrackDDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType == AlidNdPtHelper::kND) {\r
+         if(evtType == AliPWG0Helper::kND) {\r
            fTriggerTrackNDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType != AlidNdPtHelper::kSD) {\r
+         if(evtType != AliPWG0Helper::kSD) {\r
            fTriggerTrackNSDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
 \r
@@ -1070,16 +1083,16 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
         if(!isEventOK) continue;  \r
 \r
          fRecTrackEventMatrix->Fill(vTrackEventMatrix);\r
-         if(evtType == AlidNdPtHelper::kSD) {\r
+         if(evtType == AliPWG0Helper::kSD) {\r
            fRecTrackSDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType == AlidNdPtHelper::kDD) {\r
+         if(evtType == AliPWG0Helper::kDD) {\r
            fRecTrackDDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType == AlidNdPtHelper::kND) {\r
+         if(evtType == AliPWG0Helper::kND) {\r
            fRecTrackNDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
-         if(evtType != AlidNdPtHelper::kSD) {\r
+         if(evtType != AliPWG0Helper::kSD) {\r
            fRecTrackNSDEventMatrix->Fill(vTrackEventMatrix);\r
         }\r
        }\r
@@ -1093,10 +1106,10 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
 \r
        // fill MC and rec event control histograms\r
        if(fHistogramsOn) {\r
-         Double_t vRecMCEventHist1[3] = {vtxMC[0]-vtxESD->GetXv(),vtxMC[1]-vtxESD->GetYv(),vtxMC[2]-vtxESD->GetZv()};\r
+         Double_t vRecMCEventHist1[3] = {vtxESD->GetXv()-vtxMC[0],vtxESD->GetYv()-vtxMC[1],vtxESD->GetZv()-vtxMC[2]};\r
          fRecMCEventHist1->Fill(vRecMCEventHist1);\r
 \r
-         Double_t vRecMCEventHist2[3] = {vtxMC[0]-vtxESD->GetXv(),vtxMC[2]-vtxESD->GetZv(),multMBTracks};\r
+         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
@@ -1452,10 +1465,8 @@ void AlidNdPtAnalysis::Analyse()
   //\r
   TH1::AddDirectory(kFALSE);\r
   TH1 *h=0, *h1=0, *h2=0, *h2c = 0; \r
-  TH2D *hgen2D=0;\r
   THnSparse *hs=0; \r
   TH2 *h2D=0; \r
-  TH1 *h1D=0; \r
 \r
   char name[256];\r
   TObjArray *aFolderObj = new TObjArray;\r
@@ -1482,6 +1493,126 @@ void AlidNdPtAnalysis::Analyse()
   Double_t minEta = accCuts->GetMinEta();\r
   Double_t maxEta = accCuts->GetMaxEta()-0.00001;\r
 \r
+  //\r
+  // Reconstructed event vertex\r
+  //\r
+  h = fRecEventHist1->Projection(0);\r
+  h->SetName("Xv");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecEventHist1->Projection(1);\r
+  h->SetName("Yv");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecEventHist1->Projection(2);\r
+  h->SetName("Zv");\r
+  aFolderObj->Add(h);\r
+\r
+  //\r
+  // multiplicity\r
+  //\r
+  h = fRecEventHist2->Projection(1);\r
+  h->SetName("multMB");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecEventHist2->Projection(2);\r
+  h->SetName("multiplicity");\r
+  aFolderObj->Add(h);\r
+\r
+  h2D = fRecEventHist2->Projection(0,1); \r
+  h2D->SetName("Zv_vs_multiplicity_MB");\r
+  aFolderObj->Add(h2D);\r
+\r
+  //\r
+  // reconstructed pt histograms\r
+  //\r
+  h = fRecTrackHist1[0]->Projection(0);\r
+  h->SetName("pt_all_ch");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecTrackHist1[1]->Projection(0);\r
+  h->SetName("pt_acc");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecTrackHist1[2]->Projection(0);\r
+  h->SetName("pt_rec");\r
+  aFolderObj->Add(h);\r
+\r
+  //\r
+  // reconstructed eta histograms\r
+  //\r
+  h = fRecTrackHist1[0]->Projection(1);\r
+  h->SetName("eta_all_ch");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecTrackHist1[1]->Projection(1);\r
+  h->SetName("eta_acc");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecTrackHist1[2]->Projection(1);\r
+  h->SetName("eta_rec");\r
+  aFolderObj->Add(h);\r
+\r
+  //\r
+  // reconstructed phi histograms\r
+  //\r
+  h = fRecTrackHist1[0]->Projection(2);\r
+  h->SetName("phi_all_ch");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecTrackHist1[1]->Projection(2);\r
+  h->SetName("phi_acc");\r
+  aFolderObj->Add(h);\r
+\r
+  h = fRecTrackHist1[2]->Projection(2);\r
+  h->SetName("phi_rec");\r
+  aFolderObj->Add(h);\r
+\r
+  //\r
+  // reconstructed eta:pt histograms\r
+  //\r
+  h2D = fRecTrackHist1[0]->Projection(1,0);\r
+  h2D->SetName("pt_eta_all_ch");\r
+  aFolderObj->Add(h2D);\r
+\r
+  h2D = fRecTrackHist1[1]->Projection(1,0);\r
+  h2D->SetName("pt_eta_acc");\r
+  aFolderObj->Add(h2D);\r
+\r
+  h2D = fRecTrackHist1[2]->Projection(1,0);\r
+  h2D->SetName("pt_eta_rec");\r
+  aFolderObj->Add(h2D);\r
+\r
+  //\r
+  // reconstructed phi:pt histograms\r
+  //\r
+  h2D = fRecTrackHist1[0]->Projection(2,0);\r
+  h2D->SetName("pt_phi_all_ch");\r
+  aFolderObj->Add(h2D);\r
+\r
+  h2D = fRecTrackHist1[1]->Projection(2,0);\r
+  h2D->SetName("pt_phi_acc");\r
+  aFolderObj->Add(h2D);\r
+\r
+  h2D = fRecTrackHist1[2]->Projection(2,0);\r
+  h2D->SetName("pt_phi_rec");\r
+  aFolderObj->Add(h2D);\r
+\r
+  //\r
+  // reconstructed phi:eta histograms\r
+  //\r
+  h2D = fRecTrackHist1[0]->Projection(2,1);\r
+  h2D->SetName("eta_phi_all_ch");\r
+  aFolderObj->Add(h2D);\r
+\r
+  h2D = fRecTrackHist1[1]->Projection(2,1);\r
+  h2D->SetName("eta_phi_acc");\r
+  aFolderObj->Add(h2D);\r
+\r
+  h2D = fRecTrackHist1[2]->Projection(2,1);\r
+  h2D->SetName("eta_phi_rec");\r
+  aFolderObj->Add(h2D);\r
+\r
   //\r
   // calculate corrections for empty events\r
   // with multMB==0 \r
@@ -1494,6 +1625,22 @@ void AlidNdPtAnalysis::Analyse()
   if( h->Integral() ) h->Scale(1./h->Integral());\r
   h->SetName("zv_distribution_norm");\r
   aFolderObj->Add(h);\r
\r
+  //\r
+  // MC available\r
+  //\r
+  if(IsUseMCInfo()) {\r
+\r
+  //\r
+  // Event vertex resolution\r
+  //\r
+  h2D = fRecMCEventHist2->Projection(0,2);\r
+  h2D->SetName("DeltaXv_vs_mult");\r
+  aFolderObj->Add(h2D);\r
+\r
+  h2D = fRecMCEventHist2->Projection(1,2);\r
+  h2D->SetName("DeltaZv_vs_mult");\r
+  aFolderObj->Add(h2D);\r
 \r
   //\r
   // normalised zv to get trigger/trigger+vertex event differences\r
@@ -1501,12 +1648,12 @@ void AlidNdPtAnalysis::Analyse()
   //\r
   fTriggerEventMatrix->GetAxis(1)->SetRangeUser(0.,0.);\r
   h = fTriggerEventMatrix->Projection(0);\r
-  hgen2D = fTriggerEventMatrix->Projection(0,1);\r
-  if(hgen2D->Integral()) h->Scale(1./hgen2D->Integral());\r
+  h2D = fTriggerEventMatrix->Projection(0,1);\r
+  if(h2D->Integral()) h->Scale(1./h2D->Integral());\r
 \r
   h1 = fRecEventMatrix->Projection(0);\r
-  hgen2D = fRecEventMatrix->Projection(0,1);\r
-  if(hgen2D->Integral()) h1->Scale(1./hgen2D->Integral());\r
+  h2D = fRecEventMatrix->Projection(0,1);\r
+  if(h2D->Integral()) h1->Scale(1./h2D->Integral());\r
 \r
   h->Divide(h1);\r
   h->SetName("zv_empty_events_norm");\r
@@ -1529,14 +1676,14 @@ void AlidNdPtAnalysis::Analyse()
   //\r
   // trigger efficiency for INEL\r
   //\r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0),fGenEventMatrix->Projection(0),"zv_trig_INEL_eff_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0),fGenEventMatrix->Projection(0),"zv_trig_INEL_eff_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   //\r
   // trigger efficiency for NSD\r
   //\r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerNSDEventMatrix->Projection(0),fGenNSDEventMatrix->Projection(0),"zv_trig_NSD_eff_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerNSDEventMatrix->Projection(0),fGenNSDEventMatrix->Projection(0),"zv_trig_NSD_eff_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   //\r
   // trigger bias correction (MB to ND)\r
@@ -1544,15 +1691,15 @@ void AlidNdPtAnalysis::Analyse()
   hs = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix,fTriggerEventMatrix,"zv_mult_trig_MBtoND_corr_matrix");\r
   aFolderObj->Add(hs);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoND_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoND_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fGenNDEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fTriggerEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoND_corr_matrix");\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoND_corr_matrix");\r
 \r
-  aFolderObj->Add(h1D);\r
+  aFolderObj->Add(h);\r
   fGenNDEventMatrix->GetAxis(0)->SetRange(1,fGenNDEventMatrix->GetAxis(0)->GetNbins());\r
   fTriggerEventMatrix->GetAxis(0)->SetRange(1,fTriggerEventMatrix->GetAxis(0)->GetNbins());\r
 \r
@@ -1565,14 +1712,14 @@ void AlidNdPtAnalysis::Analyse()
   h2D = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(0,1),fTriggerEventMatrix->Projection(0,1),"zv_mult_trig_MBtoNSD_corr_matrix_2D");\r
   aFolderObj->Add(h2D);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoNSD_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoNSD_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fGenNSDEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fTriggerEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoNSD_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoNSD_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fGenNSDEventMatrix->GetAxis(0)->SetRange(1,fGenNSDEventMatrix->GetAxis(0)->GetNbins());\r
   fTriggerEventMatrix->GetAxis(0)->SetRange(1,fTriggerEventMatrix->GetAxis(0)->GetNbins());\r
@@ -1583,8 +1730,8 @@ void AlidNdPtAnalysis::Analyse()
   hs = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix,fTriggerEventMatrix,"zv_mult_trig_MBtoInel_corr_matrix");\r
   aFolderObj->Add(hs);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoInel_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoInel_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   h2D = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(0,1),fTriggerEventMatrix->Projection(0,1),"zv_mult_trig_MBtoInel_corr_matrix_2D");\r
   aFolderObj->Add(h2D);\r
@@ -1592,8 +1739,8 @@ void AlidNdPtAnalysis::Analyse()
   fGenEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fTriggerEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoInel_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoInel_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fGenEventMatrix->GetAxis(0)->SetRange(1,fGenEventMatrix->GetAxis(0)->GetNbins());\r
   fTriggerEventMatrix->GetAxis(0)->SetRange(1,fTriggerEventMatrix->GetAxis(0)->GetNbins());\r
@@ -1610,14 +1757,14 @@ void AlidNdPtAnalysis::Analyse()
   fTriggerEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fRecEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(1),fRecEventMatrix->Projection(1),"mult_event_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(1),fRecEventMatrix->Projection(1),"mult_event_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fTriggerEventMatrix->GetAxis(0)->SetRange(1,fTriggerEventMatrix->GetAxis(0)->GetNbins());\r
   fRecEventMatrix->GetAxis(0)->SetRange(1,fRecEventMatrix->GetAxis(0)->GetNbins());\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0),fRecEventMatrix->Projection(0),"zv_event_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0),fRecEventMatrix->Projection(0),"zv_event_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   //\r
   // track-event trigger bias correction (MB to ND)\r
@@ -1672,8 +1819,8 @@ void AlidNdPtAnalysis::Analyse()
   fTriggerTrackEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fGenTrackEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerTrackEventMatrix->Projection(1),fGenTrackEventMatrix->Projection(1),"pt_track_trig_MBtoInel_eff_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerTrackEventMatrix->Projection(1),fGenTrackEventMatrix->Projection(1),"pt_track_trig_MBtoInel_eff_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fTriggerTrackEventMatrix->GetAxis(2)->SetRange(1,fTriggerTrackEventMatrix->GetAxis(2)->GetNbins());\r
   fGenTrackEventMatrix->GetAxis(2)->SetRange(1,fGenTrackEventMatrix->GetAxis(2)->GetNbins());\r
@@ -1702,8 +1849,8 @@ void AlidNdPtAnalysis::Analyse()
   fTriggerTrackEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fRecTrackEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecTrackEventMatrix->Projection(1),fTriggerTrackEventMatrix->Projection(1),"pt_track_event_eff_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fRecTrackEventMatrix->Projection(1),fTriggerTrackEventMatrix->Projection(1),"pt_track_event_eff_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fTriggerTrackEventMatrix->GetAxis(2)->SetRange(1,fTriggerTrackEventMatrix->GetAxis(2)->GetNbins());\r
   fRecTrackEventMatrix->GetAxis(2)->SetRange(1,fRecTrackEventMatrix->GetAxis(2)->GetNbins());\r
@@ -1730,28 +1877,28 @@ void AlidNdPtAnalysis::Analyse()
   fGenPrimTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   fRecPrimTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(0),fRecPrimTrackMatrix->Projection(0),"zv_track_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(0),fRecPrimTrackMatrix->Projection(0),"zv_track_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fGenPrimTrackMatrix->GetAxis(1)->SetRange(1,fGenPrimTrackMatrix->GetAxis(1)->GetNbins());\r
   fRecPrimTrackMatrix->GetAxis(1)->SetRange(1,fRecPrimTrackMatrix->GetAxis(1)->GetNbins());\r
   fGenPrimTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fRecPrimTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(1),fRecPrimTrackMatrix->Projection(1),"pt_track_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(1),fRecPrimTrackMatrix->Projection(1),"pt_track_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   // efficiency\r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecPrimTrackMatrix->Projection(1), fGenPrimTrackMatrix->Projection(1),"pt_track_eff_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fRecPrimTrackMatrix->Projection(1), fGenPrimTrackMatrix->Projection(1),"pt_track_eff_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fGenPrimTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   fRecPrimTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   fGenPrimTrackMatrix->GetAxis(2)->SetRange(1,fGenPrimTrackMatrix->GetAxis(2)->GetNbins());\r
   fRecPrimTrackMatrix->GetAxis(2)->SetRange(1,fRecPrimTrackMatrix->GetAxis(2)->GetNbins());\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(2),fRecPrimTrackMatrix->Projection(2),"eta_track_corr_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(2),fRecPrimTrackMatrix->Projection(2),"eta_track_corr_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fGenPrimTrackMatrix->GetAxis(1)->SetRange(1,fGenPrimTrackMatrix->GetAxis(1)->GetNbins());\r
   fRecPrimTrackMatrix->GetAxis(1)->SetRange(1,fRecPrimTrackMatrix->GetAxis(1)->GetNbins());\r
@@ -1779,16 +1926,16 @@ void AlidNdPtAnalysis::Analyse()
   fRecSecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   fRecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(0),fRecTrackMatrix->Projection(0),"zv_track_cont_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(0),fRecTrackMatrix->Projection(0),"zv_track_cont_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fRecSecTrackMatrix->GetAxis(1)->SetRange(1,fRecSecTrackMatrix->GetAxis(1)->GetNbins());\r
   fRecTrackMatrix->GetAxis(1)->SetRange(1,fRecTrackMatrix->GetAxis(1)->GetNbins());\r
   fRecSecTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fRecTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(1),fRecTrackMatrix->Projection(1),"pt_track_cont_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(1),fRecTrackMatrix->Projection(1),"pt_track_cont_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fRecSecTrackMatrix->GetAxis(2)->SetRange(1,fRecSecTrackMatrix->GetAxis(2)->GetNbins());\r
   fRecTrackMatrix->GetAxis(2)->SetRange(1,fRecTrackMatrix->GetAxis(2)->GetNbins());\r
@@ -1796,8 +1943,8 @@ void AlidNdPtAnalysis::Analyse()
   fRecSecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   fRecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(2),fRecTrackMatrix->Projection(2),"eta_track_cont_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(2),fRecTrackMatrix->Projection(2),"eta_track_cont_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fRecSecTrackMatrix->GetAxis(0)->SetRange(1,fRecSecTrackMatrix->GetAxis(0)->GetNbins());\r
   fRecTrackMatrix->GetAxis(0)->SetRange(1,fRecTrackMatrix->GetAxis(0)->GetNbins());\r
@@ -1825,16 +1972,16 @@ void AlidNdPtAnalysis::Analyse()
   fRecMultTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   fRecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(0),fRecTrackMatrix->Projection(0),"zv_mult_track_cont_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(0),fRecTrackMatrix->Projection(0),"zv_mult_track_cont_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fRecMultTrackMatrix->GetAxis(1)->SetRangeUser(0.,maxPt);\r
   fRecTrackMatrix->GetAxis(1)->SetRangeUser(0.,maxPt);\r
   fRecMultTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
   fRecTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(1),fRecTrackMatrix->Projection(1),"pt_mult_track_cont_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(1),fRecTrackMatrix->Projection(1),"pt_mult_track_cont_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fRecMultTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
   fRecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
@@ -1842,8 +1989,8 @@ void AlidNdPtAnalysis::Analyse()
   fRecMultTrackMatrix->GetAxis(2)->SetRange(1,fRecMultTrackMatrix->GetAxis(2)->GetNbins());\r
   fRecTrackMatrix->GetAxis(2)->SetRange(1,fRecTrackMatrix->GetAxis(2)->GetNbins());\r
 \r
-  h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(2),fRecTrackMatrix->Projection(2),"eta_mult_track_cont_matrix");\r
-  aFolderObj->Add(h1D);\r
+  h = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(2),fRecTrackMatrix->Projection(2),"eta_mult_track_cont_matrix");\r
+  aFolderObj->Add(h);\r
 \r
   fRecMultTrackMatrix->GetAxis(1)->SetRangeUser(0.,maxPt);\r
   fRecTrackMatrix->GetAxis(1)->SetRangeUser(0.,maxPt);\r
@@ -1858,6 +2005,9 @@ void AlidNdPtAnalysis::Analyse()
   if(fHistogramsOn) {\r
 \r
   // Efficiency electrons, muons, pions, kaons, protons, all\r
+  fMCPrimTrackHist1[1]->GetAxis(1)->SetRangeUser(minEta,maxEta); \r
+  fMCPrimTrackHist1[2]->GetAxis(1)->SetRangeUser(minEta,maxEta);\r
+\r
   fMCPrimTrackHist1[1]->GetAxis(2)->SetRange(1,1); \r
   fMCPrimTrackHist1[2]->GetAxis(2)->SetRange(1,1); \r
   h1 = fMCPrimTrackHist1[1]->Projection(0);\r
@@ -1912,6 +2062,9 @@ void AlidNdPtAnalysis::Analyse()
   h2c->SetName("eff_pt_all");\r
   aFolderObj->Add(h2c);\r
 \r
+  fMCPrimTrackHist1[1]->GetAxis(1)->SetRange(1,fMCPrimTrackHist1[1]->GetAxis(1)->GetNbins()); \r
+  fMCPrimTrackHist1[2]->GetAxis(1)->SetRange(1,fMCPrimTrackHist1[2]->GetAxis(1)->GetNbins());\r
+\r
   //  pt spetra\r
   // - rec, primaries, secondaries\r
   // - primaries (pid) \r
@@ -1919,13 +2072,6 @@ void AlidNdPtAnalysis::Analyse()
   // - secondaries (mech)\r
   // - secondaries (mother)\r
   //\r
-  TH1D *pt_acc = fRecTrackHist1[1]->Projection(0);\r
-  pt_acc->SetName("pt_acc");\r
-  aFolderObj->Add(pt_acc);\r
-\r
-  TH1D *pt_rec = fRecTrackHist1[2]->Projection(0);\r
-  pt_rec->SetName("pt_rec");\r
-  aFolderObj->Add(pt_rec);\r
 \r
   TH1D *mc_pt_acc_all = fMCTrackHist1[1]->Projection(0);\r
   mc_pt_acc_all->SetName("mc_pt_acc_all");\r
@@ -2132,6 +2278,8 @@ void AlidNdPtAnalysis::Analyse()
 \r
   fRecMCTrackHist1->GetAxis(0)->SetRange(1,fRecMCTrackHist1->GetAxis(0)->GetNbins()); \r
 \r
+  } // end use MC info\r
+\r
   // export objects to analysis folder\r
   fAnalysisFolder = ExportToFolder(aFolderObj);\r
 \r