]>
Commit | Line | Data |
---|---|---|
b2c10007 | 1 | //_________________________________________________________________________ |
2 | // Utility Class for transverse energy studies | |
3 | // Selection class for EMCAL | |
4 | // | |
5 | //*-- Authors: Oystein Djuvsland (Bergen) | |
6 | //_________________________________________________________________________ | |
7 | ||
8 | ||
9 | #include "AliAnalysisEtRecEffCorrection.h" | |
10 | ||
11 | ClassImp(AliAnalysisEtRecEffCorrection); | |
12 | ||
13 | AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection() : TNamed("RecEff","RecEff") | |
02c62614 | 14 | ,fEnergyCorrection(new TF1())//"ReCorr","1",0.01) |
6a152780 | 15 | ,fRecoEff(0) |
b2c10007 | 16 | ,fMaxEnergy(0) |
4503e29d | 17 | { |
02c62614 | 18 | fEnergyCorrection->SetName("ReCorr"); |
4503e29d | 19 | } |
b2c10007 | 20 | |
5bd9e7c8 | 21 | AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection(TString name, const TF1 &correction,const TH2F &recoEff, Double_t maxEnergy) : TNamed(name, name) |
6a152780 | 22 | ,fEnergyCorrection(new TF1(correction)) ,fRecoEff(new TH2F(recoEff)) |
b2c10007 | 23 | ,fMaxEnergy(maxEnergy) |
24 | {} | |
25 | ||
26 | //! Copy constructor | |
27 | AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection(const AliAnalysisEtRecEffCorrection &obj) : TNamed(obj) | |
02c62614 | 28 | ,fEnergyCorrection(new TF1(*(obj.fEnergyCorrection))) |
6a152780 | 29 | ,fRecoEff(new TH2F(*(obj.fRecoEff))) |
b2c10007 | 30 | ,fMaxEnergy(obj.fMaxEnergy) |
31 | {} | |
32 | ||
33 | //! Destructor | |
34 | AliAnalysisEtRecEffCorrection::~AliAnalysisEtRecEffCorrection() | |
4503e29d | 35 | { |
36 | } | |
b2c10007 | 37 | |
38 | //! Assignment operator | |
39 | AliAnalysisEtRecEffCorrection& AliAnalysisEtRecEffCorrection::operator=(const AliAnalysisEtRecEffCorrection &other) | |
40 | { | |
41 | if (this != &other) | |
42 | { | |
43 | fEnergyCorrection = other.fEnergyCorrection; | |
6a152780 | 44 | fRecoEff = other.fRecoEff; |
b2c10007 | 45 | fMaxEnergy = other.fMaxEnergy; |
46 | } | |
47 | return *this; | |
48 | } | |
49 | ||
50 | //! Equality operator | |
51 | bool AliAnalysisEtRecEffCorrection::operator==(const AliAnalysisEtRecEffCorrection &other) const | |
52 | { | |
53 | if (this == &other) return true; | |
54 | return false; | |
4503e29d | 55 | //return (fMaxEnergy == other.fMaxEnergy && fEnergyCorrection == other.fEnergyCorrection); |
b2c10007 | 56 | } |
57 | ||
58 | Double_t AliAnalysisEtRecEffCorrection::CorrectedEnergy(Double_t energy) | |
59 | { | |
02c62614 | 60 | return fEnergyCorrection->Eval(energy); |
b2c10007 | 61 | |
62 | } | |
31c813d5 | 63 | Double_t AliAnalysisEtRecEffCorrection::CorrectedEnergy(Double_t energy, int cent) |
47151f26 | 64 | { |
ac610b08 | 65 | if(fRecoEff){ |
31c813d5 | 66 | Double_t eff = ReconstructionEfficiency(energy, cent); |
d58833d3 | 67 | if(eff>1e-5) return 1.0/eff*energy; |
ac610b08 | 68 | } |
43dd5a38 | 69 | //cerr<<"Warning: I should not be here!"<<endl; |
47151f26 | 70 | return 1.0; |
71 | ||
72 | } | |
73 | ||
31c813d5 | 74 | Double_t AliAnalysisEtRecEffCorrection::ReconstructionEfficiency(float energy, int cent) const { |
47151f26 | 75 | Double_t eff = 1.0; |
43dd5a38 | 76 | if(fRecoEff) eff = fRecoEff->GetBinContent(fRecoEff->GetXaxis()->FindBin(energy),fRecoEff->GetYaxis()->FindBin(cent)); |
77 | //cout <<"eff "<<eff<<" bin energy "<<fRecoEff->GetXaxis()->FindBin(energy)<<" bin centrality "<<fRecoEff->GetYaxis()->FindBin(cent)<<endl; | |
47151f26 | 78 | return eff; |
79 | } |