1 //_________________________________________________________________________
2 // Utility Class for transverse energy studies, charged hadrons
3 // Base class for ESD analysis
4 // - reconstruction output
6 //Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili
7 //University of Tennessee at Knoxville
8 //_________________________________________________________________________
9 #ifndef ALIANALYSISHADETRECONSTRUCTED_H
10 #define ALIANALYSISHADETRECONSTRUCTED_H
12 #include "AliAnalysisHadEt.h"
13 //#include "PWG0/AliPWG0Helper.h"
16 class AliAnalysisHadEtCorrections;
20 class AliAnalysisHadEtReconstructed : public AliAnalysisHadEt
25 AliAnalysisHadEtReconstructed();
26 virtual ~AliAnalysisHadEtReconstructed();
28 virtual Int_t AnalyseEvent(AliVEvent* event, Int_t eventtype);
29 virtual Int_t AnalyseEvent(AliVEvent* event){return AnalyseEvent(event,-1);}
31 //the "Corrected" variables are only corrected for the track-by-track fCorrections
32 Float_t GetCorrectedPiKPEtFullAcceptanceTPC() const {return fCorrPiKPEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPC;}
33 Float_t GetCorrectedPiKPEtFullAcceptanceITS() const {return fCorrPiKPEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPC+fCorrectedHadEtFullAcceptanceITS);}
34 Float_t GetCorrectedHadEtFullAcceptanceTPC() const {return fCorrHadEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPC;}
35 Float_t GetCorrectedHadEtFullAcceptanceITS() const {return fCorrHadEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPC+fCorrectedHadEtFullAcceptanceITS);}
36 Float_t GetCorrectedHadEtFullAcceptanceTPCAssumingPion() const {return fCorrHadEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPCAssumingPion;}
37 Float_t GetCorrectedHadEtFullAcceptanceITSAssumingPion() const {return fCorrHadEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPCAssumingPion+fCorrectedHadEtFullAcceptanceITSAssumingPion);}
38 Float_t GetCorrectedHadEtFullAcceptanceTPCAssumingProton() const {return fCorrHadEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPCAssumingProton;}
39 Float_t GetCorrectedHadEtFullAcceptanceITSAssumingProton() const {return fCorrHadEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPCAssumingProton+fCorrectedHadEtFullAcceptanceITSAssumingProton);}
40 Float_t GetCorrectedHadEtFullAcceptanceTPCAssumingKaon() const {return fCorrHadEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPCAssumingKaon;}
41 Float_t GetCorrectedHadEtFullAcceptanceITSAssumingKaon() const {return fCorrHadEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPCAssumingKaon+fCorrectedHadEtFullAcceptanceITSAssumingKaon);}
42 Float_t GetCorrectedHadEtEMCALAcceptanceTPC() const{return fCorrHadEtEMCALAcceptanceTPC*fCorrectedHadEtEMCALAcceptanceTPC;}
43 Float_t GetCorrectedHadEtEMCALAcceptanceITS() const {return fCorrHadEtEMCALAcceptanceITS*(fCorrectedHadEtEMCALAcceptanceTPC+fCorrectedHadEtEMCALAcceptanceITS);}
44 Float_t GetCorrectedHadEtPHOSAcceptanceTPC() const {return fCorrHadEtPHOSAcceptanceTPC*fCorrectedHadEtPHOSAcceptanceTPC;}
45 Float_t GetCorrectedHadEtPHOSAcceptanceITS() const {return fCorrHadEtPHOSAcceptanceITS*(fCorrectedHadEtPHOSAcceptanceTPC+fCorrectedHadEtPHOSAcceptanceITS);}
46 Float_t GetCorrectedTotEtFullAcceptanceTPC() const {return fCorrTotEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPC;}
47 Float_t GetCorrectedTotEtFullAcceptanceITS() const {return fCorrTotEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPC+fCorrectedHadEtFullAcceptanceITS);}
48 Float_t GetCorrectedTotEtEMCALAcceptanceTPC() const {return fCorrTotEtEMCALAcceptanceTPC*fCorrectedHadEtEMCALAcceptanceTPC;}
49 Float_t GetCorrectedTotEtEMCALAcceptanceITS() const {return fCorrTotEtEMCALAcceptanceITS*(fCorrectedHadEtEMCALAcceptanceTPC+fCorrectedHadEtEMCALAcceptanceITS);}
50 Float_t GetCorrectedTotEtPHOSAcceptanceTPC() const {return fCorrTotEtPHOSAcceptanceTPC*fCorrectedHadEtPHOSAcceptanceTPC;}
51 Float_t GetCorrectedTotEtPHOSAcceptanceITS() const {return fCorrTotEtPHOSAcceptanceTPC*(fCorrectedHadEtPHOSAcceptanceTPC+fCorrectedHadEtPHOSAcceptanceITS);}
52 Float_t GetRawEtFullAcceptanceTPC() const {return fRawEtFullAcceptanceTPC;}
53 Float_t GetRawEtFullAcceptanceITS() const {return fRawEtFullAcceptanceITS+fRawEtFullAcceptanceTPC;}
54 Float_t GetRawEtEMCALAcceptanceTPC() const {return fRawEtEMCALAcceptanceTPC;}
55 Float_t GetRawEtEMCALAcceptanceITS() const {return fRawEtEMCALAcceptanceITS+fRawEtEMCALAcceptanceTPC;}
56 Float_t GetRawEtPHOSAcceptanceTPC() const {return fRawEtPHOSAcceptanceTPC;}
57 Float_t GetRawEtPHOSAcceptanceITS()const {return fRawEtPHOSAcceptanceITS+fRawEtPHOSAcceptanceTPC;}
58 Float_t GetCorrectedPiKPEtFullAcceptanceTPCNoPID() const {return fCorrPiKPEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPCNoPID;}
59 Float_t GetCorrectedPiKPEtFullAcceptanceITSNoPID() const {return fCorrPiKPEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPCNoPID+fCorrectedHadEtFullAcceptanceITSNoPID);}
60 Float_t GetCorrectedHadEtFullAcceptanceTPCNoPID() const {return fCorrHadEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPCNoPID;}
61 Float_t GetCorrectedHadEtFullAcceptanceITSNoPID() const {return fCorrHadEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPCNoPID+fCorrectedHadEtFullAcceptanceITSNoPID);}
62 Float_t GetCorrectedHadEtEMCALAcceptanceTPCNoPID() const {return fCorrHadEtEMCALAcceptanceTPC*fCorrectedHadEtEMCALAcceptanceTPCNoPID;}
63 Float_t GetCorrectedHadEtEMCALAcceptanceITSNoPID() const {return fCorrHadEtEMCALAcceptanceITS*(fCorrectedHadEtEMCALAcceptanceTPCNoPID+fCorrectedHadEtEMCALAcceptanceITSNoPID);}
64 Float_t GetCorrectedHadEtPHOSAcceptanceTPCNoPID() const {return fCorrHadEtPHOSAcceptanceTPC*fCorrectedHadEtPHOSAcceptanceTPCNoPID;}
65 Float_t GetCorrectedHadEtPHOSAcceptanceITSNoPID() const {return fCorrHadEtPHOSAcceptanceITS*(fCorrectedHadEtPHOSAcceptanceTPCNoPID+fCorrectedHadEtPHOSAcceptanceITSNoPID);}
66 Float_t GetCorrectedTotEtFullAcceptanceTPCNoPID() const {return fCorrTotEtFullAcceptanceTPC*fCorrectedHadEtFullAcceptanceTPCNoPID;}
67 Float_t GetCorrectedTotEtFullAcceptanceITSNoPID() const {return fCorrTotEtFullAcceptanceITS*(fCorrectedHadEtFullAcceptanceTPCNoPID+fCorrectedHadEtFullAcceptanceITSNoPID);}
68 Float_t GetCorrectedTotEtEMCALAcceptanceTPCNoPID() const {return fCorrTotEtEMCALAcceptanceTPC*fCorrectedHadEtEMCALAcceptanceTPCNoPID;}
69 Float_t GetCorrectedTotEtEMCALAcceptanceITSNoPID() const {return fCorrTotEtEMCALAcceptanceITS*(fCorrectedHadEtEMCALAcceptanceTPCNoPID+fCorrectedHadEtEMCALAcceptanceITSNoPID);}
70 Float_t GetCorrectedTotEtPHOSAcceptanceTPCNoPID() const {return fCorrTotEtPHOSAcceptanceTPC*fCorrectedHadEtPHOSAcceptanceTPCNoPID;}
71 Float_t GetCorrectedTotEtPHOSAcceptanceITSNoPID() const {return fCorrTotEtPHOSAcceptanceITS*(fCorrectedHadEtPHOSAcceptanceTPCNoPID+fCorrectedHadEtPHOSAcceptanceITSNoPID);}
72 Float_t GetRawEtFullAcceptanceTPCNoPID() const {return fRawEtFullAcceptanceTPCNoPID;}
73 Float_t GetRawEtFullAcceptanceITSNoPID() const {return fRawEtFullAcceptanceITSNoPID+fRawEtFullAcceptanceTPCNoPID;}
74 Float_t GetRawEtEMCALAcceptanceTPCNoPID() const {return fRawEtEMCALAcceptanceTPCNoPID;}
75 Float_t GetRawEtEMCALAcceptanceITSNoPID() const {return fRawEtEMCALAcceptanceITSNoPID+fRawEtEMCALAcceptanceTPCNoPID;}
76 Float_t GetRawEtPHOSAcceptanceTPCNoPID() const {return fRawEtPHOSAcceptanceTPCNoPID;}
77 Float_t GetRawEtPHOSAcceptanceITSNoPID() const {return fRawEtPHOSAcceptanceITSNoPID+fRawEtPHOSAcceptanceTPCNoPID;}
78 /* Float_t GetCorrectedPiKPEtFullAcceptanceTPC() const {return fCorrectedHadEtFullAcceptanceTPC;} */
79 /* Float_t GetCorrectedPiKPEtFullAcceptanceITS() const {return fCorrectedHadEtFullAcceptanceITS+fCorrectedHadEtFullAcceptanceTPC;} */
80 /* Float_t GetCorrectedPiKPEtFullAcceptanceTPCNoPID() const {return fCorrectedHadEtFullAcceptanceTPCNoPID;} */
81 /* Float_t GetCorrectedPiKPEtFullAcceptanceITSNoPID() const {return fCorrectedHadEtFullAcceptanceITSNoPID+fCorrectedHadEtFullAcceptanceTPCNoPID;} */
82 void SetCorrections(AliAnalysisHadEtCorrections *corr){fCorrections = corr;}
83 AliAnalysisHadEtCorrections *GetCorrections(){return fCorrections;}
85 void CreateHistograms();
90 Bool_t CheckGoodVertex(AliVParticle *track);
91 AliAnalysisHadEtCorrections *fCorrections;//corrections needed for hadronic et
93 TString fConfigFile; // the name of the ConfigFile
94 //virtual bool TrackHitsCalorimeter(AliVParticle *track, Double_t magField) = 0;
97 Float_t fCorrTotEtFullAcceptanceTPC;//get the correction for total et for full acceptance, pt>0.15 GeV/c
98 Float_t fCorrTotEtFullAcceptanceITS;//get the correction for total et for full acceptance, pt>0.10 GeV/c
99 Float_t fCorrHadEtFullAcceptanceTPC;//get the correction for hadronic et for full acceptance, pt>0.15 GeV/c
100 Float_t fCorrHadEtFullAcceptanceITS;//get the correction for hadronic et for full acceptance, pt>0.10 GeV/c
101 Float_t fCorrPiKPEtFullAcceptanceTPC;//get the correction for hadronic et for full acceptance, pt>0.15 GeV/c
102 Float_t fCorrPiKPEtFullAcceptanceITS;//get the correction for hadronic et for full acceptance, pt>0.10 GeV/c
103 Float_t fCorrTotEtEMCALAcceptanceTPC;//analogous to above for EMCal acceptance
104 Float_t fCorrTotEtEMCALAcceptanceITS;//analogous to above for EMCal acceptance
105 Float_t fCorrHadEtEMCALAcceptanceTPC;//analogous to above for EMCal acceptance
106 Float_t fCorrHadEtEMCALAcceptanceITS;//analogous to above for EMCal acceptance
107 Float_t fCorrTotEtPHOSAcceptanceTPC;//analogous to above for PHOS acceptance
108 Float_t fCorrTotEtPHOSAcceptanceITS;//analogous to above for PHOS acceptance
109 Float_t fCorrHadEtPHOSAcceptanceTPC;//analogous to above for PHOS acceptance
110 Float_t fCorrHadEtPHOSAcceptanceITS;//analogous to above for PHOS acceptance
111 //Et with various parameters...
112 Float_t fCorrectedHadEtFullAcceptanceTPCNoPID;//get the corrected hadronic et for full acceptance, pt>0.15 GeV/c
113 Float_t fCorrectedHadEtFullAcceptanceITSNoPID;//get the corrected hadronic et for full acceptance, pt>0.10 GeV/c
114 Float_t fCorrectedHadEtEMCALAcceptanceTPCNoPID;//analogous to above for EMCal acceptance
115 Float_t fCorrectedHadEtEMCALAcceptanceITSNoPID;//analogous to above for EMCal acceptance
116 Float_t fCorrectedHadEtPHOSAcceptanceTPCNoPID;//analogous to above for PHOS acceptance
117 Float_t fCorrectedHadEtPHOSAcceptanceITSNoPID;//analogous to above for PHOS acceptance
118 Float_t fCorrectedHadEtFullAcceptanceTPC;//get the corrected hadronic et for full acceptance, pt>0.15 GeV/c
119 Float_t fCorrectedHadEtFullAcceptanceITS;//get the corrected hadronic et for full acceptance, pt>0.10 GeV/c
120 Float_t fCorrectedHadEtFullAcceptanceTPCAssumingPion;//get the corrected hadronic et for full acceptance, pt>0.15 GeV/c
121 Float_t fCorrectedHadEtFullAcceptanceITSAssumingPion;//get the corrected hadronic et for full acceptance, pt>0.10 GeV/c
122 Float_t fCorrectedHadEtFullAcceptanceTPCAssumingProton;//get the corrected hadronic et for full acceptance, pt>0.15 GeV/c
123 Float_t fCorrectedHadEtFullAcceptanceITSAssumingProton;//get the corrected hadronic et for full acceptance, pt>0.10 GeV/c
124 Float_t fCorrectedHadEtFullAcceptanceTPCAssumingKaon;//get the corrected hadronic et for full acceptance, pt>0.15 GeV/c
125 Float_t fCorrectedHadEtFullAcceptanceITSAssumingKaon;//get the corrected hadronic et for full acceptance, pt>0.10 GeV/c
126 Float_t fCorrectedHadEtEMCALAcceptanceTPC;//analogous to above for EMCal acceptance
127 Float_t fCorrectedHadEtEMCALAcceptanceITS;//analogous to above for EMCal acceptance
128 Float_t fCorrectedHadEtPHOSAcceptanceTPC;//analogous to above for PHOS acceptance
129 Float_t fCorrectedHadEtPHOSAcceptanceITS;//analogous to above for PHOS acceptance
130 Float_t fRawEtFullAcceptanceTPC;//uncorrected Et for full acceptance, pT > 0.15 GeV/c
131 Float_t fRawEtFullAcceptanceITS;//uncorrected Et for full acceptance, pT > 0.10 GeV/c
132 Float_t fRawEtEMCALAcceptanceTPC;//uncorrected Et for EMCal acceptance, pT > 0.15 GeV/c
133 Float_t fRawEtEMCALAcceptanceITS;//uncorrected Et for EMCal acceptance, pT > 0.10 GeV/c
134 Float_t fRawEtPHOSAcceptanceTPC;//uncorrected Et for PHOS acceptance, pT > 0.15 GeV/c
135 Float_t fRawEtPHOSAcceptanceITS;//uncorrected Et for PHOS acceptance, pT > 0.10 GeV/c
136 Float_t fRawEtFullAcceptanceTPCNoPID;//uncorrected Et for full acceptance, pT > 0.15 GeV/c
137 Float_t fRawEtFullAcceptanceITSNoPID;//uncorrected Et for full acceptance, pT > 0.10 GeV/c
138 Float_t fRawEtEMCALAcceptanceTPCNoPID;//uncorrected Et for EMCal acceptance, pT > 0.15 GeV/c
139 Float_t fRawEtEMCALAcceptanceITSNoPID;//uncorrected Et for EMCal acceptance, pT > 0.10 GeV/c
140 Float_t fRawEtPHOSAcceptanceTPCNoPID;//uncorrected Et for PHOS acceptance, pT > 0.15 GeV/c
141 Float_t fRawEtPHOSAcceptanceITSNoPID;//uncorrected Et for PHOS acceptance, pT > 0.10 GeV/c
145 //Declare it private to avoid compilation warning
146 AliAnalysisHadEtReconstructed & operator = (const AliAnalysisHadEtReconstructed & g) ;//cpy assignment
147 AliAnalysisHadEtReconstructed(const AliAnalysisHadEtReconstructed & g) ; // cpy ctor
149 void AddEt(Float_t rawEt, Float_t rawEtNoPID, Float_t corrEt, Float_t corrEtPion, Float_t corrEtProton, Float_t corrEtKaon, Float_t corrEtNoPID, Float_t pt, Bool_t IsTPC, Bool_t InPHOS, Bool_t InEMCAL);
150 Bool_t IsInPHOS(AliESDtrack *track);
151 Bool_t IsInEMCAL(AliESDtrack *track);
153 void ResetEventValues();
154 ClassDef(AliAnalysisHadEtReconstructed, 1);
157 #endif // ALIANALYSISHADETRECONSTRUCTED_H