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 */
5 /* $Id: AliAnaElectron.h 27413 2008-07-18 13:28:12Z gconesab $ */
7 //_________________________________________________________________________
9 // Class for the electron identification,
10 // Clusters from calorimeters are identified as electrons
11 // and kept in the AOD. Few histograms produced.
12 // Copy of AliAnaPhoton just add electron id.
15 //-- Author: Gustavo Conesa (LPSC-IN2P3-CNRS)
17 // --- ROOT system ---
24 // --- ANALYSIS system ---
25 #include "AliAnaPartCorrBaseClass.h"
31 class AliAnaElectron : public AliAnaPartCorrBaseClass {
35 AliAnaElectron() ; // default ctor
37 virtual ~AliAnaElectron() { ; } // virtual dtor
41 AliAnaElectron(const AliAnaElectron & g) ; // cpy ctor
43 AliAnaElectron & operator = (const AliAnaElectron & g) ; // cpy assignment
47 //---------------------------------------
48 // General analysis frame methods
49 //---------------------------------------
51 TObjString * GetAnalysisCuts();
53 TList * GetCreateOutputObjects();
57 void InitParameters();
59 void MakeAnalysisFillAOD() ;
61 void MakeAnalysisFillHistograms() ;
63 void Print(const Option_t * opt)const;
68 Bool_t ClusterSelected(AliVCluster* cl, TLorentzVector mom) ;
70 void FillShowerShapeHistograms( AliVCluster* cluster, const Int_t mcTag , const Int_t pidTag) ;
72 void SwitchOnFillShowerShapeHistograms() { fFillSSHistograms = kTRUE ; }
73 void SwitchOffFillShowerShapeHistograms() { fFillSSHistograms = kFALSE ; }
75 void RecalibrateCellAmplitude(Float_t & amp, const Int_t absId);
77 void WeightHistograms(AliVCluster *clus);
79 void SwitchOnFillWeightHistograms() { fFillWeightHistograms = kTRUE ; }
80 void SwitchOffFillWeightHistograms() { fFillWeightHistograms = kFALSE ; }
82 //---------------------------------------
83 // Analysis parameters setters getters
84 //---------------------------------------
86 TString GetCalorimeter() const { return fCalorimeter ; }
87 void SetCalorimeter(TString & det) { fCalorimeter = det ; }
89 // ** Cluster selection methods **
91 void SetdEdxCut(Double_t min, Double_t max) { fdEdxMin = min ;
94 void SetEOverP(Double_t min, Double_t max) { fEOverPMin = min ;
98 void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
99 fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3; }
101 void SetTimeCut(Double_t min, Double_t max) { fTimeCutMin = min;
102 fTimeCutMax = max ; }
103 Double_t GetTimeCutMin() const { return fTimeCutMin ; }
104 Double_t GetTimeCutMax() const { return fTimeCutMax ; }
106 void SetNCellCut(Int_t n) { fNCellsCut = n ; }
107 Double_t GetNCellCut() const { return fNCellsCut ; }
109 void FillNOriginHistograms(Int_t n) { fNOriginHistograms = n ;
110 if(n > 10) fNOriginHistograms = 10; }
112 // For histograms in arrays, index in the array, corresponding to a particle
113 enum mcTypes { mcPhoton = 0, mcPi0Decay = 1, mcOtherDecay = 2,
114 mcPi0 = 3, mcEta = 4, mcElectron = 5,
115 mcConversion = 6, mcOther = 7, mcAntiNeutron = 8,
118 enum mcssTypes { mcssPhoton = 0, mcssOther = 1, mcssPi0 = 2,
119 mcssEta = 3, mcssConversion = 4, mcssElectron = 5 };
123 TString fCalorimeter ; // Calorimeter where the gamma is searched;
124 Float_t fMinDist ; // Minimal distance to bad channel to accept cluster
125 Float_t fMinDist2; // Cuts on Minimal distance to study acceptance evaluation
126 Float_t fMinDist3; // One more cut on distance used for acceptance-efficiency study
127 Double_t fTimeCutMin ; // Remove clusters/cells with time smaller than this value, in ns
128 Double_t fTimeCutMax ; // Remove clusters/cells with time larger than this value, in ns
129 Int_t fNCellsCut ; // Accept for the analysis clusters with more than fNCellsCut cells
130 Bool_t fFillSSHistograms ; // Fill shower shape histograms
131 Bool_t fFillWeightHistograms ; // Fill weigth histograms
132 Int_t fNOriginHistograms; // Fill only NOriginHistograms of the 14 defined types
134 Float_t fdEdxMin; // Max dEdx for electrons
135 Float_t fdEdxMax; // Min dEdx for electrons
136 Float_t fEOverPMin; // Max E/p for electrons, after dEdx cut
137 Float_t fEOverPMax; // Min E/p for electrons, after dEdx cut
140 TH2F * fhdEdxvsE; //! matched track dEdx vs cluster E
141 TH2F * fhdEdxvsP; //! matched track dEdx vs track P
142 TH2F * fhEOverPvsE; //! matched track E cluster over P track vs cluster E, after dEdx cut
143 TH2F * fhEOverPvsP; //! matched track E cluster over P track vs track P, after dEdx cut
145 TH2F * fhNCellsE[2]; //! number of cells in cluster vs E
146 TH2F * fhMaxCellDiffClusterE[2]; //! Fraction of energy carried by cell with maximum energy
147 TH2F * fhTimeE[2]; //! E vs Time of selected cluster
149 TH1F * fhE[2] ; //! Number of identified electron vs energy
150 TH1F * fhPt[2] ; //! Number of identified electron vs transerse momentum
151 TH2F * fhPhi[2] ; //! Azimuthal angle of identified electron vs transerse momentum
152 TH2F * fhEta[2] ; //! Pseudorapidity of identified electron vs transerse momentum
153 TH2F * fhEtaPhi[2] ; //! Pseudorapidity vs Phi of identified electron for transerse momentum > 0.5
154 TH2F * fhEtaPhi05[2] ; //! Pseudorapidity vs Phi of identified electron for transerse momentum < 0.5
158 TH2F * fhDispE[2]; //! cluster dispersion vs E
159 TH2F * fhLam0E[2]; //! cluster lambda0 vs E
160 TH2F * fhLam1E[2]; //! cluster lambda1 vs E
162 TH2F * fhDispETRD[2]; //! cluster dispersion vs E, SM covered by TRD
163 TH2F * fhLam0ETRD[2]; //! cluster lambda0 vs E, SM covered by TRD
164 TH2F * fhLam1ETRD[2]; //! cluster lambda1 vs E, SM covered by TRD
166 TH2F * fhNCellsLam0LowE[2]; //! cluster N cells vs lambda0, E<2
167 TH2F * fhNCellsLam0HighE[2]; //! cluster N Cells vs lambda0, E>2
169 TH2F * fhEtaLam0LowE[2]; //! cluster eta vs lambda0, E<2
170 TH2F * fhPhiLam0LowE[2]; //! cluster phi vs lambda0, E<2
171 TH2F * fhEtaLam0HighE[2]; //! cluster eta vs lambda0, E>2
172 TH2F * fhPhiLam0HighE[2]; //! cluster phi vs lambda0, E>2
176 TH2F * fhECellClusterRatio; //! e cell / e cluster vs e cluster for selected electrons
177 TH2F * fhECellClusterLogRatio; //! log (e cell / e cluster) vs e cluster for selected electrons
178 TH2F * fhEMaxCellClusterRatio; //! e max cell / e cluster vs e cluster for selected electrons
179 TH2F * fhEMaxCellClusterLogRatio; //! log (e max cell / e cluster) vs e cluster for selected electrons
180 TH2F * fhLambda0ForW0[7]; //! L0 for 7 defined w0= 3, 3.5 ... 6 for selected electrons
181 TH2F * fhLambda1ForW0[7]; //! L1 for 7 defined w0= 3, 3.5 ... 6 for selected electrons
183 //Fill MC dependent histograms, Origin of this cluster is ...
185 TH2F * fhMCDeltaE[2][10] ; //! MC-Reco E distribution coming from MC particle
186 TH2F * fhMC2E[2][10] ; //! E distribution, Reco vs MC coming from MC particle
188 TH1F * fhMCE[2][10]; //! Number of identified electron vs cluster energy coming from MC particle
189 TH1F * fhMCPt[2][10]; //! Number of identified electron vs cluster energy coming from MC particle
190 TH2F * fhMCPhi[2][10]; //! Phi of identified electron coming from MC particle
191 TH2F * fhMCEta[2][10]; //! eta of identified electron coming from MC particle
195 TH2F * fhMCELambda0[2][6] ; //! E vs Lambda0 from MC particle
197 TH2F * fhMCElectronELambda0NoOverlap ; //! E vs Lambda0 from MC electrons, no overlap
198 TH2F * fhMCElectronELambda0TwoOverlap ; //! E vs Lambda0 from MC electrons, 2 particles overlap
199 TH2F * fhMCElectronELambda0NOverlap ; //! E vs Lambda0 from MC electrons, N particles overlap
202 TH2F * fhEmbeddedSignalFractionEnergy ; //! Fraction of electron energy of embedded signal vs cluster energy
204 TH2F * fhEmbedElectronELambda0FullSignal ; //! Lambda0 vs E for embedded electrons with more than 90% of the cluster energy
205 TH2F * fhEmbedElectronELambda0MostlySignal ; //! Lambda0 vs E for embedded electrons with 90%<fraction<50%
206 TH2F * fhEmbedElectronELambda0MostlyBkg ; //! Lambda0 vs E for embedded electrons with 50%<fraction<10%
207 TH2F * fhEmbedElectronELambda0FullBkg ; //! Lambda0 vs E for embedded electrons with less than 10% of the cluster energy
209 ClassDef(AliAnaElectron,2)
214 #endif//ALIANAELECTRON_H