]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/JetTasks/AliUEHist.h
added option for variable binning depending on the dataset for high pt QA and spectra...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliUEHist.h
CommitLineData
a75aacd6 1#ifndef AliUEHist_H
2#define AliUEHist_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id: AliUEHist.h 20164 2007-08-14 15:31:50Z morsch $ */
8
9// encapsulate histogram and corrections for one underlying event histogram
10
11#include "TObject.h"
12
13class AliCFContainer;
14class TH1;
15class TH3;
16class TH1D;
17class TH2D;
18class TCollection;
19class AliCFGridSparse;
20
21class AliUEHist : public TObject
22{
23 public:
24 AliUEHist(const char* reqHist = "");
25 virtual ~AliUEHist();
26
27 const Int_t fkRegions;
28 enum Region { kToward = 0, kAway, kMin, kMax };
29
30 static const Int_t fgkCFSteps;
31 enum CFStep { kCFStepAll = 0, kCFStepTriggered, kCFStepVertex, kCFStepAnaTopology, kCFStepTrackedOnlyPrim, kCFStepTracked, kCFStepReconstructed, kCFStepRealLeading, kCFStepBiasStudy, kCFStepBiasStudy2 };
32
33 const char* GetRegionTitle(Region region);
34 const char* GetStepTitle(CFStep step);
35
36 AliCFContainer* GetTrackHist(Region region) { return fTrackHist[region]; }
37 AliCFContainer* GetEventHist() { return fEventHist; }
38
39 void SetTrackHist(Region region, AliCFContainer* hist) { fTrackHist[region] = hist; }
40 void SetEventHist(AliCFContainer* hist) { fEventHist = hist; }
41
42 TH1D* GetUEHist(CFStep step, Region region, Float_t ptLeadMin = -1, Float_t ptLeadMax = -1);
43
44 TH1* GetTrackEfficiency(CFStep step1, CFStep step2, Int_t axis1, Int_t axis2 = -1);
45 TH1* GetEventEfficiency(CFStep step1, CFStep step2, Int_t axis1, Int_t axis2 = -1, Float_t ptLeadMin = -1, Float_t ptLeadMax = -1);
46 TH1* GetBias(CFStep step1, CFStep step2, const char* axis, Float_t leadPtMin = 0, Float_t leadPtMax = 0);
47
48 TH1D* GetTrackingEfficiency(Int_t axis);
49 TH2D* GetTrackingEfficiency();
50
51 TH1D* GetTrackingContamination(Int_t axis);
52 TH2D* GetTrackingContamination();
53
54 TH1D* GetTrackingCorrection(Int_t axis);
55 TH2D* GetTrackingCorrection();
56
57 void Correct(AliUEHist* corrections);
58 void CorrectTracks(CFStep step1, CFStep step2, TH1* trackCorrection, Int_t var1, Int_t var2 = -1);
59 void CorrectEvents(CFStep step1, CFStep step2, TH1D* eventCorrection, Int_t var);
60
61 void SetCombineMinMax(Bool_t flag) { fCombineMinMax = flag; }
62
63 void SetEtaRange(Float_t etaMin, Float_t etaMax) { fEtaMin = etaMin; fEtaMax = etaMax; }
64 void SetPtRange(Float_t ptMin, Float_t ptMax) { fPtMin = ptMin; fPtMax = ptMax; }
65
d1c75d06 66 AliUEHist(const AliUEHist &c);
a75aacd6 67 AliUEHist& operator=(const AliUEHist& corr);
68 virtual void Copy(TObject& c) const;
69
70 virtual Long64_t Merge(TCollection* list);
71
72protected:
73 void SetStepNames(AliCFContainer* container);
74 void WeightHistogram(TH3* hist1, TH1* hist2);
75 void SetBinLimits(AliCFGridSparse* grid);
76 void ResetBinLimits(AliCFGridSparse* grid);
77
78 AliCFContainer* fTrackHist[4]; // container for track level distributions in four regions (toward, away, min, max) and at four analysis steps
79 AliCFContainer* fEventHist; // container for event level distribution at four analysis steps
80
81 Float_t fEtaMin; // eta min for projections
82 Float_t fEtaMax; // eta max for projections
83 Float_t fPtMin; // pT min for projections (for track pT, not pT,lead)
84 Float_t fPtMax; // pT max for projections (for track pT, not pT,lead)
85
86 Bool_t fCombineMinMax; // flag to combine min and max to a general towards region
87
88 AliCFContainer* fCache; //! cache variable for GetTrackEfficiency
89
90 ClassDef(AliUEHist, 1) // underlying event histogram container
91};
92
93#endif