1 //_________________________________________________________________________
2 // Utility Class for transverse energy studies
3 // Base class for ESD analysis, for PHOS
4 // - reconstruction output
7 //*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
8 //_________________________________________________________________________
9 #include "AliAnalysisEtReconstructedPhos.h"
10 #include "AliAnalysisEtSelectorPhos.h"
11 #include "AliAnalysisEtCuts.h"
12 #include "AliESDtrack.h"
15 #include <AliPHOSGeoUtils.h>
16 #include "AliPHOSGeometry.h"
22 ClassImp(AliAnalysisEtReconstructedPhos);
24 /*// Worst case (protons and neutrons):
25 const Double_t kMEANCHARGED = 0.335;
26 const Double_t kMEANNEUTRAL = 0.434;
27 const Double_t kMEANGAMMA = 0.374;
29 // Best case (pions and K0s):
30 const Double_t kMEANCHARGED = 0.304;
31 const Double_t kMEANNEUTRAL = 0.3356;
32 const Double_t kMEANGAMMA = 0.374;
35 //corrEnergy =cluster->E()/(0.31 + 0.02*cluster->E());
36 const Double_t kMEANCHARGED = 0.48/(0.31 + 0.00*0.48);
37 const Double_t kMEANNEUTRAL = 0.53/(0.31 + 0.00*0.53);
38 const Double_t kMEANGAMMA = 0.51/(0.31 + 0.00*0.31);
41 AliAnalysisEtReconstructedPhos::AliAnalysisEtReconstructedPhos() :
42 AliAnalysisEtReconstructed()
44 fHistogramNameSuffix = TString("PhosRec");
46 // fChargedContributionCorrectionParameters[0] = -0.017;
47 // fChargedContributionCorrectionParameters[1] = 0.065;
49 // fNeutralContributionCorrectionParameters[0] = -0.002;
50 // fNeutralContributionCorrectionParameters[1] = 0.017;
51 // fNeutralContributionCorrectionParameters[2] = -3.6e-5;
53 // fRemovedGammaContributionCorrectionParameters[0] = 0.001;
54 // fRemovedGammaContributionCorrectionParameters[1] = 0.37e-5;
55 // fRemovedGammaContributionCorrectionParameters[2] = 0.0003;
57 fChargedContributionCorrectionParameters[0] = -0.06;
58 fChargedContributionCorrectionParameters[1] = 0.316;
59 fChargedContributionCorrectionParameters[2] = 0.0022;
61 fNeutralContributionCorrectionParameters[0] = -0.003;
62 fNeutralContributionCorrectionParameters[1] = 0.232;
63 fNeutralContributionCorrectionParameters[2] = 0.002;
65 fRemovedGammaContributionCorrectionParameters[0] = 0.001;
66 fRemovedGammaContributionCorrectionParameters[1] = 0.009;
67 fRemovedGammaContributionCorrectionParameters[2] = 0.0;
69 fSecondaryContributionCorrectionParameters[0] = -0.03;
70 fSecondaryContributionCorrectionParameters[1] = 0.221;
71 fSecondaryContributionCorrectionParameters[2] = 0.002;
75 AliAnalysisEtReconstructedPhos::~AliAnalysisEtReconstructedPhos()
79 void AliAnalysisEtReconstructedPhos::Init()
81 AliAnalysisEtReconstructed::Init();
84 fDetectorRadius = fCuts->GetGeometryPhosDetectorRadius();
85 fSingleCellEnergyCut = fCuts->GetReconstructedPhosSingleCellEnergyCut();
86 fSelector = new AliAnalysisEtSelectorPhos(fCuts);
90 bool AliAnalysisEtReconstructedPhos::TrackHitsCalorimeter(AliVParticle* track, Double_t magField)
92 return AliAnalysisEtReconstructed::TrackHitsCalorimeter(track, magField);
97 void AliAnalysisEtReconstructedPhos::CreateHistograms()
98 { // add some extra histograms & objects to the ones from base class
100 cout<<__FILE__<<" "<<"Creating new fSelector"<<endl;
101 fSelector = new AliAnalysisEtSelectorPhos(fCuts);
103 AliAnalysisEtReconstructed::CreateHistograms();
106 Double_t AliAnalysisEtReconstructedPhos::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
107 Double_t factor = 1.0;
109 if(nonLinCorr==1){//high bound on nonlinearity
112 else{//nonLinCorr==-1
117 if(effCorr==1){//high bound
123 if(cent<0){//this condition will never be met but it will stop a compiler warning that results in Coverity sending me an email about once every two weeks.
124 Double_t E = cluster.E();