]>
Commit | Line | Data |
---|---|---|
734d2c12 | 1 | #ifndef ALIPROTONANALYSIS_H |
2 | #define ALIPROTONANALYSIS_H | |
3 | ||
4 | /* See cxx source for full Copyright notice */ | |
5 | ||
6 | ||
7 | /* $Id$ */ | |
8 | ||
9 | //------------------------------------------------------------------------- | |
10 | // Class AliProtonAnalysis | |
11 | // This is the class for the baryon (proton) analysis | |
12 | // | |
dd3fa486 | 13 | // Origin: Panos Christakoglou | Panos.Christakoglou@cern.ch |
734d2c12 | 14 | //------------------------------------------------------------------------- |
15 | ||
251e4034 | 16 | #include "TObject.h" |
3f6d0c08 | 17 | #include "TH1I.h" |
734d2c12 | 18 | |
aafecd8b | 19 | class TF1; |
251e4034 | 20 | class TH2D; |
21 | class TH1F; | |
9cd594db | 22 | class TList; |
3f6d0c08 | 23 | |
9cd594db | 24 | #include "AliPID.h" |
24421eb6 | 25 | #include "AliCFContainer.h" |
251e4034 | 26 | class AliCFDataGrid; |
ee4ca40d | 27 | class AliAODEvent; |
28 | class AliAODtrack; | |
734d2c12 | 29 | class AliESDEvent; |
30 | class AliESDtrack; | |
2b748670 | 31 | class AliExternalTrackParam; |
e4358d7f | 32 | class AliStack; |
6667f3a7 | 33 | class AliESDVertex; |
0ab648ea | 34 | class AliProtonAnalysisBase; |
734d2c12 | 35 | |
36 | class AliProtonAnalysis : public TObject { | |
37 | public: | |
38 | AliProtonAnalysis(); | |
39 | AliProtonAnalysis(Int_t nbinsY, Float_t fLowY, Float_t fHighY, | |
40 | Int_t nbinsPt, Float_t fLowPt, Float_t fHighPt); | |
41 | virtual ~AliProtonAnalysis(); | |
2b748670 | 42 | |
0ab648ea | 43 | void SetBaseAnalysis(AliProtonAnalysisBase *baseAnalysis) { |
44 | fProtonAnalysisBase = baseAnalysis;} | |
45 | AliProtonAnalysisBase *GetProtonAnalysisBaseObject() { | |
46 | return fProtonAnalysisBase;} | |
dd3fa486 | 47 | |
ef1a8dbd | 48 | void InitAnalysisHistograms(Int_t nbinsY, Float_t fLowY, Float_t fHighY, |
49 | Int_t nbinsPt, Float_t fLowPt, Float_t fHighPt); | |
2b748670 | 50 | Bool_t ReadFromFile(const char* filename); |
6667f3a7 | 51 | void Analyze(AliESDEvent *fESD, |
52 | const AliESDVertex *vertex); | |
ef1a8dbd | 53 | void Analyze(AliAODEvent *fAOD); |
3e23254a | 54 | void Analyze(AliStack *stack, Bool_t iInclusive); |
734d2c12 | 55 | |
9cd594db | 56 | AliCFContainer *GetProtonContainer() const {return fProtonContainer;} |
57 | AliCFContainer *GetAntiProtonContainer() const {return fAntiProtonContainer;} | |
251e4034 | 58 | |
9cd594db | 59 | TH2D *GetProtonYPtHistogram() const {return fHistYPtProtons;} |
60 | TH2D *GetAntiProtonYPtHistogram() const {return fHistYPtAntiProtons;} | |
734d2c12 | 61 | TH1D *GetProtonYHistogram(); |
62 | TH1D *GetAntiProtonYHistogram(); | |
63 | TH1D *GetProtonPtHistogram(); | |
64 | TH1D *GetAntiProtonPtHistogram(); | |
251e4034 | 65 | TH1D *GetProtonCorrectedYHistogram(); |
66 | TH1D *GetAntiProtonCorrectedYHistogram(); | |
67 | TH1D *GetProtonCorrectedPtHistogram(); | |
68 | TH1D *GetAntiProtonCorrectedPtHistogram(); | |
24421eb6 | 69 | |
734d2c12 | 70 | TH1D *GetYRatioHistogram(); |
3e23254a | 71 | TH1D *GetYRatioCorrectedHistogram(TH2D *gCorrectionMapProtons, |
72 | TH2D *gCorrectionMapAntiProtons); | |
734d2c12 | 73 | TH1D *GetPtRatioHistogram(); |
3e23254a | 74 | TH1D *GetPtRatioCorrectedHistogram(TH2D *gCorrectionMapProtons, |
75 | TH2D *gCorrectionMapAntiProtons); | |
734d2c12 | 76 | TH1D *GetYAsymmetryHistogram(); |
77 | TH1D *GetPtAsymmetryHistogram(); | |
3f6d0c08 | 78 | |
9cd594db | 79 | TH1I *GetEventHistogram() const {return fHistEvents;} |
41beb956 | 80 | |
3f6d0c08 | 81 | Int_t GetNumberOfAnalyzedEvents() {return (Int_t)fHistEvents->GetEntries();} |
82 | Bool_t PrintMean(TH1 *hist, Double_t edge); | |
83 | Bool_t PrintYields(TH1 *hist, Double_t edge); | |
84 | ||
39f2a708 | 85 | //interface to the correction framework |
251e4034 | 86 | void Correct(Int_t step); |
39f2a708 | 87 | Bool_t ReadCorrectionContainer(const char* filename); |
9cd594db | 88 | TList *GetCorrectionListProtons2D() const {return fCorrectionListProtons2D;} |
89 | TList *GetEfficiencyListProtons1D() const {return fEfficiencyListProtons1D;} | |
90 | TList *GetCorrectionListProtons1D() const {return fCorrectionListProtons1D;} | |
91 | TList *GetCorrectionListAntiProtons2D() const {return fCorrectionListAntiProtons2D;} | |
92 | TList *GetEfficiencyListAntiProtons1D() const {return fEfficiencyListAntiProtons1D;} | |
93 | TList *GetCorrectionListAntiProtons1D() const {return fCorrectionListAntiProtons1D;} | |
24421eb6 | 94 | |
95 | //iStep=0->MC - iStep=1->Acceptance - iStep=2->Reconstruction - iStep=3->PID | |
96 | TH1D *GetUncorrectedProtonYHistogram(Int_t iStep) {return fProtonContainer->ShowProjection(0, iStep);} | |
97 | TH1D *GetUncorrectedProtonPtHistogram(Int_t iStep) {return fProtonContainer->ShowProjection(1, iStep);} | |
98 | TH1D *GetUncorrectedAntiProtonYHistogram(Int_t iStep) {return fAntiProtonContainer->ShowProjection(0, iStep);} | |
99 | TH1D *GetUncorrectedAntiProtonPtHistogram(Int_t iStep) {return fAntiProtonContainer->ShowProjection(1, iStep);} | |
39f2a708 | 100 | |
734d2c12 | 101 | private: |
8b8b0b7a | 102 | AliProtonAnalysis(const AliProtonAnalysis&); // Not implemented |
103 | AliProtonAnalysis& operator=(const AliProtonAnalysis&); // Not implemented | |
734d2c12 | 104 | |
0ab648ea | 105 | AliProtonAnalysisBase *fProtonAnalysisBase;//base analysis object |
dd3fa486 | 106 | |
0ab648ea | 107 | Int_t fNBinsY; //number of bins in y or eta |
108 | Double_t fMinY, fMaxY; //min & max value of y or eta | |
734d2c12 | 109 | Int_t fNBinsPt; //number of bins in pT |
0ab648ea | 110 | Double_t fMinPt, fMaxPt; //min & max value of pT |
734d2c12 | 111 | |
251e4034 | 112 | //Analysis containers |
113 | AliCFContainer *fProtonContainer; //container for protons | |
114 | AliCFContainer *fAntiProtonContainer; //container for antiprotons | |
3f6d0c08 | 115 | TH1I *fHistEvents; //event counter |
251e4034 | 116 | TH2D *fHistYPtProtons; //Y-Pt of Protons |
117 | TH2D *fHistYPtAntiProtons; // Y-Pt of Antiprotons | |
39f2a708 | 118 | |
119 | //Corrections | |
251e4034 | 120 | TList *fEffGridListProtons; //list for the efficiency grid - protons |
cdb3530f | 121 | TList *fCorrectionListProtons2D; //list for the 2d corrections |
122 | TList *fEfficiencyListProtons1D; //list for the 1d efficiencies | |
123 | TList *fCorrectionListProtons1D; //list for the 1d corrections | |
251e4034 | 124 | TList *fEffGridListAntiProtons; //list for the efficiency grid - antiprotons |
cdb3530f | 125 | TList *fCorrectionListAntiProtons2D; //list for the 2d corrections |
126 | TList *fEfficiencyListAntiProtons1D; //list for the 1d efficiencies | |
127 | TList *fCorrectionListAntiProtons1D; //list for the 1d corrections | |
251e4034 | 128 | AliCFDataGrid *fCorrectProtons; //corrected data grid for protons |
129 | AliCFDataGrid *fCorrectAntiProtons; //corrected data grid for antiprotons | |
130 | ||
e7df5638 | 131 | ClassDef(AliProtonAnalysis,1); |
734d2c12 | 132 | }; |
133 | ||
134 | #endif |