1 //_________________________________________________________________________
2 // Utility Class for transverse energy studies
3 // Selection class for EMCAL
5 //*-- Authors: Oystein Djuvsland (Bergen)
6 //_________________________________________________________________________
9 #include "AliAnalysisEtRecEffCorrection.h"
11 ClassImp(AliAnalysisEtRecEffCorrection);
13 AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection() : TNamed("RecEff","RecEff")
14 ,fEnergyCorrection(new TF1())//"ReCorr","1",0.01)
18 fEnergyCorrection->SetName("ReCorr");
21 AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection(TString name, const TF1 &correction,const TH2F &recoEff, Double_t maxEnergy) : TNamed(name, name)
22 ,fEnergyCorrection(new TF1(correction)) ,fRecoEff(new TH2F(recoEff))
23 ,fMaxEnergy(maxEnergy)
27 AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection(const AliAnalysisEtRecEffCorrection &obj) : TNamed(obj)
28 ,fEnergyCorrection(new TF1(*(obj.fEnergyCorrection)))
29 ,fRecoEff(new TH2F(*(obj.fRecoEff)))
30 ,fMaxEnergy(obj.fMaxEnergy)
34 AliAnalysisEtRecEffCorrection::~AliAnalysisEtRecEffCorrection()
38 //! Assignment operator
39 AliAnalysisEtRecEffCorrection& AliAnalysisEtRecEffCorrection::operator=(const AliAnalysisEtRecEffCorrection &other)
43 fEnergyCorrection = other.fEnergyCorrection;
44 fRecoEff = other.fRecoEff;
45 fMaxEnergy = other.fMaxEnergy;
51 bool AliAnalysisEtRecEffCorrection::operator==(const AliAnalysisEtRecEffCorrection &other) const
53 if (this == &other) return true;
55 //return (fMaxEnergy == other.fMaxEnergy && fEnergyCorrection == other.fEnergyCorrection);
58 Double_t AliAnalysisEtRecEffCorrection::CorrectedEnergy(Double_t energy)
60 return fEnergyCorrection->Eval(energy);
63 Double_t AliAnalysisEtRecEffCorrection::CorrectedEnergy(Double_t energy, int cent)
66 Double_t eff = ReconstructionEfficiency(energy, cent);
67 if(eff>1e-5) return 1.0/eff*energy;
69 //cerr<<"Warning: I should not be here!"<<endl;
74 Double_t AliAnalysisEtRecEffCorrection::ReconstructionEfficiency(float energy, int cent) const {
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;