1 #ifndef ALIPROTONANALYSIS_H
2 #define ALIPROTONANALYSIS_H
4 /* See cxx source for full Copyright notice */
9 //-------------------------------------------------------------------------
10 // Class AliProtonAnalysis
11 // This is the class for the baryon (proton) analysis
13 // Origin: Panos Christakoglou | Panos.Christakoglou@cern.ch
14 //-------------------------------------------------------------------------
26 #include "AliCFContainer.h"
32 class AliExternalTrackParam;
35 class AliProtonAnalysisBase;
37 class AliProtonAnalysis : public TObject {
40 AliProtonAnalysis(Int_t nbinsY, Float_t fLowY, Float_t fHighY,
41 Int_t nbinsPt, Float_t fLowPt, Float_t fHighPt);
42 virtual ~AliProtonAnalysis();
44 void SetBaseAnalysis(AliProtonAnalysisBase * const baseAnalysis) {
45 fProtonAnalysisBase = baseAnalysis;}
46 AliProtonAnalysisBase *GetProtonAnalysisBaseObject() const {
47 return fProtonAnalysisBase;}
49 void InitAnalysisHistograms(Int_t nbinsY, Float_t fLowY, Float_t fHighY,
50 Int_t nbinsPt, Float_t fLowPt, Float_t fHighPt);
51 Bool_t ReadFromFile(const char* filename);
52 void Analyze(AliESDEvent *fESD,
53 const AliESDVertex *vertex);
54 void Analyze(AliAODEvent *fAOD);
55 void Analyze(AliStack *stack, Bool_t iInclusive);
57 AliCFContainer *GetProtonContainer() const {return fProtonContainer;}
58 AliCFContainer *GetAntiProtonContainer() const {return fAntiProtonContainer;}
60 TH2D *GetProtonYPtHistogram() const {return fHistYPtProtons;}
61 TH2D *GetAntiProtonYPtHistogram() const {return fHistYPtAntiProtons;}
62 TH1D *GetProtonYHistogram();
63 TH1D *GetAntiProtonYHistogram();
64 TH1D *GetProtonPtHistogram();
65 TH1D *GetAntiProtonPtHistogram();
66 TH1D *GetProtonCorrectedYHistogram();
67 TH1D *GetAntiProtonCorrectedYHistogram();
68 TH1D *GetProtonCorrectedPtHistogram();
69 TH1D *GetAntiProtonCorrectedPtHistogram();
71 TH1D *GetYRatioHistogram();
72 TH1D *GetYRatioCorrectedHistogram(TH2D *gCorrectionMapProtons,
73 TH2D *gCorrectionMapAntiProtons);
74 TH1D *GetPtRatioHistogram();
75 TH1D *GetPtRatioCorrectedHistogram(TH2D *gCorrectionMapProtons,
76 TH2D *gCorrectionMapAntiProtons);
77 TH1D *GetYAsymmetryHistogram();
78 TH1D *GetPtAsymmetryHistogram();
80 TH1I *GetEventHistogram() const {return fHistEvents;}
82 Int_t GetNumberOfAnalyzedEvents() {return (Int_t)fHistEvents->GetEntries();}
83 Bool_t PrintMean(TH1 *hist, Double_t edge);
84 Bool_t PrintYields(TH1 *hist, Double_t edge);
86 //interface to the correction framework
87 void Correct(Int_t step);
88 Bool_t ReadCorrectionContainer(const char* filename);
89 TList *GetCorrectionListProtons2D() const {return fCorrectionListProtons2D;}
90 TList *GetEfficiencyListProtons1D() const {return fEfficiencyListProtons1D;}
91 TList *GetCorrectionListProtons1D() const {return fCorrectionListProtons1D;}
92 TList *GetCorrectionListAntiProtons2D() const {return fCorrectionListAntiProtons2D;}
93 TList *GetEfficiencyListAntiProtons1D() const {return fEfficiencyListAntiProtons1D;}
94 TList *GetCorrectionListAntiProtons1D() const {return fCorrectionListAntiProtons1D;}
96 //iStep=0->MC - iStep=1->Acceptance - iStep=2->Reconstruction - iStep=3->PID
97 TH1D *GetUncorrectedProtonYHistogram(Int_t iStep) {return fProtonContainer->ShowProjection(0, iStep);}
98 TH1D *GetUncorrectedProtonPtHistogram(Int_t iStep) {return fProtonContainer->ShowProjection(1, iStep);}
99 TH1D *GetUncorrectedAntiProtonYHistogram(Int_t iStep) {return fAntiProtonContainer->ShowProjection(0, iStep);}
100 TH1D *GetUncorrectedAntiProtonPtHistogram(Int_t iStep) {return fAntiProtonContainer->ShowProjection(1, iStep);}
103 AliProtonAnalysis(const AliProtonAnalysis&); // Not implemented
104 AliProtonAnalysis& operator=(const AliProtonAnalysis&); // Not implemented
106 AliProtonAnalysisBase *fProtonAnalysisBase;//base analysis object
108 Int_t fNBinsY; //number of bins in y or eta
109 Double_t fMinY, fMaxY; //min & max value of y or eta
110 Int_t fNBinsPt; //number of bins in pT
111 Double_t fMinPt, fMaxPt; //min & max value of pT
113 //Analysis containers
114 AliCFContainer *fProtonContainer; //container for protons
115 AliCFContainer *fAntiProtonContainer; //container for antiprotons
116 TH1I *fHistEvents; //event counter
117 TH2D *fHistYPtProtons; //Y-Pt of Protons
118 TH2D *fHistYPtAntiProtons; // Y-Pt of Antiprotons
121 TList *fEffGridListProtons; //list for the efficiency grid - protons
122 TList *fCorrectionListProtons2D; //list for the 2d corrections
123 TList *fEfficiencyListProtons1D; //list for the 1d efficiencies
124 TList *fCorrectionListProtons1D; //list for the 1d corrections
125 TList *fEffGridListAntiProtons; //list for the efficiency grid - antiprotons
126 TList *fCorrectionListAntiProtons2D; //list for the 2d corrections
127 TList *fEfficiencyListAntiProtons1D; //list for the 1d efficiencies
128 TList *fCorrectionListAntiProtons1D; //list for the 1d corrections
129 AliCFDataGrid *fCorrectProtons; //corrected data grid for protons
130 AliCFDataGrid *fCorrectAntiProtons; //corrected data grid for antiprotons
132 ClassDef(AliProtonAnalysis,1);