]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGLF/totEt/AliAnalysisEtRecEffCorrection.cxx
Improved merging.
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtRecEffCorrection.cxx
... / ...
CommitLineData
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
11ClassImp(AliAnalysisEtRecEffCorrection);
12
13AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection() : TNamed("RecEff","RecEff")
14 ,fEnergyCorrection(new TF1())//"ReCorr","1",0.01)
15 ,fRecoEff(0)
16 ,fMaxEnergy(0)
17{
18 fEnergyCorrection->SetName("ReCorr");
19}
20
21AliAnalysisEtRecEffCorrection::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))
23 ,fMaxEnergy(maxEnergy)
24{}
25
26//! Copy constructor
27AliAnalysisEtRecEffCorrection::AliAnalysisEtRecEffCorrection(const AliAnalysisEtRecEffCorrection &obj) : TNamed(obj)
28 ,fEnergyCorrection(new TF1(*(obj.fEnergyCorrection)))
29 ,fRecoEff(new TH2F(*(obj.fRecoEff)))
30 ,fMaxEnergy(obj.fMaxEnergy)
31{}
32
33//! Destructor
34AliAnalysisEtRecEffCorrection::~AliAnalysisEtRecEffCorrection()
35{
36}
37
38//! Assignment operator
39AliAnalysisEtRecEffCorrection& AliAnalysisEtRecEffCorrection::operator=(const AliAnalysisEtRecEffCorrection &other)
40{
41 if (this != &other)
42 {
43 fEnergyCorrection = other.fEnergyCorrection;
44 fRecoEff = other.fRecoEff;
45 fMaxEnergy = other.fMaxEnergy;
46 }
47 return *this;
48}
49
50//! Equality operator
51bool AliAnalysisEtRecEffCorrection::operator==(const AliAnalysisEtRecEffCorrection &other) const
52{
53 if (this == &other) return true;
54 return false;
55 //return (fMaxEnergy == other.fMaxEnergy && fEnergyCorrection == other.fEnergyCorrection);
56}
57
58Double_t AliAnalysisEtRecEffCorrection::CorrectedEnergy(Double_t energy)
59{
60 return fEnergyCorrection->Eval(energy);
61
62}
63Double_t AliAnalysisEtRecEffCorrection::CorrectedEnergy(Double_t energy, int cent)
64{
65 if(fRecoEff){
66 Double_t eff = ReconstructionEfficiency(energy, cent);
67 if(eff>1e-5) return 1.0/eff*energy;
68 }
69 //cerr<<"Warning: I should not be here!"<<endl;
70 return 1.0;
71
72}
73
74Double_t AliAnalysisEtRecEffCorrection::ReconstructionEfficiency(float energy, int cent) const {
75 Double_t eff = 1.0;
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;
78 return eff;
79}