]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/AliAnalysisEtReconstructedPhos.cxx
Fix some minor problems and add output string that holds the normalization calculations
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtReconstructedPhos.cxx
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 //_________________________________________________________________________
9 #include "AliAnalysisEtReconstructedPhos.h"
10 #include "AliAnalysisEtSelectorPhos.h"
11 #include "AliAnalysisEtCuts.h"
12 #include "AliESDtrack.h"
13 #include <fstream>
14 #include <iostream>
15 #include <AliPHOSGeoUtils.h>
16 #include "AliPHOSGeometry.h"
17 #include <vector>
18 #include "TH2I.h"
19
20 using namespace std;
21
22 ClassImp(AliAnalysisEtReconstructedPhos);
23
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;
28
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;
33 */
34 // Simulated case:
35 //corrEnergy =cluster->E()/(0.51 + 0.02*cluster->E());
36 const Double_t kMEANCHARGED = 0.307/(0.51 + 0.02*0.307);
37 const Double_t kMEANNEUTRAL = 0.407/(0.51 + 0.02*0.407);
38 const Double_t kMEANGAMMA = 0.374/(0.51 + 0.02*0.374);
39
40
41 AliAnalysisEtReconstructedPhos::AliAnalysisEtReconstructedPhos() :
42         AliAnalysisEtReconstructed()
43 { // ctor
44     fHistogramNameSuffix = TString("PhosRec");
45
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;
72
73 }
74
75 AliAnalysisEtReconstructedPhos::~AliAnalysisEtReconstructedPhos()
76 {
77 }
78
79 void AliAnalysisEtReconstructedPhos::Init()
80 { // Init
81     AliAnalysisEtReconstructed::Init();
82
83     
84     fDetectorRadius = fCuts->GetGeometryPhosDetectorRadius();
85     fSingleCellEnergyCut = fCuts->GetReconstructedPhosSingleCellEnergyCut();
86
87
88 }
89
90 bool AliAnalysisEtReconstructedPhos::TrackHitsCalorimeter(AliVParticle* track, Double_t magField)
91
92     return  AliAnalysisEtReconstructed::TrackHitsCalorimeter(track, magField);
93 }
94
95 Double_t AliAnalysisEtReconstructedPhos::GetChargedContribution(Int_t clusterMult)
96 { // Charged contrib
97     if (clusterMult > 0)
98     {
99         Double_t nPart = fChargedContributionCorrectionParameters[0] + fChargedContributionCorrectionParameters[1]*clusterMult + fChargedContributionCorrectionParameters[2]*clusterMult*clusterMult;
100
101         Double_t contr = nPart*kMEANCHARGED;
102
103         return contr;
104     }
105     return 0;
106
107 }
108
109 Double_t AliAnalysisEtReconstructedPhos::GetNeutralContribution(Int_t clusterMult)
110 { // Neutral contrib
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;
120 }
121
122 Double_t AliAnalysisEtReconstructedPhos::GetGammaContribution(Int_t clusterMult)
123 { // Gamma contrib
124     if (clusterMult > 0)
125     {
126         Double_t nPart = fRemovedGammaContributionCorrectionParameters[0] + fRemovedGammaContributionCorrectionParameters[1]*clusterMult + fRemovedGammaContributionCorrectionParameters[2]*clusterMult*clusterMult;
127
128         Double_t contr = nPart*kMEANGAMMA;
129
130         return contr;
131     }
132     return 0;
133 }
134
135 Double_t AliAnalysisEtReconstructedPhos::GetSecondaryContribution(Int_t clusterMultiplicity)
136 { // Secondary contrib
137   if(clusterMultiplicity > 0)
138   {
139     return fSecondaryContributionCorrectionParameters[0] + fSecondaryContributionCorrectionParameters[1]*clusterMultiplicity + fSecondaryContributionCorrectionParameters[2]*clusterMultiplicity*clusterMultiplicity;
140   }
141   
142   return 0;
143 }
144
145
146
147
148 void AliAnalysisEtReconstructedPhos::CreateHistograms()
149 { // add some extra histograms & objects to the ones from base class
150   AliAnalysisEtReconstructed::CreateHistograms();
151   fSelector = new AliAnalysisEtSelectorPhos(fCuts);
152 }