]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGCF/Correlations/Base/AliUEHistograms.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGCF / Correlations / Base / AliUEHistograms.cxx
index e4bb3c7dccfa8741d732ff4878050ecbb731d249..a78ed4edbfd8f6fd4882531b0be94cbfd51c3362 100644 (file)
@@ -52,6 +52,7 @@ AliUEHistograms::AliUEHistograms(const char* name, const char* histograms, const
   fCorrelationLeading2Phi(0),
   fCorrelationMultiplicity(0),
   fYields(0),
+  fInvYield2(0),
   fEventCount(0),
   fEventCountDifferential(0),
   fVertexContributors(0),
@@ -129,21 +130,7 @@ AliUEHistograms::AliUEHistograms(const char* name, const char* histograms, const
     ;
 
   // combine customBinning with defaultBinningStr -> use customBinning where available and otherwise defaultBinningStr
-  TString customBinning(binning);
-  TString binningStr;
-
-  TObjArray* lines = defaultBinningStr.Tokenize("\n");
-  for (Int_t i=0; i<lines->GetEntriesFast(); i++)
-  {
-    TString line(lines->At(i)->GetName());
-    TString tag = line(0, line.Index(":")+1);
-    if (!customBinning.BeginsWith(tag) && !customBinning.Contains(TString("\n") + tag))
-      binningStr += line + "\n";
-    else
-      Printf("Using custom binning for %s", tag.Data());
-  }
-  delete lines;
-  binningStr += customBinning;
+  TString binningStr = AliUEHist::CombineBinning(defaultBinningStr, TString(binning));
 
   if (histogramsStr.Contains("1"))
     fNumberDensitypT = new AliUEHist("NumberDensitypT", binningStr);
@@ -178,6 +165,7 @@ AliUEHistograms::AliUEHistograms(const char* name, const char* histograms, const
   fCorrelationLeading2Phi = new TH2F("fCorrelationLeading2Phi", ";#Delta #varphi;p_{T,lead} (MC)", 200, -TMath::Pi(), TMath::Pi(), 200, 0, 50);
   fCorrelationMultiplicity = new TH2F("fCorrelationMultiplicity", ";MC tracks;Reco tracks", 100, -0.5, 99.5, 100, -0.5, 99.5);
   fYields = new TH3F("fYields", ";centrality;pT;eta", 100, 0, 100, 40, 0, 20, 100, -1, 1);
+  fInvYield2 = new TH2F("fInvYield2", ";centrality;pT;1/pT dNch/dpT", 100, 0, 100, 80, 0, 20);
 
   if (!histogramsStr.Contains("4") && !histogramsStr.Contains("5") && !histogramsStr.Contains("6"))
   {
@@ -224,6 +212,7 @@ AliUEHistograms::AliUEHistograms(const AliUEHistograms &c) :
   fCorrelationLeading2Phi(0),
   fCorrelationMultiplicity(0),
   fYields(0),
+  fInvYield2(0),
   fEventCount(0),
   fEventCountDifferential(0),
   fVertexContributors(0),
@@ -328,6 +317,12 @@ void AliUEHistograms::DeleteContainers()
     fYields = 0;
   }
   
+  if (fInvYield2)
+  {
+    delete fInvYield2;
+    fInvYield2 = 0;
+  }
+  
   if (fEventCount)
   {
     delete fEventCount;
@@ -931,6 +926,10 @@ void AliUEHistograms::FillCorrelations(Double_t centrality, Float_t zVtx, AliUEH
          effVars[3] = fEfficiencyCorrectionTriggers->GetAxis(3)->FindBin(vars[2]); //zVtx
          useWeight *= fEfficiencyCorrectionTriggers->GetBinContent(effVars);
        }
+
+       if (TMath::Abs(triggerEta) < 0.8 && triggerParticle->Pt() > 0)
+         fInvYield2->Fill(centrality, triggerParticle->Pt(), useWeight / triggerParticle->Pt());
+
        if (fWeightPerEvent)
        {
          // leads effectively to a filling of one entry per filled trigger particle pT bin
@@ -946,7 +945,7 @@ void AliUEHistograms::FillCorrelations(Double_t centrality, Float_t zVtx, AliUEH
         fCorrelationEta->Fill(centrality, triggerEta);
         fCorrelationPhi->Fill(centrality, triggerParticle->Phi());
        fYields->Fill(centrality, triggerParticle->Pt(), triggerEta);
-
+       
 /*        if (dynamic_cast<AliAODTrack*>(triggerParticle))
           fITSClusterMap->Fill(((AliAODTrack*) triggerParticle)->GetITSClusterMap(), centrality, triggerParticle->Pt());*/
       }
@@ -1195,6 +1194,9 @@ void AliUEHistograms::Copy(TObject& c) const
   if (fYields)
     target.fYields = dynamic_cast<TH3F*> (fYields->Clone());
   
+  if (fInvYield2)
+    target.fInvYield2 = dynamic_cast<TH2F*> (fInvYield2->Clone());
+  
   if (fEventCount)
     target.fEventCount = dynamic_cast<TH2F*> (fEventCount->Clone());
 
@@ -1259,7 +1261,7 @@ Long64_t AliUEHistograms::Merge(TCollection* list)
   TObject* obj;
 
   // collections of objects
-  const Int_t kMaxLists = 19;
+  const Int_t kMaxLists = 20;
   TList* lists[kMaxLists];
   
   for (Int_t i=0; i<kMaxLists; i++)
@@ -1297,8 +1299,10 @@ Long64_t AliUEHistograms::Merge(TCollection* list)
       lists[16]->Add(entry->fCentralityCorrelation);
     if (entry->fYields)
       lists[17]->Add(entry->fYields);
+    if (entry->fInvYield2)
+      lists[18]->Add(entry->fInvYield2);
     if (entry->fControlConvResoncances)
-      lists[18]->Add(entry->fControlConvResoncances);
+      lists[19]->Add(entry->fControlConvResoncances);
 
     fMergeCount += entry->fMergeCount;
 
@@ -1330,8 +1334,10 @@ Long64_t AliUEHistograms::Merge(TCollection* list)
     fCentralityCorrelation->Merge(lists[16]);
   if (fYields && lists[17]->GetEntries() > 0)
     fYields->Merge(lists[17]);
-  if (fControlConvResoncances && lists[18]->GetEntries() > 0)
-    fControlConvResoncances->Merge(lists[18]);
+  if (fInvYield2 && lists[18]->GetEntries() > 0)
+    fInvYield2->Merge(lists[18]);
+  if (fControlConvResoncances && lists[19]->GetEntries() > 0)
+    fControlConvResoncances->Merge(lists[19]);
   
   for (Int_t i=0; i<kMaxLists; i++)
     delete lists[i];
@@ -1382,6 +1388,7 @@ void AliUEHistograms::Scale(Double_t factor)
   list.Add(fCorrelationLeading2Phi);
   list.Add(fCorrelationMultiplicity);
   list.Add(fYields);
+  list.Add(fInvYield2);
   list.Add(fEventCount);
   list.Add(fEventCountDifferential);
   list.Add(fVertexContributors);