]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGCF/Correlations/Base/AliUEHist.h
forward muon selection added
[u/mrichter/AliRoot.git] / PWGCF / Correlations / Base / AliUEHist.h
index 1c97092cfc62653444f725e04bb0080159f69425..edb83065683f02617066882d81ccd39b6fe8b707 100644 (file)
@@ -27,7 +27,7 @@ class THnBase;
 class AliUEHist : public TObject
 {
  public:
-  AliUEHist(const char* reqHist = "");
+  AliUEHist(const char* reqHist = "", const char* binning = 0);
   virtual ~AliUEHist();
   
   const UInt_t fkRegions;
@@ -51,14 +51,16 @@ class AliUEHist : public TObject
   void CopyReconstructedData(AliUEHist* from);
   void DeepCopy(AliUEHist* from);
   
-  TH1* GetUEHist(CFStep step, Region region, Float_t ptLeadMin = -1, Float_t ptLeadMax = -1, Int_t multBinBegin = 0, Int_t multBinEnd = -1, Int_t twoD = 0, Bool_t etaNorm = kTRUE, Int_t* normEvents = 0);
+  TH1* GetUEHist(CFStep step, Region region, Float_t ptLeadMin = -1, Float_t ptLeadMax = -1, Int_t multBinBegin = 0, Int_t multBinEnd = -1, Int_t twoD = 0, Bool_t etaNorm = kTRUE, Long64_t* normEvents = 0);
   TH1* GetPtHist(CFStep step, Region region, Float_t ptLeadMin, Float_t ptLeadMax, Int_t multBinBegin, Int_t multBinEnd, Float_t phiMin, Float_t phiMax, Float_t etaMin, Float_t etaMax, Bool_t skipPhiNormalization = kFALSE);
   TH2* GetSumOfRatios(AliUEHist* mixed, CFStep step, Region region, Float_t ptLeadMin, Float_t ptLeadMax, Int_t multBinBegin, Int_t multBinEnd, Bool_t etaNorm = kTRUE, Bool_t useVertexBins = kFALSE);
   
   void GetHistsZVtx(AliUEHist::CFStep step, AliUEHist::Region region, Float_t ptLeadMin, Float_t ptLeadMax, Int_t multBinBegin, Int_t multBinEnd, TH3** trackHist, TH1** eventHist);
   void GetHistsZVtxMult(AliUEHist::CFStep step, AliUEHist::Region region, Float_t ptLeadMin, Float_t ptLeadMax, THnBase** trackHist, TH2** eventHist);
   
-  TH2* GetSumOfRatios2(AliUEHist* mixed, AliUEHist::CFStep step, AliUEHist::Region region, Float_t ptLeadMin, Float_t ptLeadMax, Int_t multBinBegin, Int_t multBinEnd);
+  TH2* GetSumOfRatios2(AliUEHist* mixed, AliUEHist::CFStep step, AliUEHist::Region region, Float_t ptLeadMin, Float_t ptLeadMax, Int_t multBinBegin, Int_t multBinEnd, Bool_t normalizePerTrigger = kTRUE);
+  
+  TH1* GetTriggersAsFunctionOfMultiplicity(AliUEHist::CFStep step, Float_t ptLeadMin, Float_t ptLeadMax);
 
   TH1* GetTrackEfficiency(CFStep step1, CFStep step2, Int_t axis1, Int_t axis2 = -1, Int_t source = 1, Int_t axis3 = -1);
   THnBase* GetTrackEfficiencyND(CFStep step1, CFStep step2);
@@ -95,14 +97,21 @@ class AliUEHist : public TObject
   
   void CondenseBin(THnSparse* grid, THnSparse* target, Int_t axis, Float_t targetValue, Float_t from, Float_t to);
   void CondenseBin(CFStep step, Int_t trackAxis, Int_t eventAxis, Float_t targetValue, Float_t from = 0, Float_t to = -1, CFStep tmpStep = AliUEHist::kCFStepBiasStudy2);
+  void SymmetrizepTBins();
   
   void SetCombineMinMax(Bool_t flag) { fCombineMinMax = flag; }
   
   void SetEtaRange(Float_t etaMin, Float_t etaMax) { fEtaMin = etaMin; fEtaMax = etaMax; }
   void SetPtRange(Float_t ptMin, Float_t ptMax)    { fPtMin = ptMin; fPtMax = ptMax; }
+  void SetPartSpecies(Int_t species)    { fPartSpecies = species;}
   void SetCentralityRange(Float_t min, Float_t max)    { fCentralityMin = min; fCentralityMax = max; }
   void SetZVtxRange(Float_t min, Float_t max)          { fZVtxMin = min; fZVtxMax = max; }
   
+  Float_t GetTrackEtaCut() { return fTrackEtaCut; }
+  void SetTrackEtaCut(Float_t value) { fTrackEtaCut = value; }
+  void SetWeightPerEvent(Bool_t flag)   { fWeightPerEvent = flag; }
+  void SetSkipScaleMixedEvent(Bool_t flag)  { fSkipScaleMixedEvent = flag; }
+  
   void SetContaminationEnhancement(TH1F* hist)    { fContaminationEnhancement = hist; }
   
   void SetHistogramType(const char* histogramType)  { fHistogramType = histogramType; }
@@ -129,12 +138,13 @@ class AliUEHist : public TObject
   THnBase* ChangeToThn(THnBase* sparse);
   
 protected:
+  Double_t* GetBinning(const char* configuration, const char* tag, Int_t& nBins);
   void SetStepNames(AliCFContainer* container);
   void WeightHistogram(TH3* hist1, TH1* hist2);
   void MultiplyHistograms(THnSparse* grid, THnSparse* target, TH1* histogram, Int_t var1, Int_t var2);
 
-  AliCFContainer* fTrackHist[4];      // container for track level distributions in four regions (toward, away, min, max) and at four analysis steps
-  AliCFContainer* fEventHist;         // container for event level distribution at four analysis steps
+  AliCFContainer* fTrackHist[4];      // container for track level distributions in four regions (toward, away, min, max) and at all analysis steps
+  AliCFContainer* fEventHist;         // container for event level distribution at all analysis steps
   AliCFContainer* fTrackHistEfficiency; // container for tracking efficiency and contamination (all particles filled including leading one): axes: eta, pT, particle species
   TH3F* fFakePt;
  
@@ -142,6 +152,7 @@ protected:
   Float_t fEtaMax;                    // eta max for projections
   Float_t fPtMin;                     // pT min for projections (for track pT, not pT,lead)
   Float_t fPtMax;                     // pT max for projections (for track pT, not pT,lead)
+  Int_t fPartSpecies;                   // Particle species for projections 
   Float_t fCentralityMin;             // centrality min for projections
   Float_t fCentralityMax;             // centrality max for projections
   Float_t fZVtxMin;                   // z vtx min for projections
@@ -150,6 +161,9 @@ protected:
   TH1F* fContaminationEnhancement;    // histogram that contains the underestimation of secondaries in the MC as function of pT
   
   Bool_t fCombineMinMax;              // flag to combine min and max to a general towards region
+  Float_t fTrackEtaCut;               // cut used during production of histograms (needed for finite bin correction in GetSumOfRatios)
+  Bool_t fWeightPerEvent;            // weight with the number of trigger particles per event
+  Bool_t fSkipScaleMixedEvent;        // scale the mixed event with (0, 0) plus finite bin correction (default: kTRUE)
   
   AliCFContainer* fCache;             //! cache variable for GetTrackEfficiency
   
@@ -158,7 +172,7 @@ protected:
   
   TString fHistogramType;             // what is stored in this histogram
   
-  ClassDef(AliUEHist, 10) // underlying event histogram container
+  ClassDef(AliUEHist, 14) // underlying event histogram container
 };
 
 #endif