]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/AliAnalysisEtRecEffCorrection.cxx
Implementing multiplicity dependent efficiency corrections
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtRecEffCorrection.cxx
CommitLineData
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
11ClassImp(AliAnalysisEtRecEffCorrection);
12
13AliAnalysisEtRecEffCorrection::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 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))
b2c10007 23 ,fMaxEnergy(maxEnergy)
24{}
25
26//! Copy constructor
27AliAnalysisEtRecEffCorrection::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
34AliAnalysisEtRecEffCorrection::~AliAnalysisEtRecEffCorrection()
4503e29d 35{
36}
b2c10007 37
38//! Assignment operator
39AliAnalysisEtRecEffCorrection& 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
51bool 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
58Double_t AliAnalysisEtRecEffCorrection::CorrectedEnergy(Double_t energy)
59{
02c62614 60 return fEnergyCorrection->Eval(energy);
b2c10007 61
62}
47151f26 63Double_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
70Double_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}