1 //_________________________________________________________________________
2 // Utility Class for transverse energy studies
3 // Base class for ESD analysis, for EMCAL
4 // - reconstruction output
7 //*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
8 //_________________________________________________________________________
9 #include "AliAnalysisEtReconstructedEmcal.h"
10 #include "AliAnalysisEtCuts.h"
11 #include "AliAnalysisEtSelectorEmcal.h"
12 #include "AliESDtrack.h"
13 #include "AliAnalysisEtRecEffCorrection.h"
17 ClassImp(AliAnalysisEtReconstructedEmcal);
20 AliAnalysisEtReconstructedEmcal::AliAnalysisEtReconstructedEmcal() :
21 AliAnalysisEtReconstructed()
23 fHistogramNameSuffix = TString("EmcalRec");
26 AliAnalysisEtReconstructedEmcal::~AliAnalysisEtReconstructedEmcal()
31 void AliAnalysisEtReconstructedEmcal::Init()
33 AliAnalysisEtReconstructed::Init();
35 fDetectorRadius = fCuts->GetGeometryEmcalDetectorRadius();
36 fSingleCellEnergyCut = fCuts->GetReconstructedEmcalSingleCellEnergyCut();
38 fSelector = new AliAnalysisEtSelectorEmcal(fCuts);
41 bool AliAnalysisEtReconstructedEmcal::TrackHitsCalorimeter(AliVParticle* track, Double_t magField)
43 return AliAnalysisEtReconstructed::TrackHitsCalorimeter(track, magField);
46 void AliAnalysisEtReconstructedEmcal::CreateHistograms()
47 { // add some extra histograms & objects to the ones from base class
49 cout<<__FILE__<<" "<<"Creating new fSelector"<<endl;
50 fSelector = new AliAnalysisEtSelectorEmcal(fCuts);
52 AliAnalysisEtReconstructed::CreateHistograms();
56 Double_t AliAnalysisEtReconstructedEmcal::GetCorrectionModification(const AliESDCaloCluster& cluster,Int_t nonLinCorr, Int_t effCorr, Int_t cent){//nonLinCorr 0 = nominal 1 = high -1 = low, effCorr 0 = nominal 1 = high -1 = low
57 Double_t factor = 1.0;
58 Double_t E = fReCorrections->CorrectedEnergy(cluster.E(),cent);
60 Double_t p0 = 9.90780e-01;
61 Double_t p1 = 1.61503e-01;
62 Double_t p2 = 6.55150e-01;
63 Double_t p3 = 1.34100e-01;
64 Double_t p4 = 1.63282e+02;
65 Double_t p5 = 2.36902e+01;
66 Double_t nominal = p0*(1./(1.+p1*TMath::Exp(-E/p2))*1./(1.+p3*TMath::Exp((E-p4)/p5)));
68 if(nonLinCorr==1){//high bound on nonlinearity
72 alt = (p0)*1./(1.+p1*TMath::Exp(-E/p2));
78 alt = (p0)*1./(1.+p1*TMath::Exp(-E/p2));
83 if(effCorr==1){//high bound
90 //cout<<"Factor: "<<factor<<endl;