]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding more QA histograms: eta vs phi vs Nclusters
authorpchrist <pchrist@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Feb 2009 16:44:51 +0000 (16:44 +0000)
committerpchrist <pchrist@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Feb 2009 16:44:51 +0000 (16:44 +0000)
PWG2/AliAnalysisTaskProtonsQA.cxx
PWG2/AliAnalysisTaskProtonsQA.h
PWG2/SPECTRA/AliProtonQAAnalysis.cxx
PWG2/drawProtonQAResults.C
PWG2/runProtonAnalysisQA.C

index 92793a705714297802f2b50f8fefd221f6904842..27579d407ec75e9c0d51d22393ad5af7e93b4e00 100644 (file)
@@ -31,7 +31,8 @@ ClassImp(AliAnalysisTaskProtonsQA)
 //________________________________________________________________________ 
 AliAnalysisTaskProtonsQA::AliAnalysisTaskProtonsQA()
   : AliAnalysisTask(), fESD(0), fMC(0),
-    fList0(0), fList1(0), fList2(0), fList3(0), fList4(0), fList5(0),
+    fList0(0), fList1(0), fList2(0), fList3(0), 
+    fList4(0), fList5(0), fList6(0), fList7(0),
     fProtonQAAnalysis(0), 
     fTriggerMode(kMB2), fProtonAnalysisMode(kTPC),
     fVxMax(0), fVyMax(0), fVzMax(0) {
@@ -42,7 +43,7 @@ AliAnalysisTaskProtonsQA::AliAnalysisTaskProtonsQA()
 AliAnalysisTaskProtonsQA::AliAnalysisTaskProtonsQA(const char *name) 
   : AliAnalysisTask(name, ""), fESD(0), fMC(0),
     fList0(0), fList1(0), fList2(0), fList3(0), 
-    fList4(0), fList5(0), fList6(0),
+    fList4(0), fList5(0), fList6(0), fList7(0),
     fProtonQAAnalysis(0),
     fTriggerMode(kMB2), fProtonAnalysisMode(kTPC),
     fVxMax(0), fVyMax(0), fVzMax(0) {
@@ -59,6 +60,7 @@ AliAnalysisTaskProtonsQA::AliAnalysisTaskProtonsQA(const char *name)
   DefineOutput(4, TList::Class());
   DefineOutput(5, TList::Class());
   DefineOutput(6, TList::Class());
+  DefineOutput(7, TList::Class());
 }
 
 //________________________________________________________________________
@@ -182,13 +184,16 @@ void AliAnalysisTaskProtonsQA::CreateOutputObjects() {
   fList3 = fProtonQAAnalysis->GetAcceptedCutList();
 
   fList4 = new TList();
-  fList4 = fProtonQAAnalysis->GetAcceptedDCAList();
+  fList4 = fProtonQAAnalysis->GetRejectedCutList();
 
   fList5 = new TList();
-  fList5 = fProtonQAAnalysis->GetEfficiencyQAList();
+  fList5 = fProtonQAAnalysis->GetAcceptedDCAList();
 
   fList6 = new TList();
-  fList6 = fProtonQAAnalysis->GetVertexQAList();
+  fList6 = fProtonQAAnalysis->GetEfficiencyQAList();
+
+  fList7 = new TList();
+  fList7 = fProtonQAAnalysis->GetVertexQAList();
 }
 
 //________________________________________________________________________
@@ -239,6 +244,7 @@ void AliAnalysisTaskProtonsQA::Exec(Option_t *) {
   PostData(4, fList4);
   PostData(5, fList5);
   PostData(6, fList6);
+  PostData(7, fList7);
 }      
 
 //________________________________________________________________________
index 32e5af7d0cfc636c0d9cce404e1421503e2e509b..f0bbd020f17facc3bb4b0498a96f1ab0b256ea52 100644 (file)
@@ -48,6 +48,7 @@ class AliAnalysisTaskProtonsQA : public AliAnalysisTask {
   TList  *fList4; //TList output object
   TList  *fList5; //TList output object
   TList  *fList6; //TList output object
+  TList  *fList7; //TList output object
   
   AliProtonQAAnalysis *fProtonQAAnalysis; //analysis object
  
index 51b1bc7edf9eb569832ad162d8a28c1bdb370f60..10e4d55af3e948a745834e9757f7b96f0a72c2ac 100644 (file)
@@ -1715,6 +1715,76 @@ void AliProtonQAAnalysis::InitCutLists() {
                                                 ";#sigma_{1/P_{T}} [GeV/c]^{-1};Entries",
                                                 100,0,4);
   fAcceptedCutList->Add(gSecondaryAntiProtonsExtCov55);
+  //eta-phi-Nclusters
+  TH3D *gHistEtaPhiNClustersPrimaryProtonsPass = new TH3D("gHistEtaPhiNClustersPrimaryProtonsPass",
+                                                         "Accepted primary protons;#eta;#phi;N_{clusters}(TPC)",
+                                                         fNBinsY,fMinY,fMaxY,
+                                                         100,0,360,
+                                                         100,0,200);
+  gHistEtaPhiNClustersPrimaryProtonsPass->SetStats(kTRUE);
+  gHistEtaPhiNClustersPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
+  fAcceptedCutList->Add(gHistEtaPhiNClustersPrimaryProtonsPass);//eta-phi of primary accepted ESD protons
+  TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsPass = new TH3D("gHistEtaPhiNClustersPrimaryAntiProtonsPass",
+                                                             "Accepted primary antiprotons;#eta;#phi;N_{clusters}(TPC)",
+                                                             fNBinsY,fMinY,fMaxY,
+                                                             100,0,360,
+                                                             100,0,200);
+  gHistEtaPhiNClustersPrimaryAntiProtonsPass->SetStats(kTRUE);
+  gHistEtaPhiNClustersPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
+  fAcceptedCutList->Add(gHistEtaPhiNClustersPrimaryAntiProtonsPass);//eta-phi of primary accepted ESD antiprotons
+  TH3D *gHistEtaPhiNClustersSecondaryProtonsPass = new TH3D("gHistEtaPhiNClustersSecondaryProtonsPass",
+                                                           "Accepted secondary protons;#eta;#phi;N_{clusters}(TPC)",
+                                                           fNBinsY,fMinY,fMaxY,
+                                                           100,0,360,
+                                                           100,0,200);
+  gHistEtaPhiNClustersSecondaryProtonsPass->SetStats(kTRUE);
+  gHistEtaPhiNClustersSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
+  fAcceptedCutList->Add(gHistEtaPhiNClustersSecondaryProtonsPass);//eta-phi of secondary accepted ESD protons
+  TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsPass = new TH3D("gHistEtaPhiNClustersSecondaryAntiProtonsPass",
+                                                               "Accepted secondary antiprotons;#eta;#phi;N_{clusters}(TPC)",
+                                                               fNBinsY,fMinY,fMaxY,
+                                                               100,0,360,
+                                                               100,0,200);
+  gHistEtaPhiNClustersSecondaryAntiProtonsPass->SetStats(kTRUE);
+  gHistEtaPhiNClustersSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
+  fAcceptedCutList->Add(gHistEtaPhiNClustersSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
+  
+  //Rejected cut list
+  fRejectedCutList = new TList();
+  //eta-phi-Nclusters
+  TH3D *gHistEtaPhiNClustersPrimaryProtonsReject = new TH3D("gHistEtaPhiNClustersPrimaryProtonsReject",
+                                                         "Rejected primary protons;#eta;#phi;N_{clusters}(TPC)",
+                                                         fNBinsY,fMinY,fMaxY,
+                                                         100,0,360,
+                                                         100,0,200);
+  gHistEtaPhiNClustersPrimaryProtonsReject->SetStats(kTRUE);
+  gHistEtaPhiNClustersPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
+  fRejectedCutList->Add(gHistEtaPhiNClustersPrimaryProtonsReject);//eta-phi of primary rejected ESD protons
+  TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsReject = new TH3D("gHistEtaPhiNClustersPrimaryAntiProtonsReject",
+                                                             "Rejected primary antiprotons;#eta;#phi;N_{clusters}(TPC)",
+                                                             fNBinsY,fMinY,fMaxY,
+                                                             100,0,360,
+                                                             100,0,200);
+  gHistEtaPhiNClustersPrimaryAntiProtonsReject->SetStats(kTRUE);
+  gHistEtaPhiNClustersPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
+  fRejectedCutList->Add(gHistEtaPhiNClustersPrimaryAntiProtonsReject);//eta-phi of primary rejected ESD antiprotons
+  TH3D *gHistEtaPhiNClustersSecondaryProtonsReject = new TH3D("gHistEtaPhiNClustersSecondaryProtonsReject",
+                                                           "Rejected secondary protons;#eta;#phi;N_{clusters}(TPC)",
+                                                           fNBinsY,fMinY,fMaxY,
+                                                           100,0,360,
+                                                           100,0,200);
+  gHistEtaPhiNClustersSecondaryProtonsReject->SetStats(kTRUE);
+  gHistEtaPhiNClustersSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
+  fRejectedCutList->Add(gHistEtaPhiNClustersSecondaryProtonsReject);//eta-phi of secondary rejected ESD protons
+  TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsReject = new TH3D("gHistEtaPhiNClustersSecondaryAntiProtonsReject",
+                                                               "Rejected secondary antiprotons;#eta;#phi;N_{clusters}(TPC)",
+                                                               fNBinsY,fMinY,fMaxY,
+                                                               100,0,360,
+                                                               100,0,200);
+  gHistEtaPhiNClustersSecondaryAntiProtonsReject->SetStats(kTRUE);
+  gHistEtaPhiNClustersSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
+  fRejectedCutList->Add(gHistEtaPhiNClustersSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
+
 
   //DCA list
   fAcceptedDCAList = new TList();
@@ -1777,28 +1847,31 @@ void AliProtonQAAnalysis::InitVertexQA() {
   fQAVertexList = new TList();
   fQAVertexList->SetName("fQAVertexList");
 
+  //Gen. multiplicity bins
+  Float_t xBins[24] = {0,1,2,4,6,8,10,15,20,30,40,50,75,100,
+                    200,300,400,500,750,1000,1500,2000,2500,3000};
   //MC primary multiplicity (vertex efficiency calculation)
-  TH1I *gHistMCPrimaryMultiplicity = new TH1I("gHistMCPrimaryMultiplicity",
+  TH1F *gHistMCPrimaryMultiplicity = new TH1F("gHistMCPrimaryMultiplicity",
                                              ";N_{prim. gen.};Entries",
-                                             1000,0,2000);
+                                             23,xBins);
   fQAVertexList->Add(gHistMCPrimaryMultiplicity);
   
   //TPC
-  TH1I *gHistMCPrimaryMultiplicityTPC = new TH1I("gHistMCPrimaryMultiplicityTPC",
-                                                ";N_{prim. gen.};Entries",
-                                                1000,0,2000);
+  TH1F *gHistMCPrimaryMultiplicityTPC = new TH1F("gHistMCPrimaryMultiplicityTPC",
+                                                "Vertex TPC;N_{prim. gen.};Entries",
+                                                23,xBins);
   fQAVertexList->Add(gHistMCPrimaryMultiplicityTPC);
   TH2F *gHistTPCESDVx = new TH2F("gHistTPCESDVx",
                                 "Primary vertex TPC;V_{x} [cm];N_{contributors}",
-                                100,-10.,10.,100,0,100);
+                                100,-10.,10.,1000,0,5000);
   fQAVertexList->Add(gHistTPCESDVx);
   TH2F *gHistTPCESDVy = new TH2F("gHistTPCESDVy",
                                 "Primary vertex TPC;V_{y} [cm];N_{contributors}",
-                                100,-10.,10.,100,0,100);
+                                100,-10.,10.,1000,0,5000);
   fQAVertexList->Add(gHistTPCESDVy);
   TH2F *gHistTPCESDVz = new TH2F("gHistTPCESDVz",
                                 "Primary vertex TPC;V_{z} [cm];N_{contributors}",
-                                100,-20.,20.,100,0,100);
+                                100,-20.,20.,1000,0,5000);
   fQAVertexList->Add(gHistTPCESDVz);
   TH1F *gHistTPCDiffVx = new TH1F("gHistTPCDiffVx",
                                  ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
@@ -1826,21 +1899,21 @@ void AliProtonQAAnalysis::InitVertexQA() {
   fQAVertexList->Add(gHistTPCResolutionVz);
   
   //SPD
-  TH1I *gHistMCPrimaryMultiplicitySPD = new TH1I("gHistMCPrimaryMultiplicitySPD",
-                                                ";N_{prim. gen.};Entries",
-                                                1000,0,2000);
+  TH1F *gHistMCPrimaryMultiplicitySPD = new TH1F("gHistMCPrimaryMultiplicitySPD",
+                                                "Vertex SPD;N_{prim. gen.};Entries",
+                                                23,xBins);
   fQAVertexList->Add(gHistMCPrimaryMultiplicitySPD);
   TH2F *gHistSPDESDVx = new TH2F("gHistSPDESDVx",
                                 "Primary vertex SPD;V_{x} [cm];N_{contributors}",
-                                100,-10.,10.,100,0,100);
+                                100,-10.,10.,1000,0,5000);
   fQAVertexList->Add(gHistSPDESDVx);
   TH2F *gHistSPDESDVy = new TH2F("gHistSPDESDVy",
                                 "Primary vertex SPD;V_{y} [cm];N_{contributors}",
-                                100,-10.,10.,100,0,100);
+                                100,-10.,10.,1000,0,5000);
   fQAVertexList->Add(gHistSPDESDVy);
   TH2F *gHistSPDESDVz = new TH2F("gHistSPDESDVz",
                                 "Primary vertex SPD;V_{z} [cm];N_{contributors}",
-                                100,-20.,20.,100,0,100);
+                                100,-20.,20.,1000,0,5000);
   fQAVertexList->Add(gHistSPDESDVz);
   TH1F *gHistSPDDiffVx = new TH1F("gHistSPDDiffVx",
                                  ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
@@ -1868,21 +1941,21 @@ void AliProtonQAAnalysis::InitVertexQA() {
   fQAVertexList->Add(gHistSPDResolutionVz);
   
   //Tracks
-  TH1I *gHistMCPrimaryMultiplicityTracks = new TH1I("gHistMCPrimaryMultiplicityTracks",
-                                                   ";N_{prim. gen.};Entries",
-                                                   1000,0,2000);
+  TH1F *gHistMCPrimaryMultiplicityTracks = new TH1F("gHistMCPrimaryMultiplicityTracks",
+                                                   "Vertex Tracks;N_{prim. gen.};Entries",
+                                                   23,xBins);
   fQAVertexList->Add(gHistMCPrimaryMultiplicityTracks);
   TH2F *gHistTracksESDVx = new TH2F("gHistTracksESDVx",
                                    "Primary vertex Tracks;V_{x} [cm];N_{contributors}",
-                                   100,-10.,10.,100,0,100);
+                                   100,-10.,10.,1000,0,5000);
   fQAVertexList->Add(gHistTracksESDVx);
   TH2F *gHistTracksESDVy = new TH2F("gHistTracksESDVy",
                                    "Primary vertex Tracks;V_{y} [cm];N_{contributors}",
-                                   100,-10.,10.,100,0,100);
+                                   100,-10.,10.,1000,0,5000);
   fQAVertexList->Add(gHistTracksESDVy);
   TH2F *gHistTracksESDVz = new TH2F("gHistTracksESDVz",
                                    "Primary vertex Tracks;V_{z} [cm];N_{contributors}",
-                                   100,-20.,20.,100,0,100);
+                                   100,-20.,20.,1000,0,5000);
   fQAVertexList->Add(gHistTracksESDVz);
   TH1F *gHistTracksDiffVx = new TH1F("gHistTracksDiffVx",
                                     ";V_{x}(rec.) - V_{x}(true) [#mu m];Entries",
@@ -1898,15 +1971,15 @@ void AliProtonQAAnalysis::InitVertexQA() {
   fQAVertexList->Add(gHistTracksDiffVz);
   TH1F *gHistTracksResolutionVx = new TH1F("gHistTracksResolutionVx",
                                           ";#sigma_{x} [#mu m];Entries",
-                                          100,0.,1000.);
+                                          100,0.,5000.);
   fQAVertexList->Add(gHistTracksResolutionVx);
   TH1F *gHistTracksResolutionVy = new TH1F("gHistTracksResolutionVy",
                                           ";#sigma_{y} [#mu m];Entries",
-                                          100,0.,1000.);
+                                          100,0.,5000.);
   fQAVertexList->Add(gHistTracksResolutionVy);
   TH1F *gHistTracksResolutionVz = new TH1F("gHistTracksResolutionVz",
                                           ";#sigma_{z} [#mu m];Entries",
-                                          100,0.,500.);
+                                          100,0.,1000.);
   fQAVertexList->Add(gHistTracksResolutionVz);
 }
 
@@ -2055,65 +2128,6 @@ void AliProtonQAAnalysis::InitQA() {
     gHistYPtPDGAntiProtonsPass->GetXaxis()->SetTitle("y");
   fQA2DList->Add(gHistYPtPDGAntiProtonsPass);//composition of secondary antiprotons
 
-  //eta-phi
-  TH2D *gHistEtaPhiPrimaryProtonsPass = new TH2D("gHistEtaPhiPrimaryProtonsPass",
-                                                ";#eta;#phi [deg.]",
-                                                fNBinsY,fMinY,fMaxY,
-                                                100,0.,360.);
-  gHistEtaPhiPrimaryProtonsPass->SetStats(kTRUE);
-  gHistEtaPhiPrimaryProtonsPass->GetXaxis()->SetTitleColor(1);
-  fQA2DList->Add(gHistEtaPhiPrimaryProtonsPass);//eta-phi of primary accepted ESD protons
-  TH2D *gHistEtaPhiPrimaryProtonsReject = new TH2D("gHistEtaPhiPrimaryProtonsReject",
-                                                  ";#eta;#phi [deg.]",
-                                                  fNBinsY,fMinY,fMaxY,
-                                                  100,0.,360.);
-  gHistEtaPhiPrimaryProtonsReject->SetStats(kTRUE);
-  gHistEtaPhiPrimaryProtonsReject->GetXaxis()->SetTitleColor(1);
-  fQA2DList->Add(gHistEtaPhiPrimaryProtonsReject);//eta-phi of primary rejected ESD protons
-  TH2D *gHistEtaPhiSecondaryProtonsPass = new TH2D("gHistEtaPhiSecondaryProtonsPass",
-                                                  ";#eta;#phi [deg.]",
-                                                  fNBinsY,fMinY,fMaxY,
-                                                  100,0.,360.);
-  gHistEtaPhiSecondaryProtonsPass->SetStats(kTRUE);
-  gHistEtaPhiSecondaryProtonsPass->GetXaxis()->SetTitleColor(1);
-  fQA2DList->Add(gHistEtaPhiSecondaryProtonsPass);//eta-phi of secondary accepted ESD protons
-  TH2D *gHistEtaPhiSecondaryProtonsReject = new TH2D("gHistEtaPhiSecondaryProtonsReject",
-                                                    ";#eta;#phi [deg.]",
-                                                    fNBinsY,fMinY,fMaxY,
-                                                    100,0.,360.);
-  gHistEtaPhiSecondaryProtonsReject->SetStats(kTRUE);
-  gHistEtaPhiSecondaryProtonsReject->GetXaxis()->SetTitleColor(1);
-  fQA2DList->Add(gHistEtaPhiSecondaryProtonsReject);//eta-phi of secondary rejected ESD protons
-
-  TH2D *gHistEtaPhiPrimaryAntiProtonsPass = new TH2D("gHistEtaPhiPrimaryAntiProtonsPass",
-                                                    ";#eta;#phi [deg.]",
-                                                    fNBinsY,fMinY,fMaxY,
-                                                    100,0.,360.);
-  gHistEtaPhiPrimaryAntiProtonsPass->SetStats(kTRUE);
-  gHistEtaPhiPrimaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
-  fQA2DList->Add(gHistEtaPhiPrimaryAntiProtonsPass);//eta-phi of primary accepted ESD antiprotons
-  TH2D *gHistEtaPhiPrimaryAntiProtonsReject = new TH2D("gHistEtaPhiPrimaryAntiProtonsReject",
-                                                      ";#eta;#phi [deg.]",
-                                                      fNBinsY,fMinY,fMaxY,
-                                                      100,0.,360.);
-  gHistEtaPhiPrimaryAntiProtonsReject->SetStats(kTRUE);
-  gHistEtaPhiPrimaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
-  fQA2DList->Add(gHistEtaPhiPrimaryAntiProtonsReject);//eta-phi of primary rejected ESD antiprotons
-  TH2D *gHistEtaPhiSecondaryAntiProtonsPass = new TH2D("gHistEtaPhiSecondaryAntiProtonsPass",
-                                                      ";#eta;#phi [deg.]",
-                                                      fNBinsY,fMinY,fMaxY,
-                                                      100,0.,360.);
-  gHistEtaPhiSecondaryAntiProtonsPass->SetStats(kTRUE);
-  gHistEtaPhiSecondaryAntiProtonsPass->GetXaxis()->SetTitleColor(1);
-  fQA2DList->Add(gHistEtaPhiSecondaryAntiProtonsPass);//eta-phi of secondary accepted ESD antiprotons
-  TH2D *gHistEtaPhiSecondaryAntiProtonsReject = new TH2D("gHistEtaPhiSecondaryAntiProtonsReject",
-                                                        ";#eta;#phi [deg.]",
-                                                        fNBinsY,fMinY,fMaxY,
-                                                        100,0.,360.);
-  gHistEtaPhiSecondaryAntiProtonsReject->SetStats(kTRUE);
-  gHistEtaPhiSecondaryAntiProtonsReject->GetXaxis()->SetTitleColor(1);
-  fQA2DList->Add(gHistEtaPhiSecondaryAntiProtonsReject);//eta-phi of secondary rejected ESD antiprotons
-
   /*gDirectory->cd("../");
   //protons
   TDirectory *dirProtons = gDirectory->mkdir("Protons");
@@ -3397,7 +3411,7 @@ void AliProtonQAAnalysis::RunVertexQA(AliGenEventHeader *header,
   header->PrimaryVertex(primaryVertex);
 
   Int_t nPrimaries = stack->GetNprimary();
-  ((TH1I *)(fQAVertexList->At(0)))->Fill(nPrimaries);
+  ((TH1F *)(fQAVertexList->At(0)))->Fill(nPrimaries);
 
   //TPC vertex
   const AliESDVertex *vertexTPC = esd->GetPrimaryVertexTPC();
@@ -3406,7 +3420,7 @@ void AliProtonQAAnalysis::RunVertexQA(AliGenEventHeader *header,
     return;
   }
   if(vertexTPC->GetNContributors() > 0) {
-    ((TH1I *)(fQAVertexList->At(1)))->Fill(nPrimaries);
+    ((TH1F *)(fQAVertexList->At(1)))->Fill(nPrimaries);
     ((TH2F *)(fQAVertexList->At(2)))->Fill(vertexTPC->GetXv(),
                                           vertexTPC->GetNContributors());
     ((TH2F *)(fQAVertexList->At(3)))->Fill(vertexTPC->GetYv(),
@@ -3428,7 +3442,7 @@ void AliProtonQAAnalysis::RunVertexQA(AliGenEventHeader *header,
     return;
   }
   if(vertexSPD->GetNContributors() > 0) {
-    ((TH1I *)(fQAVertexList->At(11)))->Fill(nPrimaries);
+    ((TH1F *)(fQAVertexList->At(11)))->Fill(nPrimaries);
     ((TH2F *)(fQAVertexList->At(12)))->Fill(vertexSPD->GetXv(),
                                            vertexSPD->GetNContributors());
     ((TH2F *)(fQAVertexList->At(13)))->Fill(vertexSPD->GetYv(),
@@ -3450,7 +3464,7 @@ void AliProtonQAAnalysis::RunVertexQA(AliGenEventHeader *header,
     return;
   }
   if(vertexTracks->GetNContributors() > 0) {
-    ((TH1I *)(fQAVertexList->At(21)))->Fill(nPrimaries);
+    ((TH1F *)(fQAVertexList->At(21)))->Fill(nPrimaries);
     ((TH2F *)(fQAVertexList->At(22)))->Fill(vertexTracks->GetXv(),
                                            vertexTracks->GetNContributors());
     ((TH2F *)(fQAVertexList->At(23)))->Fill(vertexTracks->GetYv(),
@@ -3597,6 +3611,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
              ((TH1F *)(fAcceptedCutList->At(32)))->Fill(extCov[5]);
              ((TH1F *)(fAcceptedCutList->At(36)))->Fill(extCov[9]);
              ((TH1F *)(fAcceptedCutList->At(40)))->Fill(extCov[14]);
+             ((TH3D *)(fAcceptedCutList->At(44)))->Fill(tpcTrack->Eta(),
+                                                        tpcTrack->Phi()*180./TMath::Pi(),
+                                                        nClustersTPC);
              
              ((TH1F *)(fAcceptedDCAList->At(0)))->Fill(TMath::Abs(dcaXY));
              ((TH1F *)(fAcceptedDCAList->At(4)))->Fill(TMath::Abs(dcaZ));
@@ -3608,8 +3625,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            tpcTrack->Py(),
                                                            tpcTrack->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(12)))->Fill(tpcTrack->Eta(),
-                                                 tpcTrack->Phi()*180./TMath::Pi());
            }//accepted primary protons
            else if(track->Charge() < 0) {
              for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
@@ -3626,6 +3641,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
              ((TH1F *)(fAcceptedCutList->At(33)))->Fill(extCov[5]);
              ((TH1F *)(fAcceptedCutList->At(37)))->Fill(extCov[9]);
              ((TH1F *)(fAcceptedCutList->At(41)))->Fill(extCov[14]);
+             ((TH3D *)(fAcceptedCutList->At(45)))->Fill(tpcTrack->Eta(),
+                                                        tpcTrack->Phi()*180./TMath::Pi(),
+                                                        nClustersTPC);
              
              ((TH1F *)(fAcceptedDCAList->At(1)))->Fill(TMath::Abs(dcaXY));
              ((TH1F *)(fAcceptedDCAList->At(5)))->Fill(TMath::Abs(dcaZ));
@@ -3637,8 +3655,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            tpcTrack->Py(),
                                                            tpcTrack->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(16)))->Fill(tpcTrack->Eta(),
-                                                 tpcTrack->Phi()*180./TMath::Pi());
            }//accepted primary antiprotons
          }//accepted primary particles
          else if(label > stack->GetNprimary()) {
@@ -3670,6 +3686,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
              ((TH1F *)(fAcceptedCutList->At(34)))->Fill(extCov[5]);
              ((TH1F *)(fAcceptedCutList->At(38)))->Fill(extCov[9]);
              ((TH1F *)(fAcceptedCutList->At(42)))->Fill(extCov[14]);
+             ((TH3D *)(fAcceptedCutList->At(46)))->Fill(tpcTrack->Eta(),
+                                                        tpcTrack->Phi()*180./TMath::Pi(),
+                                                        nClustersTPC);
              
              ((TH1F *)(fAcceptedDCAList->At(2)))->Fill(TMath::Abs(dcaXY));
              ((TH1F *)(fAcceptedDCAList->At(6)))->Fill(TMath::Abs(dcaZ));
@@ -3681,8 +3700,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            tpcTrack->Py(),
                                                            tpcTrack->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(14)))->Fill(tpcTrack->Eta(),
-                                                 tpcTrack->Phi()*180./TMath::Pi());
              if(fAnalysisEtaMode)
              ((TH3F *)(fQA2DList->At(10)))->Fill(tpcTrack->Eta(),Pt,
                                                  ConvertPDGToInt(motherPDGCode));
@@ -3708,6 +3725,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
              ((TH1F *)(fAcceptedCutList->At(35)))->Fill(extCov[5]);
              ((TH1F *)(fAcceptedCutList->At(39)))->Fill(extCov[9]);
              ((TH1F *)(fAcceptedCutList->At(43)))->Fill(extCov[14]);
+             ((TH3D *)(fAcceptedCutList->At(47)))->Fill(tpcTrack->Eta(),
+                                                        tpcTrack->Phi()*180./TMath::Pi(),
+                                                        nClustersTPC);
              
              ((TH1F *)(fAcceptedDCAList->At(3)))->Fill(TMath::Abs(dcaXY));
              ((TH1F *)(fAcceptedDCAList->At(7)))->Fill(TMath::Abs(dcaZ));
@@ -3719,8 +3739,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            tpcTrack->Py(),
                                                            tpcTrack->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(18)))->Fill(tpcTrack->Eta(),
-                                                 tpcTrack->Phi()*180./TMath::Pi());
              if(fAnalysisEtaMode)
                ((TH3F *)(fQA2DList->At(11)))->Fill(tpcTrack->Eta(),Pt,
                                                    ConvertPDGToInt(motherPDGCode));
@@ -3736,6 +3754,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
        else {
          if(label <= stack->GetNprimary()) {
            if(track->Charge() > 0) {
+             ((TH3D *)(fRejectedCutList->At(0)))->Fill(tpcTrack->Eta(),
+                                                       tpcTrack->Phi()*180./TMath::Pi(),
+                                                       nClustersTPC);
              if(fAnalysisEtaMode)
                ((TH2D *)(fQA2DList->At(1)))->Fill(tpcTrack->Eta(),Pt);
              else
@@ -3743,10 +3764,11 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            tpcTrack->Py(),
                                                            tpcTrack->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(13)))->Fill(tpcTrack->Eta(),
-                                                 tpcTrack->Phi()*180./TMath::Pi());
            }
            else if(track->Charge() < 0) {
+             ((TH3D *)(fRejectedCutList->At(1)))->Fill(tpcTrack->Eta(),
+                                                       tpcTrack->Phi()*180./TMath::Pi(),
+                                                       nClustersTPC);
              if(fAnalysisEtaMode)
                ((TH2D *)(fQA2DList->At(5)))->Fill(tpcTrack->Eta(),Pt);
              else
@@ -3754,12 +3776,13 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            tpcTrack->Py(),
                                                            tpcTrack->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(17)))->Fill(tpcTrack->Eta(),
-                                                 tpcTrack->Phi()*180./TMath::Pi());
            }
          }//rejected primary particles
          else if(label > stack->GetNprimary()) {
            if(track->Charge() > 0) {
+             ((TH3D *)(fRejectedCutList->At(2)))->Fill(tpcTrack->Eta(),
+                                                       tpcTrack->Phi()*180./TMath::Pi(),
+                                                       nClustersTPC);
              if(fAnalysisEtaMode)
                ((TH2D *)(fQA2DList->At(3)))->Fill(tpcTrack->Eta(),Pt);
              else
@@ -3767,10 +3790,11 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            tpcTrack->Py(),
                                                            tpcTrack->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(15)))->Fill(tpcTrack->Eta(),
-                                                 tpcTrack->Phi()*180./TMath::Pi());
            }
            else if(track->Charge() < 0) {
+             ((TH3D *)(fRejectedCutList->At(3)))->Fill(tpcTrack->Eta(),
+                                                       tpcTrack->Phi()*180./TMath::Pi(),
+                                                       nClustersTPC);
              if(fAnalysisEtaMode)
                ((TH2D *)(fQA2DList->At(7)))->Fill(tpcTrack->Eta(),Pt);
              else
@@ -3778,8 +3802,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            tpcTrack->Py(),
                                                            tpcTrack->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(19)))->Fill(tpcTrack->Eta(),
-                                                 tpcTrack->Phi()*180./TMath::Pi());
            }
          }//rejected secondary particles
        }//rejected - track cuts
@@ -3822,6 +3844,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
              ((TH1F *)(fAcceptedCutList->At(32)))->Fill(extCov[5]);
              ((TH1F *)(fAcceptedCutList->At(36)))->Fill(extCov[9]);
              ((TH1F *)(fAcceptedCutList->At(40)))->Fill(extCov[14]);
+             ((TH3D *)(fAcceptedCutList->At(44)))->Fill(track->Eta(),
+                                                        track->Phi()*180./TMath::Pi(),
+                                                        nClustersTPC);
              
              ((TH1F *)(fAcceptedDCAList->At(0)))->Fill(TMath::Abs(dcaXY));
              ((TH1F *)(fAcceptedDCAList->At(4)))->Fill(TMath::Abs(dcaZ));
@@ -3833,8 +3858,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            track->Py(),
                                                            track->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(12)))->Fill(track->Eta(),
-                                                 track->Phi()*180./TMath::Pi());
            }
            else if(track->Charge() < 0) {
              for(Int_t iLayer = 0; iLayer < 6; iLayer++) {
@@ -3851,6 +3874,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
              ((TH1F *)(fAcceptedCutList->At(33)))->Fill(extCov[5]);
              ((TH1F *)(fAcceptedCutList->At(37)))->Fill(extCov[9]);
              ((TH1F *)(fAcceptedCutList->At(41)))->Fill(extCov[14]);
+             ((TH3D *)(fAcceptedCutList->At(45)))->Fill(track->Eta(),
+                                                        track->Phi()*180./TMath::Pi(),
+                                                        nClustersTPC);
              
              ((TH1F *)(fAcceptedDCAList->At(1)))->Fill(TMath::Abs(dcaXY));
              ((TH1F *)(fAcceptedDCAList->At(5)))->Fill(TMath::Abs(dcaZ));
@@ -3862,8 +3888,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            track->Py(),
                                                            track->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(16)))->Fill(track->Eta(),
-                                                 track->Phi()*180./TMath::Pi());
            }
          }//primary particles
          else if(label > stack->GetNprimary()) {
@@ -3895,6 +3919,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
              ((TH1F *)(fAcceptedCutList->At(34)))->Fill(extCov[5]);
              ((TH1F *)(fAcceptedCutList->At(38)))->Fill(extCov[9]);
              ((TH1F *)(fAcceptedCutList->At(42)))->Fill(extCov[14]);
+             ((TH3D *)(fAcceptedCutList->At(46)))->Fill(track->Eta(),
+                                                        track->Phi()*180./TMath::Pi(),
+                                                        nClustersTPC);
              
              ((TH1F *)(fAcceptedDCAList->At(2)))->Fill(TMath::Abs(dcaXY));
              ((TH1F *)(fAcceptedDCAList->At(6)))->Fill(TMath::Abs(dcaZ));
@@ -3906,8 +3933,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            track->Py(),
                                                            track->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(14)))->Fill(track->Eta(),
-                                                 track->Phi()*180./TMath::Pi());
              if(fAnalysisEtaMode)
                ((TH3F *)(fQA2DList->At(10)))->Fill(track->Eta(),Pt,
                                                    ConvertPDGToInt(motherPDGCode));
@@ -3933,6 +3958,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
              ((TH1F *)(fAcceptedCutList->At(35)))->Fill(extCov[5]);
              ((TH1F *)(fAcceptedCutList->At(39)))->Fill(extCov[9]);
              ((TH1F *)(fAcceptedCutList->At(43)))->Fill(extCov[14]);
+             ((TH3D *)(fAcceptedCutList->At(47)))->Fill(track->Eta(),
+                                                        track->Phi()*180./TMath::Pi(),
+                                                        nClustersTPC);
              
              ((TH1F *)(fAcceptedDCAList->At(3)))->Fill(TMath::Abs(dcaXY));
              ((TH1F *)(fAcceptedDCAList->At(7)))->Fill(TMath::Abs(dcaZ));
@@ -3944,9 +3972,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            track->Py(),
                                                            track->Pz()),
                                                   Pt);
-             
-             ((TH2D *)(fQA2DList->At(18)))->Fill(track->Eta(),
-                                                 track->Phi()*180./TMath::Pi());
              if(fAnalysisEtaMode)
                ((TH3F *)(fQA2DList->At(11)))->Fill(track->Eta(),Pt,
                                                    ConvertPDGToInt(motherPDGCode));
@@ -3962,6 +3987,9 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
        else if(!IsAccepted(esd,vertex,track)) {
          if(label <= stack->GetNprimary()) {
            if(track->Charge() > 0) {
+             ((TH3D *)(fRejectedCutList->At(0)))->Fill(track->Eta(),
+                                                       track->Phi()*180./TMath::Pi(),
+                                                       nClustersTPC);
              if(fAnalysisEtaMode)
                ((TH2D *)(fQA2DList->At(1)))->Fill(track->Eta(),Pt);
              else
@@ -3969,10 +3997,11 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            track->Py(),
                                                            track->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(13)))->Fill(track->Eta(),
-                                                 track->Phi()*180./TMath::Pi());
            }
            else if(track->Charge() < 0) {
+             ((TH3D *)(fRejectedCutList->At(1)))->Fill(track->Eta(),
+                                                       track->Phi()*180./TMath::Pi(),
+                                                       nClustersTPC);
              if(fAnalysisEtaMode)
                ((TH2D *)(fQA2DList->At(5)))->Fill(track->Eta(),Pt);
              else
@@ -3980,12 +4009,13 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            track->Py(),
                                                            track->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(17)))->Fill(track->Eta(),
-                                                 track->Phi()*180./TMath::Pi());
            }
          }//primary particles
          else if(label > stack->GetNprimary()) {
            if(track->Charge() > 0) {
+             ((TH3D *)(fRejectedCutList->At(2)))->Fill(track->Eta(),
+                                                       track->Phi()*180./TMath::Pi(),
+                                                       nClustersTPC);
              if(fAnalysisEtaMode)
                ((TH2D *)(fQA2DList->At(3)))->Fill(track->Eta(),Pt);
              else
@@ -3993,10 +4023,11 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            track->Py(),
                                                            track->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(15)))->Fill(track->Eta(),
-                                                 track->Phi()*180./TMath::Pi());
            }
            else if(track->Charge() < 0) {
+             ((TH3D *)(fRejectedCutList->At(3)))->Fill(track->Eta(),
+                                                       track->Phi()*180./TMath::Pi(),
+                                                       nClustersTPC);
              if(fAnalysisEtaMode)
                ((TH2D *)(fQA2DList->At(7)))->Fill(track->Eta(),Pt);
              else
@@ -4004,8 +4035,6 @@ void AliProtonQAAnalysis::RunQAAnalysis(AliStack *stack,
                                                            track->Py(),
                                                            track->Pz()),
                                                   Pt);
-             ((TH2D *)(fQA2DList->At(19)))->Fill(track->Eta(),
-                                                 track->Phi()*180./TMath::Pi());
            }
          }//secondary particles
        }//rejected - track cuts
index 7ebbfee611368ca21e097a8af87cf8f7953b83e4..68d1bf799cecb83efeb869b728c11422e7eba4e7 100644 (file)
@@ -1,6 +1,6 @@
 void drawProtonQAResults(const char *analysisType = "TPC") {
   //Macro to visualize the results of the proton QA task
-  //TCanvas objects: 16
+  //TCanvas objects: 20
   gStyle->SetPalette(1,0);
   gStyle->SetCanvasColor(41);
   gStyle->SetFrameFillColor(10);
@@ -42,8 +42,8 @@ void drawCutStatistics(TList *list,
   //The histogram shows the influence of each cut on the primary
   //and secondary (anti)protons
   const Int_t NQAHISTOSPERLIST = 26;
-  
-  Double_t gEntriesQA2DList[20] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
+
+  Double_t gEntriesQA2DList[12] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
   Double_t gEntriesQAPrimaryProtonsAcceptedList[NQAHISTOSPERLIST], gEntriesQAPrimaryProtonsRejectedList[NQAHISTOSPERLIST];
   Double_t gEntriesQASecondaryProtonsAcceptedList[NQAHISTOSPERLIST], gEntriesQASecondaryProtonsRejectedList[NQAHISTOSPERLIST];
   Double_t gEntriesQAPrimaryAntiProtonsAcceptedList[NQAHISTOSPERLIST], gEntriesQAPrimaryAntiProtonsRejectedList[NQAHISTOSPERLIST];
@@ -64,40 +64,6 @@ void drawCutStatistics(TList *list,
   GetQAEntries(fQA2DList,gEntriesQA2DList);
   TH3F *gHistYPtPDGProtonsPass = (TH3F *)fQA2DList->At(10);
   TH3F *gHistYPtPDGAntiProtonsPass = (TH3F *)fQA2DList->At(11);
-  TH2D *gHistEtaPtPrimaryProtonsAccepted = (TH2D *)fQA2DList->At(12);
-  TH2D *gHistEtaPtPrimaryProtonsRejected = (TH2D *)fQA2DList->At(13);
-  TH2D *gHistEtaPtSecondaryProtonsAccepted = (TH2D *)fQA2DList->At(14);
-  TH2D *gHistEtaPtSecondaryProtonsRejected = (TH2D *)fQA2DList->At(15);
-  TH2D *gHistEtaPtPrimaryAntiProtonsAccepted = (TH2D *)fQA2DList->At(16);
-  TH2D *gHistEtaPtPrimaryAntiProtonsRejected = (TH2D *)fQA2DList->At(17);
-  TH2D *gHistEtaPtSecondaryAntiProtonsAccepted = (TH2D *)fQA2DList->At(18);
-  TH2D *gHistEtaPtSecondaryAntiProtonsRejected = (TH2D *)fQA2DList->At(19);
-
-  TCanvas *c17 = new TCanvas("c17",
-                            "Proton eta-pT",
-                            800,800,700,700);
-  c17->SetHighLightColor(10); c17->Divide(2,2);
-  c17->cd(1); gHistEtaPtPrimaryProtonsAccepted->SetStats(kFALSE); 
-  gHistEtaPtPrimaryProtonsAccepted->Draw("col");
-  c17->cd(2); gHistEtaPtPrimaryProtonsRejected->SetStats(kFALSE); 
-  gHistEtaPtPrimaryProtonsRejected->Draw("col");
-  c17->cd(3); gHistEtaPtSecondaryProtonsAccepted->SetStats(kFALSE); 
-  gHistEtaPtSecondaryProtonsAccepted->Draw("col");
-  c17->cd(4); gHistEtaPtSecondaryProtonsRejected->SetStats(kFALSE); 
-  gHistEtaPtSecondaryProtonsRejected->Draw("col");
-
-  TCanvas *c18 = new TCanvas("c18",
-                            "Proton eta-pT",
-                            850,850,700,700);
-  c18->SetHighLightColor(10); c18->Divide(2,2);
-  c18->cd(1); gHistEtaPtPrimaryAntiProtonsAccepted->SetStats(kFALSE);
-  gHistEtaPtPrimaryAntiProtonsAccepted->Draw("col");
-  c18->cd(2); gHistEtaPtPrimaryAntiProtonsRejected->SetStats(kFALSE);
-  gHistEtaPtPrimaryAntiProtonsRejected->Draw("col");
-  c18->cd(3); gHistEtaPtSecondaryAntiProtonsAccepted->SetStats(kFALSE);
-  gHistEtaPtSecondaryAntiProtonsAccepted->Draw("col");
-  c18->cd(4); gHistEtaPtSecondaryAntiProtonsRejected->SetStats(kFALSE);
-  gHistEtaPtSecondaryAntiProtonsRejected->Draw("col");
  
   TList *fQAPrimaryProtonsAcceptedList = (TList *)list->At(1);
   GetQAEntries(fQAPrimaryProtonsAcceptedList,gEntriesQAPrimaryProtonsAcceptedList);
@@ -1349,135 +1315,138 @@ void drawVertexQA(TList *list) {
   TH1F *gHistTracksResolutionVy = (TH1F *)list->At(29);
   TH1F *gHistTracksResolutionVz = (TH1F *)list->At(30);
 
-  TCanvas *c19 = new TCanvas("c19",
+  TCanvas *c17 = new TCanvas("c17",
                             "Vertex efficiency",
                             300,0,900,400);
-  c19->SetHighLightColor(10); c19->Divide(3,1);
-  c19->cd(1)->SetLeftMargin(0.15); c19->cd(1)->SetBottomMargin(0.15);  
-  c19->cd(1)->SetRightMargin(0.2);
+  c17->SetHighLightColor(10); c17->Divide(3,1);
+  c17->cd(1)->SetLeftMargin(0.15); c17->cd(1)->SetBottomMargin(0.15);  
+  c17->cd(1)->SetRightMargin(0.2);
   gHistMCPrimaryMultiplicityTPC->Divide(gHistMCPrimaryMultiplicity);
   SetError(gHistMCPrimaryMultiplicityTPC,gHistMCPrimaryMultiplicity);
   gHistMCPrimaryMultiplicityTPC->Scale(100.);
   gHistMCPrimaryMultiplicityTPC->SetMarkerStyle(20);
   gHistMCPrimaryMultiplicityTPC->SetMarkerColor(1);
   gHistMCPrimaryMultiplicityTPC->GetYaxis()->SetTitle("#epsilon [%]");
+  gHistMCPrimaryMultiplicityTPC->SetStats(kFALSE);
   gHistMCPrimaryMultiplicityTPC->Draw("E");
-  c19->cd(2)->SetLeftMargin(0.15); c19->cd(2)->SetBottomMargin(0.15);  
-  c19->cd(2)->SetRightMargin(0.2);
+  c17->cd(2)->SetLeftMargin(0.15); c17->cd(2)->SetBottomMargin(0.15);  
+  c17->cd(2)->SetRightMargin(0.2);
   gHistMCPrimaryMultiplicitySPD->Divide(gHistMCPrimaryMultiplicity);
   SetError(gHistMCPrimaryMultiplicitySPD,gHistMCPrimaryMultiplicity);
   gHistMCPrimaryMultiplicitySPD->Scale(100.);
   gHistMCPrimaryMultiplicitySPD->SetMarkerStyle(20);
   gHistMCPrimaryMultiplicitySPD->SetMarkerColor(1);
   gHistMCPrimaryMultiplicitySPD->GetYaxis()->SetTitle("#epsilon [%]");
+  gHistMCPrimaryMultiplicitySPD->SetStats(kFALSE);
   gHistMCPrimaryMultiplicitySPD->Draw("E");
-  c19->cd(3)->SetLeftMargin(0.15); c19->cd(3)->SetBottomMargin(0.15);  
-  c19->cd(3)->SetRightMargin(0.2);
+  c17->cd(3)->SetLeftMargin(0.15); c17->cd(3)->SetBottomMargin(0.15);  
+  c17->cd(3)->SetRightMargin(0.2);
   gHistMCPrimaryMultiplicityTracks->Divide(gHistMCPrimaryMultiplicity);
   SetError(gHistMCPrimaryMultiplicityTracks,gHistMCPrimaryMultiplicity);
   gHistMCPrimaryMultiplicityTracks->Scale(100.);
   gHistMCPrimaryMultiplicityTracks->SetMarkerStyle(20);
   gHistMCPrimaryMultiplicityTracks->SetMarkerColor(1);
   gHistMCPrimaryMultiplicityTracks->GetYaxis()->SetTitle("#epsilon [%]");
+  gHistMCPrimaryMultiplicityTracks->SetStats(kFALSE);
   gHistMCPrimaryMultiplicityTracks->Draw("E");
 
   //TPC vertex
-  TCanvas *c20 = new TCanvas("c20",
+  TCanvas *c18 = new TCanvas("c18",
                             "TPC vertex",
                             350,50,700,700);
-  c20->SetHighLightColor(10); c20->Divide(3,3);
-  c20->cd(1)->SetLeftMargin(0.15); c20->cd(1)->SetBottomMargin(0.15);  
-  c20->cd(1)->SetRightMargin(0.2); c20->cd(1)->SetLogy();
+  c18->SetHighLightColor(10); c18->Divide(3,3);
+  c18->cd(1)->SetLeftMargin(0.15); c18->cd(1)->SetBottomMargin(0.15);  
+  c18->cd(1)->SetRightMargin(0.2); c18->cd(1)->SetLogy();
   gHistTPCESDVx->Draw("col");
-  c20->cd(2)->SetLeftMargin(0.15); c20->cd(2)->SetBottomMargin(0.15);  
-  c20->cd(2)->SetRightMargin(0.2); c20->cd(2)->SetLogy();
+  c18->cd(2)->SetLeftMargin(0.15); c18->cd(2)->SetBottomMargin(0.15);  
+  c18->cd(2)->SetRightMargin(0.2); c18->cd(2)->SetLogy();
   gHistTPCESDVy->Draw("col");
-  c20->cd(3)->SetLeftMargin(0.15); c20->cd(3)->SetBottomMargin(0.15);  
-  c20->cd(3)->SetRightMargin(0.2); c20->cd(3)->SetLogy();
+  c18->cd(3)->SetLeftMargin(0.15); c18->cd(3)->SetBottomMargin(0.15);  
+  c18->cd(3)->SetRightMargin(0.2); c18->cd(3)->SetLogy();
   gHistTPCESDVz->Draw("col");
-  c20->cd(4)->SetLeftMargin(0.15); c20->cd(4)->SetBottomMargin(0.15);  
-  c20->cd(4)->SetRightMargin(0.2); c20->cd(4)->SetLogy();
+  c18->cd(4)->SetLeftMargin(0.15); c18->cd(4)->SetBottomMargin(0.15);  
+  c18->cd(4)->SetRightMargin(0.2); c18->cd(4)->SetLogy();
   gHistTPCDiffVx->Draw();
-  c20->cd(5)->SetLeftMargin(0.15); c20->cd(5)->SetBottomMargin(0.15);  
-  c20->cd(5)->SetRightMargin(0.2); c20->cd(5)->SetLogy();
+  c18->cd(5)->SetLeftMargin(0.15); c18->cd(5)->SetBottomMargin(0.15);  
+  c18->cd(5)->SetRightMargin(0.2); c18->cd(5)->SetLogy();
   gHistTPCDiffVy->Draw();
-  c20->cd(6)->SetLeftMargin(0.15); c20->cd(6)->SetBottomMargin(0.15);  
-  c20->cd(6)->SetRightMargin(0.2); c20->cd(6)->SetLogy();
+  c18->cd(6)->SetLeftMargin(0.15); c18->cd(6)->SetBottomMargin(0.15);  
+  c18->cd(6)->SetRightMargin(0.2); c18->cd(6)->SetLogy();
   gHistTPCDiffVz->Draw();
-  c20->cd(7)->SetLeftMargin(0.15); c20->cd(7)->SetBottomMargin(0.15);  
-  c20->cd(7)->SetRightMargin(0.2); c20->cd(7)->SetLogy();
+  c18->cd(7)->SetLeftMargin(0.15); c18->cd(7)->SetBottomMargin(0.15);  
+  c18->cd(7)->SetRightMargin(0.2); c18->cd(7)->SetLogy();
   gHistTPCResolutionVx->Draw();
-  c20->cd(8)->SetLeftMargin(0.15); c20->cd(8)->SetBottomMargin(0.15);  
-  c20->cd(8)->SetRightMargin(0.2); c20->cd(8)->SetLogy();
+  c18->cd(8)->SetLeftMargin(0.15); c18->cd(8)->SetBottomMargin(0.15);  
+  c18->cd(8)->SetRightMargin(0.2); c18->cd(8)->SetLogy();
   gHistTPCResolutionVy->Draw();
-  c20->cd(9)->SetLeftMargin(0.15); c20->cd(9)->SetBottomMargin(0.15);  
-  c20->cd(9)->SetRightMargin(0.2); c20->cd(9)->SetLogy();
+  c18->cd(9)->SetLeftMargin(0.15); c18->cd(9)->SetBottomMargin(0.15);  
+  c18->cd(9)->SetRightMargin(0.2); c18->cd(9)->SetLogy();
   gHistTPCResolutionVz->Draw();
 
   //SPD vertex
-  TCanvas *c21 = new TCanvas("c21",
+  TCanvas *c19 = new TCanvas("c19",
                             "SPD vertex",
                             400,100,700,700);
-  c21->SetHighLightColor(10); c21->Divide(3,3);
-  c21->cd(1)->SetLeftMargin(0.15); c21->cd(1)->SetBottomMargin(0.15);  
-  c21->cd(1)->SetRightMargin(0.2); c21->cd(1)->SetLogy();
+  c19->SetHighLightColor(10); c19->Divide(3,3);
+  c19->cd(1)->SetLeftMargin(0.15); c19->cd(1)->SetBottomMargin(0.15);  
+  c19->cd(1)->SetRightMargin(0.2); c19->cd(1)->SetLogy();
   gHistSPDESDVx->Draw("col");
-  c21->cd(2)->SetLeftMargin(0.15); c21->cd(2)->SetBottomMargin(0.15);  
-  c21->cd(2)->SetRightMargin(0.2); c21->cd(2)->SetLogy();
+  c19->cd(2)->SetLeftMargin(0.15); c19->cd(2)->SetBottomMargin(0.15);  
+  c19->cd(2)->SetRightMargin(0.2); c19->cd(2)->SetLogy();
   gHistSPDESDVy->Draw("col");
-  c21->cd(3)->SetLeftMargin(0.15); c21->cd(3)->SetBottomMargin(0.15);  
-  c21->cd(3)->SetRightMargin(0.2); c21->cd(3)->SetLogy();
+  c19->cd(3)->SetLeftMargin(0.15); c19->cd(3)->SetBottomMargin(0.15);  
+  c19->cd(3)->SetRightMargin(0.2); c19->cd(3)->SetLogy();
   gHistSPDESDVz->Draw("col");
-  c21->cd(4)->SetLeftMargin(0.15); c21->cd(4)->SetBottomMargin(0.15);  
-  c21->cd(4)->SetRightMargin(0.2); c21->cd(4)->SetLogy();
+  c19->cd(4)->SetLeftMargin(0.15); c19->cd(4)->SetBottomMargin(0.15);  
+  c19->cd(4)->SetRightMargin(0.2); c19->cd(4)->SetLogy();
   gHistSPDDiffVx->Draw();
-  c21->cd(5)->SetLeftMargin(0.15); c21->cd(5)->SetBottomMargin(0.15);  
-  c21->cd(5)->SetRightMargin(0.2); c21->cd(5)->SetLogy();
+  c19->cd(5)->SetLeftMargin(0.15); c19->cd(5)->SetBottomMargin(0.15);  
+  c19->cd(5)->SetRightMargin(0.2); c19->cd(5)->SetLogy();
   gHistSPDDiffVy->Draw();
-  c21->cd(6)->SetLeftMargin(0.15); c21->cd(6)->SetBottomMargin(0.15);  
-  c21->cd(6)->SetRightMargin(0.2); c21->cd(6)->SetLogy();
+  c19->cd(6)->SetLeftMargin(0.15); c19->cd(6)->SetBottomMargin(0.15);  
+  c19->cd(6)->SetRightMargin(0.2); c19->cd(6)->SetLogy();
   gHistSPDDiffVz->Draw();
-  c21->cd(7)->SetLeftMargin(0.15); c21->cd(7)->SetBottomMargin(0.15);  
-  c21->cd(7)->SetRightMargin(0.2); c21->cd(7)->SetLogy();
+  c19->cd(7)->SetLeftMargin(0.15); c19->cd(7)->SetBottomMargin(0.15);  
+  c19->cd(7)->SetRightMargin(0.2); c19->cd(7)->SetLogy();
   gHistSPDResolutionVx->Draw();
-  c21->cd(8)->SetLeftMargin(0.15); c21->cd(8)->SetBottomMargin(0.15);  
-  c21->cd(8)->SetRightMargin(0.2); c21->cd(8)->SetLogy();
+  c19->cd(8)->SetLeftMargin(0.15); c19->cd(8)->SetBottomMargin(0.15);  
+  c19->cd(8)->SetRightMargin(0.2); c19->cd(8)->SetLogy();
   gHistSPDResolutionVy->Draw();
-  c21->cd(9)->SetLeftMargin(0.15); c21->cd(9)->SetBottomMargin(0.15);  
-  c21->cd(9)->SetRightMargin(0.2); c21->cd(9)->SetLogy();
+  c19->cd(9)->SetLeftMargin(0.15); c19->cd(9)->SetBottomMargin(0.15);  
+  c19->cd(9)->SetRightMargin(0.2); c19->cd(9)->SetLogy();
   gHistSPDResolutionVz->Draw();
 
   //Tracks vertex
-  TCanvas *c22 = new TCanvas("c22",
+  TCanvas *c20 = new TCanvas("c20",
                             "Tracks vertex",
-                            350,50,700,700);
-  c22->SetHighLightColor(10); c22->Divide(3,3);
-  c22->cd(1)->SetLeftMargin(0.15); c22->cd(1)->SetBottomMargin(0.15);  
-  c22->cd(1)->SetRightMargin(0.2); c22->cd(1)->SetLogy();
+                            450,150,700,700);
+  c20->SetHighLightColor(10); c20->Divide(3,3);
+  c20->cd(1)->SetLeftMargin(0.15); c20->cd(1)->SetBottomMargin(0.15);  
+  c20->cd(1)->SetRightMargin(0.2); c20->cd(1)->SetLogy();
   gHistTracksESDVx->Draw("col");
-  c22->cd(2)->SetLeftMargin(0.15); c22->cd(2)->SetBottomMargin(0.15);  
-  c22->cd(2)->SetRightMargin(0.2); c22->cd(2)->SetLogy();
+  c20->cd(2)->SetLeftMargin(0.15); c20->cd(2)->SetBottomMargin(0.15);  
+  c20->cd(2)->SetRightMargin(0.2); c20->cd(2)->SetLogy();
   gHistTracksESDVy->Draw("col");
-  c22->cd(3)->SetLeftMargin(0.15); c22->cd(3)->SetBottomMargin(0.15);  
-  c22->cd(3)->SetRightMargin(0.2); c22->cd(3)->SetLogy();
+  c20->cd(3)->SetLeftMargin(0.15); c20->cd(3)->SetBottomMargin(0.15);  
+  c20->cd(3)->SetRightMargin(0.2); c20->cd(3)->SetLogy();
   gHistTracksESDVz->Draw("col");
-  c22->cd(4)->SetLeftMargin(0.15); c22->cd(4)->SetBottomMargin(0.15);  
-  c22->cd(4)->SetRightMargin(0.2); c22->cd(4)->SetLogy();
+  c20->cd(4)->SetLeftMargin(0.15); c20->cd(4)->SetBottomMargin(0.15);  
+  c20->cd(4)->SetRightMargin(0.2); c20->cd(4)->SetLogy();
   gHistTracksDiffVx->Draw();
-  c22->cd(5)->SetLeftMargin(0.15); c22->cd(5)->SetBottomMargin(0.15);  
-  c22->cd(5)->SetRightMargin(0.2); c22->cd(5)->SetLogy();
+  c20->cd(5)->SetLeftMargin(0.15); c20->cd(5)->SetBottomMargin(0.15);  
+  c20->cd(5)->SetRightMargin(0.2); c20->cd(5)->SetLogy();
   gHistTracksDiffVy->Draw();
-  c22->cd(6)->SetLeftMargin(0.15); c22->cd(6)->SetBottomMargin(0.15);  
-  c22->cd(6)->SetRightMargin(0.2); c22->cd(6)->SetLogy();
+  c20->cd(6)->SetLeftMargin(0.15); c20->cd(6)->SetBottomMargin(0.15);  
+  c20->cd(6)->SetRightMargin(0.2); c20->cd(6)->SetLogy();
   gHistTracksDiffVz->Draw();
-  c22->cd(7)->SetLeftMargin(0.15); c22->cd(7)->SetBottomMargin(0.15);  
-  c22->cd(7)->SetRightMargin(0.2); c22->cd(7)->SetLogy();
+  c20->cd(7)->SetLeftMargin(0.15); c20->cd(7)->SetBottomMargin(0.15);  
+  c20->cd(7)->SetRightMargin(0.2); c20->cd(7)->SetLogy();
   gHistTracksResolutionVx->Draw();
-  c22->cd(8)->SetLeftMargin(0.15); c22->cd(8)->SetBottomMargin(0.15);  
-  c22->cd(8)->SetRightMargin(0.2); c22->cd(8)->SetLogy();
+  c20->cd(8)->SetLeftMargin(0.15); c20->cd(8)->SetBottomMargin(0.15);  
+  c20->cd(8)->SetRightMargin(0.2); c20->cd(8)->SetLogy();
   gHistTracksResolutionVy->Draw();
-  c22->cd(9)->SetLeftMargin(0.15); c22->cd(9)->SetBottomMargin(0.15);  
-  c22->cd(9)->SetRightMargin(0.2); c22->cd(9)->SetLogy();
+  c20->cd(9)->SetLeftMargin(0.15); c20->cd(9)->SetBottomMargin(0.15);  
+  c20->cd(9)->SetRightMargin(0.2); c20->cd(9)->SetLogy();
   gHistTracksResolutionVz->Draw();
 }
 
@@ -1814,3 +1783,96 @@ const char * const gMCProcessName[45] = {
   "Transportation",
   "Unknown process"
 };
+
+//________________________________________________//
+void drawKineQA(const char *filename) {
+  //Draws the QA plots for the kinematic variables for protons and antiprotons
+  gStyle->SetPalette(1,0);
+  gStyle->SetCanvasColor(41);
+  gStyle->SetFrameFillColor(10);
+
+  TFile *f = TFile::Open(filename);
+  TList *acceptedList = (TList *)f->Get("acceptedCutList");
+  TH3D *gHistEtaPhiNClustersPrimaryProtonsPass = (TH3D *)acceptedList->At(44);
+  TH3D *gHistEtaPhiNClustersSecondaryProtonsPass = (TH3D *)acceptedList->At(46);
+  TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsPass = (TH3D *)acceptedList->At(45);
+  TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsPass = (TH3D *)acceptedList->At(47);
+
+  TList *rejectedList = (TList *)f->Get("rejectedCutList");
+  TH3D *gHistEtaPhiNClustersPrimaryProtonsReject = (TH3D *)rejectedList->At(0);
+  gHistEtaPhiNClustersPrimaryProtonsPass->Add(gHistEtaPhiNClustersPrimaryProtonsReject);
+  TH3D *gHistEtaPhiNClustersSecondaryProtonsReject = (TH3D *)rejectedList->At(2);
+  gHistEtaPhiNClustersSecondaryProtonsPass->Add(gHistEtaPhiNClustersSecondaryProtonsReject);
+  TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsReject = (TH3D *)rejectedList->At(1);
+  gHistEtaPhiNClustersPrimaryAntiProtonsPass->Add(gHistEtaPhiNClustersPrimaryAntiProtonsReject);
+  TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsReject = (TH3D *)rejectedList->At(3);
+  gHistEtaPhiNClustersSecondaryAntiProtonsPass->Add(gHistEtaPhiNClustersSecondaryAntiProtonsReject);
+
+  //eta-phi
+  TCanvas *c21 = new TCanvas("c21",
+                            "#eta-#phi",
+                            0,0,600,600);
+  c21->SetHighLightColor(10); c21->Divide(2,2);
+  c21->cd(1)->SetLeftMargin(0.15); c21->cd(1)->SetBottomMargin(0.15);  
+  c21->cd(1)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("yx")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("yx")))->DrawCopy("col");
+  c21->cd(2)->SetLeftMargin(0.15); c21->cd(2)->SetBottomMargin(0.15);  
+  c21->cd(2)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("yx")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("yx")))->DrawCopy("col");
+  c21->cd(3)->SetLeftMargin(0.15); c21->cd(3)->SetBottomMargin(0.15);  
+  c21->cd(3)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("yx")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("yx")))->DrawCopy("col");
+  c21->cd(4)->SetLeftMargin(0.15); c21->cd(4)->SetBottomMargin(0.15);  
+  c21->cd(4)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("yx")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("yx")))->DrawCopy("col");
+
+  //eta-Nclusters
+  TCanvas *c22 = new TCanvas("c22",
+                            "#eta-N_{clusters}",
+                            100,100,600,600);
+  c22->SetHighLightColor(10); c22->Divide(2,2);
+  c22->cd(1)->SetLeftMargin(0.15); c22->cd(1)->SetBottomMargin(0.15);  
+  c22->cd(1)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("zx")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("zx")))->DrawCopy("col");
+  c22->cd(2)->SetLeftMargin(0.15); c22->cd(2)->SetBottomMargin(0.15);  
+  c22->cd(2)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("zx")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("zx")))->DrawCopy("col");
+  c22->cd(3)->SetLeftMargin(0.15); c22->cd(3)->SetBottomMargin(0.15);  
+  c22->cd(3)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("zx")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("zx")))->DrawCopy("col");
+  c22->cd(4)->SetLeftMargin(0.15); c22->cd(4)->SetBottomMargin(0.15);  
+  c22->cd(4)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("zx")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("zx")))->DrawCopy("col");
+
+  //phi-Nclusters
+  TCanvas *c23 = new TCanvas("c23",
+                            "#phi-N_{clusters}",
+                            200,200,600,600);
+  c23->SetHighLightColor(10); c23->Divide(2,2);
+  c23->cd(1)->SetLeftMargin(0.15); c23->cd(1)->SetBottomMargin(0.15);  
+  c23->cd(1)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("zy")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("zy")))->DrawCopy("col");
+  c23->cd(2)->SetLeftMargin(0.15); c23->cd(2)->SetBottomMargin(0.15);  
+  c23->cd(2)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("zy")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("zy")))->DrawCopy("col");
+  c23->cd(3)->SetLeftMargin(0.15); c23->cd(3)->SetBottomMargin(0.15);  
+  c23->cd(3)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("zy")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("zy")))->DrawCopy("col");
+  c23->cd(4)->SetLeftMargin(0.15); c23->cd(4)->SetBottomMargin(0.15);  
+  c23->cd(4)->SetRightMargin(0.2);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("zy")))->SetStats(kFALSE);
+  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("zy")))->DrawCopy("col");
+
+  f->Close();
+}
index 5d05c0cc509875e0c1e08b219f49dbae9f376b45..037e599c27a2427206f186a57e690168fc0c6e87 100644 (file)
@@ -12,8 +12,8 @@ void runProtonAnalysisQA(const char *analysisType = "TPC") {
   
   //runProof(200000,"/COMMON/COMMON/LHC08c11_10TeV_0.5T",analysisType);
   //runInteractive("wn.xml",analysisType);
-  //runBatch("wn.xml",analysisType);
-  runLocal(analysisType);
+  runBatch("wn.xml",analysisType);
+  //runLocal(analysisType);
 
   timer.Stop();
   timer.Print();
@@ -105,15 +105,19 @@ void runLocal(const char* analysisType) {
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename3.Data());
-  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("acceptedDCAList", 
+  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename3.Data());
-  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("efficiencyList", 
+  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename4.Data());
-  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("vertexList", 
+  AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename5.Data());
@@ -127,6 +131,7 @@ void runLocal(const char* analysisType) {
   mgr->ConnectOutput(taskProtonsQA,4,coutput5);
   mgr->ConnectOutput(taskProtonsQA,5,coutput6);
   mgr->ConnectOutput(taskProtonsQA,6,coutput7);
+  mgr->ConnectOutput(taskProtonsQA,7,coutput8);
   if (!mgr->InitAnalysis()) return;
   mgr->PrintStatus();
   mgr->StartAnalysis("local",chain);
@@ -227,15 +232,19 @@ void runBatch(const char *collectionfile,
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename3.Data());
-  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("acceptedDCAList", 
+  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename3.Data());
-  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("efficiencyList", 
+  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename4.Data());
-  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("vertexList", 
+  AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename5.Data());
@@ -249,6 +258,7 @@ void runBatch(const char *collectionfile,
   mgr->ConnectOutput(taskProtonsQA,4,coutput5);
   mgr->ConnectOutput(taskProtonsQA,5,coutput6);
   mgr->ConnectOutput(taskProtonsQA,6,coutput7);
+  mgr->ConnectOutput(taskProtonsQA,7,coutput8);
   if (!mgr->InitAnalysis()) return;
   mgr->PrintStatus();
   mgr->StartAnalysis("local",chain);
@@ -340,15 +350,19 @@ void runInteractive(const char *collectionfile,
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename3.Data());
-  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("acceptedDCAList", 
+  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename3.Data());
-  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("efficiencyList", 
+  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename4.Data());
-  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("vertexList", 
+  AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename5.Data());
@@ -362,6 +376,7 @@ void runInteractive(const char *collectionfile,
   mgr->ConnectOutput(taskProtonsQA,4,coutput5);
   mgr->ConnectOutput(taskProtonsQA,5,coutput6);
   mgr->ConnectOutput(taskProtonsQA,6,coutput7);
+  mgr->ConnectOutput(taskProtonsQA,7,coutput8);
   if (!mgr->InitAnalysis()) return;
   mgr->PrintStatus();
   mgr->StartAnalysis("local",chain);
@@ -451,15 +466,19 @@ void runProof(Int_t stats = 0,
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename3.Data());
-  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("acceptedDCAList", 
+  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename3.Data());
-  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("efficiencyList", 
+  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename4.Data());
-  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("vertexList", 
+  AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename5.Data());
@@ -473,6 +492,7 @@ void runProof(Int_t stats = 0,
   mgr->ConnectOutput(taskProtonsQA,4,coutput5);
   mgr->ConnectOutput(taskProtonsQA,5,coutput6);
   mgr->ConnectOutput(taskProtonsQA,6,coutput7);
+  mgr->ConnectOutput(taskProtonsQA,7,coutput8);
   if (!mgr->InitAnalysis()) return;
   mgr->PrintStatus();