]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/AliAnalysisEtReconstructedEmcal.cxx
K0s code update (Matt Steinpreis)
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtReconstructedEmcal.cxx
CommitLineData
cf6522d1 1//_________________________________________________________________________
2// Utility Class for transverse energy studies
3// Base class for ESD analysis, for EMCAL
4// - reconstruction output
5// implementation file
6//
7//*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
8//_________________________________________________________________________
2fbf38ac 9#include "AliAnalysisEtReconstructedEmcal.h"
10#include "AliAnalysisEtCuts.h"
6ebd4c36 11#include "AliAnalysisEtSelectorEmcal.h"
2fbf38ac 12#include "AliESDtrack.h"
d3ce32b8 13#include "AliAnalysisEtRecEffCorrection.h"
2fbf38ac 14
16abb579 15using namespace std;
16
17ClassImp(AliAnalysisEtReconstructedEmcal);
18
19
2fbf38ac 20AliAnalysisEtReconstructedEmcal::AliAnalysisEtReconstructedEmcal() :
21AliAnalysisEtReconstructed()
22{
23 fHistogramNameSuffix = TString("EmcalRec");
24}
25
cf6522d1 26AliAnalysisEtReconstructedEmcal::~AliAnalysisEtReconstructedEmcal()
27{
28}
29
2fbf38ac 30
31void AliAnalysisEtReconstructedEmcal::Init()
cf6522d1 32{ // Init
4998becf 33 AliAnalysisEtReconstructed::Init();
2fbf38ac 34
4998becf 35 fDetectorRadius = fCuts->GetGeometryEmcalDetectorRadius();
4998becf 36 fSingleCellEnergyCut = fCuts->GetReconstructedEmcalSingleCellEnergyCut();
37
6ebd4c36 38 fSelector = new AliAnalysisEtSelectorEmcal(fCuts);
2fbf38ac 39}
40
41bool AliAnalysisEtReconstructedEmcal::TrackHitsCalorimeter(AliVParticle* track, Double_t magField)
42{
43 return AliAnalysisEtReconstructed::TrackHitsCalorimeter(track, magField);
44}
2aab9269 45
46void AliAnalysisEtReconstructedEmcal::CreateHistograms()
47{ // add some extra histograms & objects to the ones from base class
48 if(!fSelector){
49 cout<<__FILE__<<" "<<"Creating new fSelector"<<endl;
50 fSelector = new AliAnalysisEtSelectorEmcal(fCuts);
51 }
52 AliAnalysisEtReconstructed::CreateHistograms();
53}
d3ce32b8 54
55
31c813d5 56Double_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
d3ce32b8 57 Double_t factor = 1.0;
31c813d5 58 Double_t E = fReCorrections->CorrectedEnergy(cluster.E(),cent);
d3ce32b8 59 if(nonLinCorr!=0){
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)));
67 Double_t alt = 1;
68 if(nonLinCorr==1){//high bound on nonlinearity
69 p0 = .984;
70 p1 = 0.42;
71 p2 = 0.35;
72 alt = (p0)*1./(1.+p1*TMath::Exp(-E/p2));
73 }
74 else{//nonLinCorr==-1
75 p0 = .992;
76 p1 =0.115;
77 p2 = 0.68;
78 alt = (p0)*1./(1.+p1*TMath::Exp(-E/p2));
79 }
80 factor *=alt/nominal;
81 }
82 if(effCorr!=0){
83 if(effCorr==1){//high bound
6a152780 84 factor *=1.02;
d3ce32b8 85 }
86 else{//low bound
6a152780 87 factor *=0.98;
d3ce32b8 88 }
89 }
90 //cout<<"Factor: "<<factor<<endl;
91 return factor;
92}