]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/dNdPt/AlidNdPtAnalysis.cxx
change histogram bining
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtAnalysis.cxx
index b8e39c4227f45d302296a7883df774dec3fbb1a0..97cfc85762a866417504cdabc3f008a6736f437e 100644 (file)
@@ -133,7 +133,12 @@ ClassImp(AlidNdPtAnalysis)
   fMCMultRecTrackHist1(0), \r
 \r
   // rec. track control histograms\r
-  fRecTrackHist2(0)\r
+  fRecTrackHist2(0),\r
+\r
+  // Generic histograms to be corrected\r
+  fRecEventHist(0),\r
+  fRecTrackHist(0)\r
+\r
 {\r
   // default constructor\r
   for(Int_t i=0; i<AlidNdPtHelper::kCutSteps; i++) { \r
@@ -225,7 +230,11 @@ AlidNdPtAnalysis::AlidNdPtAnalysis(Char_t* name, Char_t* title): AlidNdPt(name,t
   fMCMultRecTrackHist1(0), \r
 \r
   // rec. track control histograms\r
-  fRecTrackHist2(0)\r
+  fRecTrackHist2(0),\r
+\r
+  // Generic histograms to be corrected\r
+  fRecEventHist(0),\r
+  fRecTrackHist(0)\r
 {\r
   //\r
   // constructor\r
@@ -318,6 +327,11 @@ AlidNdPtAnalysis::~AlidNdPtAnalysis() {
   if(fRecMCTrackHist1) delete fRecMCTrackHist1; fRecMCTrackHist1=0;\r
   if(fMCMultRecTrackHist1) delete fMCMultRecTrackHist1; fMCMultRecTrackHist1=0; \r
   if(fRecTrackHist2) delete fRecTrackHist2; fRecTrackHist2=0; \r
+\r
+  //\r
+  if(fRecEventHist) delete fRecEventHist; fRecEventHist=0; \r
+  if(fRecTrackHist) delete fRecTrackHist; fRecTrackHist=0; \r
+\r
   //\r
   if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;\r
 }\r
@@ -329,7 +343,7 @@ void AlidNdPtAnalysis::Init(){
   //\r
 \r
   const Int_t multNbins = 27;\r
-  const Int_t ptNbinsTrackEventCorr = 37;\r
+  const Int_t ptNbinsTrackEventCorr = 36;\r
   const Int_t ptNbins = 68;\r
   const Int_t etaNbins = 30;\r
   const Int_t zvNbins = 12;\r
@@ -338,7 +352,7 @@ void AlidNdPtAnalysis::Init(){
                                      9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5,\r
                                     19.5,20.5, 21.5, 22.5, 23.5, 24.5, 29.5, 149.5};\r
 \r
-  Double_t binsPtTrackEventCorr[ptNbinsTrackEventCorr+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,3.0,4.0,20.0,50.0};\r
+  Double_t binsPtTrackEventCorr[ptNbinsTrackEventCorr+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,3.0,4.0,50.0};\r
 \r
   Double_t binsPt[ptNbins+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.5,5.0,5.5,6.0,6.5,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,40.0,45.0,50.0};\r
 \r
@@ -350,6 +364,32 @@ void AlidNdPtAnalysis::Init(){
   //Int_t binsTrackMatrix[3]={zvNbins,ptNbins,etaNbins};\r
   Int_t binsTrackEventCorrMatrix[3]={zvNbins,ptNbinsTrackEventCorr,etaNbins};\r
 \r
+\r
+  //\r
+  // Generic histograms to be corrected\r
+  //\r
+  Int_t binsEventHist[2]={100,150};\r
+  Double_t minEventHist[2]={-25.,-0.5}; \r
+  Double_t maxEventHist[2]={25.,149.5}; \r
+\r
+  fRecEventHist = new THnSparseF("fRecEventHist","Zv:multMB",2,binsEventHist,minEventHist,maxEventHist);\r
+  fRecEventHist->GetAxis(0)->SetTitle("Zv (cm)");\r
+  fRecEventHist->GetAxis(1)->SetTitle("multiplicity MB");\r
+  fRecEventHist->Sumw2();\r
+\r
+  //\r
+  Int_t binsTrackHist[3]={100,ptNbins,etaNbins};\r
+  Double_t minTrackHist[3]={-25.,0.,-1.5}; \r
+  Double_t maxTrackHist[3]={25.,50.,1.5}; \r
+\r
+  fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta",3,binsTrackHist,minTrackHist,maxTrackHist);\r
+  fRecTrackHist->SetBinEdges(1,binsPt);\r
+  fRecTrackHist->SetBinEdges(2,binsEta);\r
+  fRecTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
+  fRecTrackHist->GetAxis(1)->SetTitle("p_{T} (GeV/c)");\r
+  fRecTrackHist->GetAxis(2)->SetTitle("#eta");\r
+  fRecTrackHist->Sumw2();\r
+\r
   //\r
   // rec. vs MC correlation matrices\r
   //\r
@@ -925,6 +965,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
     return;\r
   }\r
 \r
+\r
   // trigger selection\r
   Bool_t isEventTriggered = kTRUE;\r
   AliPhysicsSelection *trigSel = NULL;\r
@@ -1053,9 +1094,6 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
   }\r
 \r
 \r
-\r
-\r
-\r
   // use MC information\r
   AliHeader* header = 0;\r
   AliGenEventHeader* genHeader = 0;\r
@@ -1275,7 +1313,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
         if(tpcTrack) delete tpcTrack; \r
       } \r
 \r
-      FillHistograms(track,stack,AlidNdPtHelper::kAllTracks); \r
+      FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks); \r
       labelsAll[multAll] = TMath::Abs(track->GetLabel());\r
       multAll++;\r
 \r
@@ -1324,7 +1362,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
             track->Set(cParam.GetX(),cParam.GetAlpha(),cParam.GetParameter(),cParam.GetCovariance());\r
 \r
              if(accCuts->AcceptTrack(track)) {\r
-               FillHistograms(track,stack,AlidNdPtHelper::kRecTracks); \r
+               FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks); \r
               labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
               multRec++;\r
             }  \r
@@ -1332,7 +1370,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
           else {\r
              if(accCuts->AcceptTrack(track)) \r
             {\r
-               FillHistograms(track,stack,AlidNdPtHelper::kRecTracks); \r
+               FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks); \r
               labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
               multRec++;\r
             }\r
@@ -1355,6 +1393,11 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc
 \r
      Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRec};\r
      fRecEventHist2->Fill(vRecEventHist2);\r
+\r
+     // \r
+     Double_t vRecEventHist[2] = {vtxESD->GetZv(),multMBTracks};\r
+     fRecEventHist->Fill(vRecEventHist);\r
+\r
    } \r
 \r
    if(IsUseMCInfo())  \r
@@ -1645,7 +1688,7 @@ void AlidNdPtAnalysis::FillHistograms(TObjArray *const allChargedTracks,Int_t *c
 }\r
 \r
 //_____________________________________________________________________________\r
-void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, AlidNdPtHelper::TrackObject trackObj)\r
+void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj)\r
 {\r
   //\r
   // Fill ESD track and MC histograms \r
@@ -1669,15 +1712,20 @@ void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *con
 \r
 \r
   // fill histograms\r
-  Double_t values[3] = {pt,eta,phi};     \r
-  fRecTrackHist1[trackObj]->Fill(values);\r
+  Double_t values1[3] = {pt,eta,phi};    \r
+  fRecTrackHist1[trackObj]->Fill(values1);\r
+\r
+  Double_t values[3] = {zv, pt,eta};     \r
+  if(trackObj == AlidNdPtHelper::kRecTracks) {\r
+    fRecTrackHist->Fill(values);\r
+  }\r
 \r
   /*\r
-  Double_t values1[5] = {nClust,chi2PerCluster,pt,eta,phi};      \r
+  Double_t values2[5] = {nClust,chi2PerCluster,pt,eta,phi};      \r
   if(trackObj == AlidNdPtHelper::kRecTracks)  \r
   {\r
     if(fHistogramsOn)\r
-      fRecTrackHist2->Fill(values1);\r
+      fRecTrackHist2->Fill(values2);\r
   }\r
   */\r
  \r
@@ -1811,6 +1859,10 @@ Long64_t AlidNdPtAnalysis::Merge(TCollection* const list)
     //printf("entry->GetPhysicsTriggerSelection() %p \n", entry->GetPhysicsTriggerSelection());\r
     collPhysSelection->Add(entry->GetPhysicsTriggerSelection());\r
     \r
+    //\r
+    fRecEventHist->Add(entry->fRecEventHist);\r
+    fRecTrackHist->Add(entry->fRecTrackHist);\r
+\r
     //\r
     fEventMultCorrelationMatrix->Add(entry->fEventMultCorrelationMatrix);\r
     fTrackPtCorrelationMatrix->Add(entry->fTrackPtCorrelationMatrix);\r