]>
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 | |
6a152780 | 21 | AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection(TString name, const TF1 &correction,const TH2F &recoEff, const Double_t maxEnergy) : TNamed(name, name) |
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 | } | |
47151f26 | 63 | Double_t AliAnalysisEtRecEffCorrection::CorrectedEnergy(Double_t energy, int mult) |
64 | { | |
65 | if(fRecoEff) return 1.0/ReconstructionEfficiency(energy, mult); | |
66 | return 1.0; | |
67 | ||
68 | } | |
69 | ||
70 | Double_t AliAnalysisEtRecEffCorrection::ReconstructionEfficiency(float energy, int mult) const { | |
71 | Double_t eff = 1.0; | |
72 | if(fRecoEff) eff = fRecoEff->GetBinContent(fRecoEff->GetXaxis()->FindBin(energy),fRecoEff->GetXaxis()->FindBin(mult)); | |
73 | //cout <<"eff "<<eff<<endl; | |
74 | return eff; | |
75 | } |