]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaElectron.h
Transition PWG4 --> PWGGA
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaElectron.h
CommitLineData
d9105d92 1#ifndef ALIANAELECTRON_H
2#define ALIANAELECTRON_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
d9105d92 5
6//_________________________________________________________________________
7//
8// Class for the electron identification,
9// Clusters from calorimeters are identified as electrons
10// and kept in the AOD. Few histograms produced.
11// Copy of AliAnaPhoton just add electron id.
12//
13
14//-- Author: Gustavo Conesa (LPSC-IN2P3-CNRS)
15
16// --- ROOT system ---
17class TH2F ;
18class TH1F;
19class TH3D;
20class TString ;
21class TObjString;
22
23// --- ANALYSIS system ---
745913ae 24#include "AliAnaCaloTrackCorrBaseClass.h"
d9105d92 25class AliStack;
26class TParticle;
27
28class TList ;
29
745913ae 30class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
d9105d92 31
32 public:
33
34 AliAnaElectron() ; // default ctor
35
36 virtual ~AliAnaElectron() { ; } // virtual dtor
d9105d92 37
38 //---------------------------------------
39 // General analysis frame methods
40 //---------------------------------------
41
42 TObjString * GetAnalysisCuts();
43
44 TList * GetCreateOutputObjects();
45
46 void Init();
47
48 void InitParameters();
49
50 void MakeAnalysisFillAOD() ;
51
52 void MakeAnalysisFillHistograms() ;
53
54 void Print(const Option_t * opt)const;
55
56
57 // Analysis methods
58
59 Bool_t ClusterSelected(AliVCluster* cl, TLorentzVector mom) ;
60
d9105d92 61 void FillShowerShapeHistograms( AliVCluster* cluster, const Int_t mcTag , const Int_t pidTag) ;
62
63 void SwitchOnFillShowerShapeHistograms() { fFillSSHistograms = kTRUE ; }
64 void SwitchOffFillShowerShapeHistograms() { fFillSSHistograms = kFALSE ; }
65
78a28af3 66 void RecalibrateCellAmplitude(Float_t & amp, const Int_t absId);
67
68 void WeightHistograms(AliVCluster *clus);
69
70 void SwitchOnFillWeightHistograms() { fFillWeightHistograms = kTRUE ; }
71 void SwitchOffFillWeightHistograms() { fFillWeightHistograms = kFALSE ; }
72
d9105d92 73 //---------------------------------------
74 // Analysis parameters setters getters
75 //---------------------------------------
76
77 TString GetCalorimeter() const { return fCalorimeter ; }
78 void SetCalorimeter(TString & det) { fCalorimeter = det ; }
79
80 // ** Cluster selection methods **
81
82 void SetdEdxCut(Double_t min, Double_t max) { fdEdxMin = min ;
83 fdEdxMax = max ; }
84
85 void SetEOverP(Double_t min, Double_t max) { fEOverPMin = min ;
86 fEOverPMax = max ; }
87
88
89 void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
90 fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3; }
91
92 void SetTimeCut(Double_t min, Double_t max) { fTimeCutMin = min;
93 fTimeCutMax = max ; }
94 Double_t GetTimeCutMin() const { return fTimeCutMin ; }
95 Double_t GetTimeCutMax() const { return fTimeCutMax ; }
96
97 void SetNCellCut(Int_t n) { fNCellsCut = n ; }
98 Double_t GetNCellCut() const { return fNCellsCut ; }
99
100 void FillNOriginHistograms(Int_t n) { fNOriginHistograms = n ;
101 if(n > 10) fNOriginHistograms = 10; }
102
103 // For histograms in arrays, index in the array, corresponding to a particle
c5693f62 104 enum mcTypes { kmcPhoton = 0, kmcPi0Decay = 1, kmcOtherDecay = 2,
105 kmcPi0 = 3, kmcEta = 4, kmcElectron = 5,
106 kmcConversion = 6, kmcOther = 7, kmcAntiNeutron = 8,
107 kmcAntiProton = 9 };
d9105d92 108
c5693f62 109 enum mcssTypes { kmcssPhoton = 0, kmcssOther = 1, kmcssPi0 = 2,
110 kmcssEta = 3, kmcssConversion = 4, kmcssElectron = 5 };
d9105d92 111
112 private:
113
114 TString fCalorimeter ; // Calorimeter where the gamma is searched;
115 Float_t fMinDist ; // Minimal distance to bad channel to accept cluster
116 Float_t fMinDist2; // Cuts on Minimal distance to study acceptance evaluation
117 Float_t fMinDist3; // One more cut on distance used for acceptance-efficiency study
118 Double_t fTimeCutMin ; // Remove clusters/cells with time smaller than this value, in ns
119 Double_t fTimeCutMax ; // Remove clusters/cells with time larger than this value, in ns
120 Int_t fNCellsCut ; // Accept for the analysis clusters with more than fNCellsCut cells
121 Bool_t fFillSSHistograms ; // Fill shower shape histograms
78a28af3 122 Bool_t fFillWeightHistograms ; // Fill weigth histograms
d9105d92 123 Int_t fNOriginHistograms; // Fill only NOriginHistograms of the 14 defined types
124
125 Float_t fdEdxMin; // Max dEdx for electrons
126 Float_t fdEdxMax; // Min dEdx for electrons
127 Float_t fEOverPMin; // Max E/p for electrons, after dEdx cut
128 Float_t fEOverPMax; // Min E/p for electrons, after dEdx cut
129
130 //Histograms
131 TH2F * fhdEdxvsE; //! matched track dEdx vs cluster E
132 TH2F * fhdEdxvsP; //! matched track dEdx vs track P
133 TH2F * fhEOverPvsE; //! matched track E cluster over P track vs cluster E, after dEdx cut
134 TH2F * fhEOverPvsP; //! matched track E cluster over P track vs track P, after dEdx cut
135
136 TH2F * fhNCellsE[2]; //! number of cells in cluster vs E
137 TH2F * fhMaxCellDiffClusterE[2]; //! Fraction of energy carried by cell with maximum energy
42d47cb7 138 TH2F * fhTimeE[2]; //! E vs Time of selected cluster
139
d9105d92 140 TH1F * fhE[2] ; //! Number of identified electron vs energy
141 TH1F * fhPt[2] ; //! Number of identified electron vs transerse momentum
142 TH2F * fhPhi[2] ; //! Azimuthal angle of identified electron vs transerse momentum
143 TH2F * fhEta[2] ; //! Pseudorapidity of identified electron vs transerse momentum
144 TH2F * fhEtaPhi[2] ; //! Pseudorapidity vs Phi of identified electron for transerse momentum > 0.5
145 TH2F * fhEtaPhi05[2] ; //! Pseudorapidity vs Phi of identified electron for transerse momentum < 0.5
146
147 //Shower shape
148
149 TH2F * fhDispE[2]; //! cluster dispersion vs E
150 TH2F * fhLam0E[2]; //! cluster lambda0 vs E
151 TH2F * fhLam1E[2]; //! cluster lambda1 vs E
152
153 TH2F * fhDispETRD[2]; //! cluster dispersion vs E, SM covered by TRD
154 TH2F * fhLam0ETRD[2]; //! cluster lambda0 vs E, SM covered by TRD
155 TH2F * fhLam1ETRD[2]; //! cluster lambda1 vs E, SM covered by TRD
156
157 TH2F * fhNCellsLam0LowE[2]; //! cluster N cells vs lambda0, E<2
158 TH2F * fhNCellsLam0HighE[2]; //! cluster N Cells vs lambda0, E>2
159
160 TH2F * fhEtaLam0LowE[2]; //! cluster eta vs lambda0, E<2
161 TH2F * fhPhiLam0LowE[2]; //! cluster phi vs lambda0, E<2
162 TH2F * fhEtaLam0HighE[2]; //! cluster eta vs lambda0, E>2
163 TH2F * fhPhiLam0HighE[2]; //! cluster phi vs lambda0, E>2
164
78a28af3 165 // Weight studies
166
167 TH2F * fhECellClusterRatio; //! e cell / e cluster vs e cluster for selected electrons
168 TH2F * fhECellClusterLogRatio; //! log (e cell / e cluster) vs e cluster for selected electrons
169 TH2F * fhEMaxCellClusterRatio; //! e max cell / e cluster vs e cluster for selected electrons
170 TH2F * fhEMaxCellClusterLogRatio; //! log (e max cell / e cluster) vs e cluster for selected electrons
1a72f6c5 171 TH2F * fhLambda0ForW0[14]; //! L0 for 7 defined w0= 3, 3.5 ... 6 for selected electrons
172 //TH2F * fhLambda1ForW0[14]; //! L1 for 7 defined w0= 3, 3.5 ... 6 for selected electrons
78a28af3 173
d9105d92 174 //Fill MC dependent histograms, Origin of this cluster is ...
175
176 TH2F * fhMCDeltaE[2][10] ; //! MC-Reco E distribution coming from MC particle
177 TH2F * fhMC2E[2][10] ; //! E distribution, Reco vs MC coming from MC particle
178
179 TH1F * fhMCE[2][10]; //! Number of identified electron vs cluster energy coming from MC particle
180 TH1F * fhMCPt[2][10]; //! Number of identified electron vs cluster energy coming from MC particle
181 TH2F * fhMCPhi[2][10]; //! Phi of identified electron coming from MC particle
182 TH2F * fhMCEta[2][10]; //! eta of identified electron coming from MC particle
183
184 // Shower Shape MC
185
186 TH2F * fhMCELambda0[2][6] ; //! E vs Lambda0 from MC particle
187
188 TH2F * fhMCElectronELambda0NoOverlap ; //! E vs Lambda0 from MC electrons, no overlap
189 TH2F * fhMCElectronELambda0TwoOverlap ; //! E vs Lambda0 from MC electrons, 2 particles overlap
190 TH2F * fhMCElectronELambda0NOverlap ; //! E vs Lambda0 from MC electrons, N particles overlap
191
192 //Embedding
193 TH2F * fhEmbeddedSignalFractionEnergy ; //! Fraction of electron energy of embedded signal vs cluster energy
194
195 TH2F * fhEmbedElectronELambda0FullSignal ; //! Lambda0 vs E for embedded electrons with more than 90% of the cluster energy
196 TH2F * fhEmbedElectronELambda0MostlySignal ; //! Lambda0 vs E for embedded electrons with 90%<fraction<50%
197 TH2F * fhEmbedElectronELambda0MostlyBkg ; //! Lambda0 vs E for embedded electrons with 50%<fraction<10%
198 TH2F * fhEmbedElectronELambda0FullBkg ; //! Lambda0 vs E for embedded electrons with less than 10% of the cluster energy
199
c5693f62 200 AliAnaElectron(const AliAnaElectron & g) ; // cpy ctor
201 AliAnaElectron & operator = (const AliAnaElectron & g) ; // cpy assignment
202
203 ClassDef(AliAnaElectron,2)
d9105d92 204
205} ;
206
207
208#endif//ALIANAELECTRON_H
209
210
211