]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/AliAnalysisEtReconstructedPhos.cxx
Tweaks to destructors and getting code working with plugin
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtReconstructedPhos.cxx
CommitLineData
cf6522d1 1//_________________________________________________________________________
2// Utility Class for transverse energy studies
3// Base class for ESD analysis, for PHOS
4// - reconstruction output
5// implementation file
6//
7//*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
8//_________________________________________________________________________
2fbf38ac 9#include "AliAnalysisEtReconstructedPhos.h"
ef647350 10#include "AliAnalysisEtSelectorPhos.h"
2fbf38ac 11#include "AliAnalysisEtCuts.h"
12#include "AliESDtrack.h"
ef647350 13#include <fstream>
14#include <iostream>
15#include <AliPHOSGeoUtils.h>
16#include "AliPHOSGeometry.h"
17#include <vector>
18#include "TH2I.h"
19
16abb579 20using namespace std;
21
22ClassImp(AliAnalysisEtReconstructedPhos);
23
6deef1fa 24/*// Worst case (protons and neutrons):
3825c7d6 25const Double_t kMEANCHARGED = 0.335;
26const Double_t kMEANNEUTRAL = 0.434;
27const Double_t kMEANGAMMA = 0.374;
6deef1fa 28
ef647350 29// Best case (pions and K0s):
3825c7d6 30const Double_t kMEANCHARGED = 0.304;
31const Double_t kMEANNEUTRAL = 0.3356;
32const Double_t kMEANGAMMA = 0.374;
6deef1fa 33*/
34// Simulated case:
ef647350 35//corrEnergy =cluster->E()/(0.51 + 0.02*cluster->E());
36const Double_t kMEANCHARGED = 0.307/(0.51 + 0.02*0.307);
37const Double_t kMEANNEUTRAL = 0.407/(0.51 + 0.02*0.407);
38const Double_t kMEANGAMMA = 0.374/(0.51 + 0.02*0.374);
6deef1fa 39
16abb579 40
2fbf38ac 41AliAnalysisEtReconstructedPhos::AliAnalysisEtReconstructedPhos() :
ef647350 42 AliAnalysisEtReconstructed()
2fbf38ac 43{
ef647350 44 fHistogramNameSuffix = TString("PhosRec");
45
f61cec2f 46// fChargedContributionCorrectionParameters[0] = -0.017;
47// fChargedContributionCorrectionParameters[1] = 0.065;
48//
49// fNeutralContributionCorrectionParameters[0] = -0.002;
50// fNeutralContributionCorrectionParameters[1] = 0.017;
51// fNeutralContributionCorrectionParameters[2] = -3.6e-5;
52//
53// fRemovedGammaContributionCorrectionParameters[0] = 0.001;
54// fRemovedGammaContributionCorrectionParameters[1] = 0.37e-5;
55// fRemovedGammaContributionCorrectionParameters[2] = 0.0003;
56
57 fChargedContributionCorrectionParameters[0] = -0.0231864;
58 fChargedContributionCorrectionParameters[1] = 0.112661;
59 fChargedContributionCorrectionParameters[2] = 9.2836e-05;
60
61 fNeutralContributionCorrectionParameters[0] = -9.18740e-03;
62 fNeutralContributionCorrectionParameters[1] = 3.58584e-02;
63 fNeutralContributionCorrectionParameters[2] = 9.48208e-04;
64
65 fRemovedGammaContributionCorrectionParameters[0] = -2.74323e-03;
66 fRemovedGammaContributionCorrectionParameters[1] = 2.71104e-03;
67 fRemovedGammaContributionCorrectionParameters[2] = 3.52758e-04;
68
69 fSecondaryContributionCorrectionParameters[0] = 0.075;
70 fSecondaryContributionCorrectionParameters[1] = 0.150187;
71 fSecondaryContributionCorrectionParameters[2] = 0.00329361;
311c6540 72
2fbf38ac 73}
74
ef647350 75AliAnalysisEtReconstructedPhos::~AliAnalysisEtReconstructedPhos()
cf6522d1 76{
77}
2fbf38ac 78
79void AliAnalysisEtReconstructedPhos::Init()
cf6522d1 80{ // Init
ef647350 81 AliAnalysisEtReconstructed::Init();
82
2fbf38ac 83
ef647350 84 fDetectorRadius = fCuts->GetGeometryPhosDetectorRadius();
ef647350 85 fSingleCellEnergyCut = fCuts->GetReconstructedPhosSingleCellEnergyCut();
86
4998becf 87
2fbf38ac 88}
89
90bool AliAnalysisEtReconstructedPhos::TrackHitsCalorimeter(AliVParticle* track, Double_t magField)
91{
ef647350 92 return AliAnalysisEtReconstructed::TrackHitsCalorimeter(track, magField);
2fbf38ac 93}
94
6deef1fa 95Double_t AliAnalysisEtReconstructedPhos::GetChargedContribution(Int_t clusterMult)
3825c7d6 96{ // Charged contrib
ef647350 97 if (clusterMult > 0)
98 {
f61cec2f 99 Double_t nPart = fChargedContributionCorrectionParameters[0] + fChargedContributionCorrectionParameters[1]*clusterMult + fChargedContributionCorrectionParameters[2]*clusterMult*clusterMult;
ef647350 100
101 Double_t contr = nPart*kMEANCHARGED;
102
103 return contr;
104 }
105 return 0;
106
6deef1fa 107}
108
109Double_t AliAnalysisEtReconstructedPhos::GetNeutralContribution(Int_t clusterMult)
3825c7d6 110{ // Neutral contrib
ef647350 111 if (clusterMult > 0)
112 {
113 Double_t nPart = fNeutralContributionCorrectionParameters[0] + fNeutralContributionCorrectionParameters[1]*clusterMult + fNeutralContributionCorrectionParameters[2]*clusterMult*clusterMult;
114
115 Double_t contr = nPart*kMEANNEUTRAL;
116
117 return contr;
118 }
119 return 0;
6deef1fa 120}
121
122Double_t AliAnalysisEtReconstructedPhos::GetGammaContribution(Int_t clusterMult)
3825c7d6 123{ // Gamma contrib
ef647350 124 if (clusterMult > 0)
125 {
126 Double_t nPart = fRemovedGammaContributionCorrectionParameters[0] + fRemovedGammaContributionCorrectionParameters[1]*clusterMult + fRemovedGammaContributionCorrectionParameters[2]*clusterMult*clusterMult;
6deef1fa 127
ef647350 128 Double_t contr = nPart*kMEANGAMMA;
6deef1fa 129
ef647350 130 return contr;
131 }
132 return 0;
133}
6deef1fa 134
f61cec2f 135Double_t AliAnalysisEtReconstructedPhos::GetSecondaryContribution(Int_t clusterMultiplicity)
136{
137 if(clusterMultiplicity > 0)
138 {
139 return fSecondaryContributionCorrectionParameters[0] + fSecondaryContributionCorrectionParameters[1]*clusterMultiplicity + fSecondaryContributionCorrectionParameters[2]*clusterMultiplicity*clusterMultiplicity;
140 }
141
142 return 0;
143}
6deef1fa 144
145
146
311c6540 147
148void AliAnalysisEtReconstructedPhos::CreateHistograms()
149{ // add some extra histograms & objects to the ones from base class
150 AliAnalysisEtReconstructed::CreateHistograms();
151 fSelector = new AliAnalysisEtSelectorPhos(fCuts);
152}