]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/totEt/AliAnalysisHadEtCorrections.h
delete unused histograms + fixes for MC E_T
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisHadEtCorrections.h
CommitLineData
cf6522d1 1//Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili
020abff0 2//University of Tennessee at Knoxville
cf6522d1 3// This is a container class for the correction factors for the hadronic
4// component of transverse energy
5// It is filled by the output of AliAnalysisTaskHadEt from spinning over Monte
6// Carlo data (using AliAnalysisHadEtMonteCarlo)
7// It is used by AliAnalysisTaskHadEt while spinning over reconstructed data
8// (using AliAnalysisHadEtReconstructed)
020abff0 9//Please see https://twiki.cern.ch/twiki/bin/view/ALICE/ETCaloAnalysis
10#ifndef ALIANALYSISHADETCORRECTIONS_H
11#define ALIANALYSISHADETCORRECTIONS_H
12
020abff0 13#include "TString.h"
020abff0 14#include "TH1D.h"
cf6522d1 15class Rtypes;
16class TNamed;
020abff0 17
18class AliAnalysisHadEtCorrections : public TNamed
19{
20public:
21
22 AliAnalysisHadEtCorrections();
23 virtual ~AliAnalysisHadEtCorrections();
24
25 Float_t GetEtaCut() const {return fEtaCut;}
26 Float_t GetAcceptanceCorrectionFull() const {return fAcceptanceCorrectionFull;}
27 Float_t GetAcceptanceCorrectionEMCAL() const {return fAcceptanceCorrectionEMCAL;}
28 Float_t GetAcceptanceCorrectionPHOS() const {return fAcceptanceCorrectionPHOS;}
29 Float_t GetNeutralCorrection() const {return fNeutralCorrection;}
30 Float_t GetNotHadronicCorrection() const {return fNotHadronicCorrection;}
31 Float_t GetpTCutCorrectionTPC() const {return fpTcutCorrectionTPC;}
32 Float_t GetpTCutCorrectionITS() const {return fpTcutCorrectionITS;}
33 Float_t GetNeutralCorrectionLowBound() const {return fNeutralCorrectionLow;}
34 Float_t GetNotHadronicCorrectionLowBound() const {return fNotHadronicCorrectionLow;}
35 Float_t GetpTCutCorrectionTPCLowBound() const {return ffpTcutCorrectionTPCLow;}
36 Float_t GetpTCutCorrectionITSLowBound() const {return ffpTcutCorrectionITSLow;}
37 Float_t GetNeutralCorrectionHighBound() const {return fNeutralCorrectionHigh;}
38 Float_t GetNotHadronicCorrectionHighBound() const {return fNotHadronicCorrectionHigh;}
39 Float_t GetpTCutCorrectionTPCHighBound() const {return ffpTcutCorrectionTPCHigh;}
40 Float_t GetpTCutCorrectionITSHighBound() const {return ffpTcutCorrectionITSHigh;}
41 TH1D *GetNotIDCorrectionTPC() const {return fnotIDTPC;}
42 TH1D *GetNotIDCorrectionITS() const {return fnotIDITS;}
43 TH1D *GetNotIDCorrectionNoPID() const {return fnotIDNoID;}
44 TH1D *GetEfficiencyPionTPC() const {return fEfficiencyPionTPC;}
45 TH1D *GetEfficiencyKaonTPC() const {return fEfficiencyKaonTPC;}
46 TH1D *GetEfficiencyProtonTPC() const {return fEfficiencyProtonTPC;}
47 TH1D *GetEfficiencyHadronTPC() const {return fEfficiencyHadronTPC;}
48 TH1D *GetEfficiencyPionITS() const {return fEfficiencyPionITS;}
49 TH1D *GetEfficiencyKaonITS() const {return fEfficiencyKaonITS;}
50 TH1D *GetEfficiencyProtonITS() const {return fEfficiencyProtonITS;}
51 TH1D *GetEfficiencyHadronITS() const {return fEfficiencyHadronITS;}
52 TH1D *GetBackgroundCorrectionTPC() const {return fBackgroundTPC;}
53 TH1D *GetBackgroundCorrectionITS() const {return fBackgroundITS;}
54
55 //This is stored as the inverse of the correction
cf6522d1 56 Float_t GetNotIDCorrectionTPC(const float pT){return 1.0/(fnotIDTPC->GetBinContent(fnotIDTPC->FindBin(pT)));}
57 Float_t GetNotIDCorrectionITS(const float pT){return 1.0/(fnotIDITS->GetBinContent(fnotIDITS->FindBin(pT)));}
58 Float_t GetNotIDCorrectionNoPID(const float pT){return 1.0/(fnotIDNoID->GetBinContent(fnotIDNoID->FindBin(pT)));}
020abff0 59 //As is this...
a02dfa56 60 Float_t GetTPCEfficiencyCorrectionPion(const float pT);
61 Float_t GetTPCEfficiencyCorrectionKaon(const float pT);
62 Float_t GetTPCEfficiencyCorrectionProton(const float pT);
63 Float_t GetTPCEfficiencyCorrectionHadron(const float pT);
64 Float_t GetITSEfficiencyCorrectionPion(const float pT);
65 Float_t GetITSEfficiencyCorrectionKaon(const float pT);
66 Float_t GetITSEfficiencyCorrectionProton(const float pT);
67 Float_t GetITSEfficiencyCorrectionHadron(const float pT);
020abff0 68 //...and these guys are too
3ce6b879 69 Float_t GetBackgroundCorrectionTPC(const float pT){return 1.0/(1.0-fBackgroundTPC->GetBinContent(fBackgroundTPC->FindBin(pT)));}
70 Float_t GetBackgroundCorrectionITS(const float pT){return 1.0/(1.0-fBackgroundITS->GetBinContent(fBackgroundITS->FindBin(pT)));}
020abff0 71
72
cf6522d1 73 void SetEtaCut(const Float_t val){fEtaCut=val;}
74 void SetAcceptanceCorrectionFull(const Float_t val){fAcceptanceCorrectionFull=val;}
75 void SetAcceptanceCorrectionEMCAL(const Float_t val){fAcceptanceCorrectionEMCAL=val;}
76 void SetAcceptanceCorrectionPHOS(const Float_t val){fAcceptanceCorrectionPHOS=val;}
77 void SetNeutralCorrection(const Float_t val){fNeutralCorrection=val;}
78 void SetNotHadronicCorrection(const Float_t val){fNotHadronicCorrection=val;}
79 void SetpTCutCorrectionTPC(const Float_t val){fpTcutCorrectionTPC=val;}
80 void SetpTCutCorrectionITS(const Float_t val){fpTcutCorrectionITS=val;}
81 void SetNeutralCorrectionLowBound(const Float_t val){fNeutralCorrectionLow=val;}
82 void SetNotHadronicCorrectionLowBound(const Float_t val){fNotHadronicCorrectionLow=val;}
83 void SetpTCutCorrectionTPCLowBound(const Float_t val){ffpTcutCorrectionTPCLow=val;}
84 void SetpTCutCorrectionITSLowBound(const Float_t val){ffpTcutCorrectionITSLow=val;}
85 void SetNeutralCorrectionHighBound(const Float_t val){fNeutralCorrectionHigh=val;}
86 void SetNotHadronicCorrectionHighBound(const Float_t val){fNotHadronicCorrectionHigh=val;}
87 void SetpTCutCorrectionTPCHighBound(const Float_t val){ffpTcutCorrectionTPCHigh=val;}
88 void SetpTCutCorrectionITSHighBound(const Float_t val){ffpTcutCorrectionITSHigh=val;}
89 void SetNotIDCorrectionTPC(const TH1D *histo){fnotIDTPC=(TH1D*) histo;}
90 void SetNotIDCorrectionITS(const TH1D *histo){fnotIDITS=(TH1D*) histo;}
91 void SetNotIDCorrectionNoPID(const TH1D *histo){fnotIDNoID=(TH1D*) histo;}
92 void SetEfficiencyPionTPC(const TH1D *histo){fEfficiencyPionTPC=(TH1D*) histo;}
93 void SetEfficiencyKaonTPC(const TH1D *histo){fEfficiencyKaonTPC=(TH1D*) histo;}
94 void SetEfficiencyProtonTPC(const TH1D *histo){fEfficiencyProtonTPC=(TH1D*) histo;}
95 void SetEfficiencyHadronTPC(const TH1D *histo){fEfficiencyHadronTPC=(TH1D*) histo;}
96 void SetEfficiencyPionITS(const TH1D *histo){fEfficiencyPionITS=(TH1D*) histo;}
97 void SetEfficiencyKaonITS(const TH1D *histo){fEfficiencyKaonITS=(TH1D*) histo;}
98 void SetEfficiencyProtonITS(const TH1D *histo){fEfficiencyProtonITS=(TH1D*) histo;}
99 void SetEfficiencyHadronITS(const TH1D *histo){fEfficiencyHadronITS=(TH1D*) histo;}
100 void SetBackgroundCorrectionTPC(const TH1D *histo){fBackgroundTPC=(TH1D*) histo;}
101 void SetBackgroundCorrectionITS(const TH1D *histo){fBackgroundITS=(TH1D*) histo;}
020abff0 102
3ce6b879 103 //Returns the factor one needs to multiply by to get the corrected et for all constant (not pt dependent) factors
104 Float_t GetConstantCorrections(Bool_t totEt, Float_t ptcut, TString type);
105
020abff0 106
107 AliAnalysisHadEtCorrections(const AliAnalysisHadEtCorrections *g) ; // cpy ctor
108 //AliAnalysisHadEtCorrections & operator = (const AliAnalysisHadEtCorrections & g) ;//cpy assignment
109
110protected:
111
112 Float_t fEtaCut;//the eta cut used for this analysis
113 Float_t fAcceptanceCorrectionFull;//the acceptance correction for full azimuthal acceptance
114 Float_t fAcceptanceCorrectionEMCAL;//the acceptance correction for the EMCal azimuthal acceptance
115 Float_t fAcceptanceCorrectionPHOS;//the acceptance correction for the PHOS azimuthal acceptance
116 //Systematic errors - low value, mean value, high value
117 Float_t fNeutralCorrection;//the correction for the fraction of energy from neutral particles (for using both the calorimeters and the tracking detectors)
118 Float_t fNotHadronicCorrection;//the correction for the fraction of energy which is not measured by the tracking detectors
119 Float_t fpTcutCorrectionTPC;//the correction for the momentum cut for the tpc (150 MeV/c)
120 Float_t fpTcutCorrectionITS;//the correction for the momentum cut for the ITS (100 MeV/c)
121 Float_t fNeutralCorrectionLow;//the low bound on the neutral energy fraction correction
122 Float_t fNotHadronicCorrectionLow;//the low bound on the hadronic energy fraction correction
123 Float_t ffpTcutCorrectionTPCLow;//the low bound on the TPC momentum cut correction
124 Float_t ffpTcutCorrectionITSLow;//the low bound on the ITS momentum cut correction
125 Float_t fNeutralCorrectionHigh;//the high bound on the neutral energy correcton
126 Float_t fNotHadronicCorrectionHigh;//the high bound on the hadronic energy correction
127 Float_t ffpTcutCorrectionTPCHigh;//the high bound on the TPC momentum cut correction
128 Float_t ffpTcutCorrectionITSHigh;//the high bound on the ITS momentum cut correction
129
130 //Histograms with the pT dependent corrections
131 TH1D *fnotIDTPC;//correction for unidentified tracks in the TPC
132 TH1D *fnotIDITS;//correction for unidentified tracks in the ITS
133 TH1D *fnotIDNoID;//correction for unidentified tracks assuming no ID
134 TH1D *fEfficiencyPionTPC;//efficiency correction for pions in the TPC
135 TH1D *fEfficiencyKaonTPC;//efficiency correction for kaons in the TPC
136 TH1D *fEfficiencyProtonTPC;//efficiency correction for protons in the TPC
137 TH1D *fEfficiencyHadronTPC;//efficiency correction for unidentified hadrons in the TPC
138 TH1D *fEfficiencyPionITS;//efficiency correction for pions in the ITS
139 TH1D *fEfficiencyKaonITS;//efficiency correction for kaons in the ITS
140 TH1D *fEfficiencyProtonITS;//efficiency correction for protons in the ITS
141 TH1D *fEfficiencyHadronITS;//efficiency correction for unidentified hadrons in the ITS
142 TH1D *fBackgroundTPC;//background correction for the TPC
143 TH1D *fBackgroundITS;//background correction for the ITS
144
145
146
147private:
148 //Declare it private to avoid compilation warning
149 AliAnalysisHadEtCorrections & operator = (const AliAnalysisHadEtCorrections & g) ;//cpy assignment
150 AliAnalysisHadEtCorrections(const AliAnalysisHadEtCorrections & g) ; // cpy ctor
151
152 ClassDef(AliAnalysisHadEtCorrections, 1);
153};
154
155#endif // ALIANALYSISHADETCORRECTIONS_H