1 #ifndef AliUEHistograms_H
2 #define AliUEHistograms_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 /* $Id: AliUEHistograms.h 20164 2007-08-14 15:31:50Z morsch $ */
9 // encapsulates several AliUEHist objects for a full UE analysis plus additional control histograms
12 #include "AliUEHist.h"
23 class AliUEHistograms : public TNamed
26 AliUEHistograms(const char* name = "AliUEHistograms", const char* histograms = "123");
27 virtual ~AliUEHistograms();
29 void Fill(Int_t eventType, Float_t zVtx, AliUEHist::CFStep step, AliVParticle* leading, TList* toward, TList* away, TList* min, TList* max);
30 void FillCorrelations(Double_t centrality, Float_t zVtx, AliUEHist::CFStep step, TObjArray* particles, TObjArray* mixed = 0, Float_t weight = 1, Bool_t firstTime = kTRUE);
31 void Fill(AliVParticle* leadingMC, AliVParticle* leadingReco);
32 void FillEvent(Int_t eventType, Int_t step);
33 void FillEvent(Double_t centrality, Int_t step);
34 void FillTrackingEfficiency(TObjArray* mc, TObjArray* recoPrim, TObjArray* recoAll, Int_t particleType, Double_t centrality = 0);
36 void TwoTrackEfficiency(TObjArray* tracks, TObjArray* mixed, Float_t bSign);
38 void CopyReconstructedData(AliUEHistograms* from);
40 AliUEHist* GetUEHist(Int_t id);
42 AliUEHist* GetNumberDensitypT() { return fNumberDensitypT; }
43 AliUEHist* GetSumpT() { return fSumpT; }
44 AliUEHist* GetNumberDensityPhi() { return fNumberDensityPhi; }
46 void SetNumberDensitypT(AliUEHist* obj) { fNumberDensitypT = obj; }
47 void SetSumpT(AliUEHist* obj) { fSumpT = obj; }
48 void SetNumberDensityPhi(AliUEHist* obj) { fNumberDensityPhi = obj; }
50 void SetRunNumber(Long64_t runNumber) { fRunNumber = runNumber; }
52 TH2F* GetCorrelationpT() { return fCorrelationpT; }
53 TH2F* GetCorrelationEta() { return fCorrelationEta; }
54 TH2F* GetCorrelationPhi() { return fCorrelationPhi; }
55 TH2F* GetCorrelationR() { return fCorrelationR; }
56 TH2F* GetCorrelationLeading2Phi() { return fCorrelationLeading2Phi; }
57 TH2F* GetCorrelationMultiplicity() { return fCorrelationMultiplicity; }
59 TH2F* GetEventCount() { return fEventCount; }
60 TH3F* GetEventCountDifferential() { return fEventCountDifferential; }
61 TH1F* GetVertexContributors() { return fVertexContributors; }
62 TH1F* GetCentralityDistribution() { return fCentralityDistribution; }
63 Long64_t GetRunNumber() { return fRunNumber; }
64 TH3F* GetTwoTrackDistance(Int_t i) { return fTwoTrackDistancePt[i]; }
66 void Correct(AliUEHistograms* corrections);
68 void SetEtaRange(Float_t etaMin, Float_t etaMax);
69 void SetPtRange(Float_t ptMin, Float_t ptMax);
70 void SetZVtxRange(Float_t min, Float_t max);
71 void SetContaminationEnhancement(TH1F* hist);
72 void SetCombineMinMax(Bool_t flag);
73 void SetSelectCharge(Int_t selectCharge) { fSelectCharge = selectCharge; }
75 void ExtendTrackingEfficiency(Bool_t verbose = kFALSE);
78 AliUEHistograms(const AliUEHistograms &c);
79 AliUEHistograms& operator=(const AliUEHistograms& c);
80 virtual void Copy(TObject& c) const;
82 virtual Long64_t Merge(TCollection* list);
83 void Scale(Double_t factor);
86 void FillRegion(AliUEHist::Region region, Float_t zVtx, AliUEHist::CFStep step, AliVParticle* leading, TList* list, Int_t multiplicity);
87 Int_t CountParticles(TList* list, Float_t ptMin);
89 static const Int_t fgkUEHists; // number of histograms
91 AliUEHist* fNumberDensitypT; // d^2N/dphideta vs pT,lead
92 AliUEHist* fSumpT; // d^2 sum(pT)/dphideta vs pT,lead
93 AliUEHist* fNumberDensityPhi; // d^2N/dphideta vs delta phi,lead (in pT,lead bins)
95 TH2F* fCorrelationpT; // pT,lead: true vs reco
96 TH2F* fCorrelationEta; // #eta,lead; true vs reco
97 TH2F* fCorrelationPhi; // #phi,lead; true vs reco
98 TH2F* fCorrelationR; // R = sqrt(delta eta^2 + delta phi^2) (true vs reco) vs pT,lead,MC
99 TH2F* fCorrelationLeading2Phi;// delta phi (true vs reco) vs pT,lead,MC
100 TH2F* fCorrelationMultiplicity; // number of mc particls vs reco particles (for pT > 0.5 GeV/c)
102 TH2F* fEventCount; // event count as function of step, (for pp: event type (plus additional step -1 for all events without vertex range even in MC)) (for PbPb: centrality)
103 TH3F* fEventCountDifferential;// event count as function of leading pT, step, event type
105 TH1F* fVertexContributors; // number of contributors to the vertex
106 TH1F* fCentralityDistribution; // distribution of the variable used for centrality selection
107 TH2F* fCentralityCorrelation; // centrality vs multiplicity
109 TH3F* fITSClusterMap; // its cluster map vs centrality vs pT
111 TH3F* fTwoTrackDistancePt[2]; // control histograms for two-track efficiency study: dphi*_min vs deta (0 = before cut, 1 = after cut)
113 Int_t fSelectCharge; // (un)like sign selection when building correlations: 0: no selection; 1: unlike sign; 2: like sign
115 Long64_t fRunNumber; // run number that has been processed
117 ClassDef(AliUEHistograms, 10) // underlying event histogram container