AliPhysics  1c9c77b (1c9c77b)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnaElectron.h
Go to the documentation of this file.
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 
6 //_________________________________________________________________________
20 //_________________________________________________________________________
21 
22 // --- ROOT system ---
23 class TH2F ;
24 class TH1F;
25 class TH3D;
26 class TObjString;
27 
28 // --- ANALYSIS system ---
30 class AliStack;
31 class TParticle;
32 
33 class TList ;
34 
36 
37  public:
38 
39  AliAnaElectron() ;
40 
42  virtual ~AliAnaElectron() { ; }
43 
44  //---------------------------------------
45  // General analysis frame methods
46  //---------------------------------------
47 
48  TObjString * GetAnalysisCuts();
49 
51 
52  void Init();
53 
54  void InitParameters();
55 
56  void MakeAnalysisFillAOD() ;
57 
59 
60  void Print(const Option_t * opt)const;
61 
62 
63  // Analysis methods
64 
65  Bool_t ClusterSelected(AliVCluster* cl, Int_t nMaxima) ;
66 
67  void FillShowerShapeHistograms( AliVCluster* cluster, Int_t mcTag , Int_t pidTag) ;
68 
71 
72  void WeightHistograms(AliVCluster *clus);
73 
76 
77  //---------------------------------------
78  // Analysis parameters setters getters
79  //---------------------------------------
80 
81  // ** Cluster selection methods **
82 
83  void SetdEdxCut(Double_t min, Double_t max) { fdEdxMin = min ;
84  fdEdxMax = max ; }
85 
86  void SetEOverP(Double_t min, Double_t max) { fEOverPMin = min ;
87  fEOverPMax = max ; }
88 
89 
91  fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3; }
92 
93  void SetTimeCut(Double_t min, Double_t max) { fTimeCutMin = min;
94  fTimeCutMax = max ; }
95  Double_t GetTimeCutMin() const { return fTimeCutMin ; }
96  Double_t GetTimeCutMax() const { return fTimeCutMax ; }
97 
98  void SetNCellCut(Int_t n) { fNCellsCut = n ; }
99  Double_t GetNCellCut() const { return fNCellsCut ; }
100 
101  void SetNLMCut(Int_t min, Int_t max) { fNLMCutMin = min;
102  fNLMCutMax = max ; }
103  Int_t GetNLMCutMin() const { return fNLMCutMin ; }
104  Int_t GetNLMCutMax() const { return fNLMCutMax ; }
105 
107  if(n > 10) fNOriginHistograms = 10; }
108 
109 
112  void FillAODWithAny() { fAODParticle = 0 ; }
113 
116 
119  kmcPi0 = 3, kmcEta = 4, kmcElectron = 5,
122 
125  enum mcssTypes { kmcssPhoton = 0, kmcssOther = 1, kmcssPi0 = 2,
127 
128  private:
129 
142 
147 
149 
150  TLorentzVector fMomentum;
151  TLorentzVector fMomentumMC;
152  TVector3 fProdVertex;
153 
154  //Histograms
159 
164 
169 
174 
176  TH2F * fhNLME[2];
178  TH2F * fhTimeE[2];
179 
180  TH1F * fhE[2] ;
181  TH1F * fhPt[2] ;
182  TH2F * fhPhi[2] ;
183  TH2F * fhEta[2] ;
184  TH2F * fhEtaPhi[2] ;
185  TH2F * fhEtaPhi05[2] ;
186 
187  //Shower shape
188 
189  TH2F * fhDispE[2];
190  TH2F * fhLam0E[2];
191  TH2F * fhLam1E[2];
192 
196 
199 
204 
205  TH2F * fhDispEtaE[2] ;
206  TH2F * fhDispPhiE[2] ;
207  TH2F * fhSumEtaE[2] ;
208  TH2F * fhSumPhiE[2] ;
213 
214  // Weight studies
215 
221 //TH2F * fhLambda1ForW0[14]; //!<! L1 for 7 defined w0= 3, 3.5 ... 6 for selected electrons
222 
223  // Fill MC dependent histograms, Origin of this cluster is ...
224 
225  TH2F * fhMCDeltaE[2][10] ;
226  TH2F * fhMC2E[2][10] ;
227 
228  TH1F * fhMCE[2][10];
229  TH1F * fhMCPt[2][10];
230  TH2F * fhMCPhi[2][10];
231  TH2F * fhMCEta[2][10];
232 
233  // Shower Shape MC
234 
235  TH2F * fhMCELambda0[2][6] ;
236 
237  TH2F * fhMCEDispEta[2][6] ;
238  TH2F * fhMCEDispPhi[2][6] ;
239  TH2F * fhMCESumEtaPhi[2][6] ;
242 
246 
247  //Embedding
249 
254 
256  AliAnaElectron( const AliAnaElectron & el) ;
257 
260 
262  ClassDef(AliAnaElectron,5) ;
264 
265 } ;
266 
267 
268 #endif//ALIANAELECTRON_H
269 
270 
271 
TH2F * fhDispEtaPhiDiffE[2]
! shower dispersion eta - phi
void SetEOverP(Double_t min, Double_t max)
Double_t GetTimeCutMax() const
TH2F * fhEtaPhi05[2]
! Pseudorapidity vs Phi of identified electron for transerse momentum < 0.5
TH2F * fhMCESumEtaPhi[2][6]
! shower dispersion in eta vs phi direction from MC particle
Float_t fEOverPMax
Min E/p for electrons, after dEdx cut.
TH2F * fhSumPhiE[2]
! shower dispersion in phi direction
void FillShowerShapeHistograms(AliVCluster *cluster, Int_t mcTag, Int_t pidTag)
Fill cluster Shower Shape histograms.
TH2F * fhMCEDispPhi[2][6]
! shower dispersion in phi direction from MC particle
TH2F * fhLambda0ForW0[14]
! L0 for 7 defined w0= 3, 3.5 ... 6 for selected electrons
double Double_t
Definition: External.C:58
TH2F * fhNLME[2]
! Number of local maxima in cluster vs E
Definition: External.C:236
TH1F * fhMCPt[2][10]
! Number of identified electron vs cluster energy coming from MC particle
TH2F * fhEmbedElectronELambda0MostlyBkg
! Lambda0 vs E for embedded electrons with 50%<fraction<10%
void SwitchOffOnlySimpleHistoFill()
void SwitchOnFillShowerShapeHistograms()
TH2F * fhMCEDispEtaPhiDiff[2][6]
! shower dispersion in eta -phi direction from MC particle
Int_t fNLMCutMax
Remove clusters/cells with number of local maxima larger than this value.
TH2F * fhdEdxvsECutM02
! Matched track dEdx vs cluster E, mild M02 cut
TH2F * fhEOverPvsPCutM02
! Matched track E cluster over P track vs track P, after dEdx cut, mild M02 cut
TH2F * fhMCEta[2][10]
! eta of identified electron coming from MC particle
void SwitchOnFillWeightHistograms()
TH1F * fhMCE[2][10]
! Number of identified electron vs cluster energy coming from MC particle
TH2F * fhLam1ETRD[2]
! cluster lambda1 vs E, SM covered by TRD
TH2F * fhPhi[2]
! Azimuthal angle of identified electron vs transerse momentum
Bool_t fFillSSHistograms
Fill shower shape histograms.
TH2F * fhTimeE[2]
! E vs Time of selected cluster
Float_t fMinDist3
One more cut on distance used for acceptance-efficiency study.
TH2F * fhdEdxvsPCutEOverP
! Matched track dEdx vs track P, cut on EOverP
Double_t GetNCellCut() const
TH2F * fhMCdEdxvsE[10]
! Matched track dEdx vs cluster E, coming from MC particle
TH2F * fhdEdxvsP
! Matched track dEdx vs track P
void SwitchOffFillWeightHistograms()
TH2F * fhMCEOverPvsP[10]
! Matched track E cluster over P track vs track P, after dEdx cut, coming from MC particle ...
TLorentzVector fMomentumMC
! mc particle momentum
TH2F * fhEmbedElectronELambda0FullSignal
! Lambda0 vs E for embedded electrons with more than 90% of the cluster energy
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3)
TH2F * fhDispEtaE[2]
! shower dispersion in eta direction
TH2F * fhPhiLam0LowE[2]
! cluster phi vs lambda0, E<2
Selection of electron clusters in calorimeter.
TH2F * fhDispETRD[2]
! cluster dispersion vs E, SM covered by TRD
TH2F * fhMCESphericity[2][6]
! shower sphericity, eta vs phi from MC particle
TH2F * fhdEdxvsECutEOverP
! Matched track dEdx vs cluster E , cut on EOverP
TH2F * fhMCEDispEta[2][6]
! shower dispersion in eta direction from MC particle
Int_t fAODParticle
Select the type of particle to put in AODs for other analysis.
TH2F * fhECellClusterRatio
! E cell / e cluster vs e cluster for selected electrons
void InitParameters()
Initialize the parameters of the analysis with default values.
TH2F * fhMCELambda0[2][6]
! E vs Lambda0 from MC particle
TH2F * fhECellClusterLogRatio
! log (E cell / E cluster) vs E cluster for selected electrons
TH2F * fhLam1E[2]
! cluster lambda1 vs E
TH2F * fhdEdxvsPCutM02
! Matched track dEdx vs track P, mild M02 cut
TH2F * fhNCellsLam0HighE[2]
! cluster N Cells vs lambda0, E>2
Base class for CaloTrackCorr analysis algorithms.
TObjString * GetAnalysisCuts()
Save parameters used for analysis.
TH2F * fhEOverPvsECutM02CutdEdx
! Matched track E cluster over P track vs cluster E, after dEdx cut and mild M02 cut ...
TH2F * fhSphericityE[2]
! shower sphericity in eta vs phi
Double_t fTimeCutMin
Remove clusters/cells with time smaller than this value, in ns.
int Int_t
Definition: External.C:63
Float_t fEOverPMin
Max E/p for electrons, after dEdx cut.
TH2F * fhMCEOverPvsE[10]
! Matched track E cluster over P track vs cluster E, after dEdx cut, coming from MC particle ...
TH2F * fhEOverPvsPCutM02CutdEdx
! Matched track E cluster over P track vs track P, after dEdx cut and mild M02 cut ...
float Float_t
Definition: External.C:68
Double_t fTimeCutMax
Remove clusters/cells with time larger than this value, in ns.
Int_t fNCellsCut
Accept for the analysis clusters with more than fNCellsCut cells.
TH2F * fhMCdEdxvsP[10]
! Matched track dEdx vs track P, coming from MC particle
TH2F * fhEmbeddedSignalFractionEnergy
! Fraction of electron energy of embedded signal vs cluster energy
void Init()
Init. Check if requested calorimeter is on, if not, abort.
TLorentzVector fMomentum
! cluster momentum
mcTypes
For histograms in arrays, index in the array, corresponding to the originating particle of the cluste...
TH2F * fhSumEtaPhiE[2]
! shower dispersion in eta and phi direction
TList * GetCreateOutputObjects()
TH2F * fhEmbedElectronELambda0MostlySignal
! Lambda0 vs E for embedded electrons with 90%<fraction<50%
Definition: External.C:252
Float_t fdEdxMin
Max dEdx for electrons.
void SwitchOnOnlySimpleSSHistoFill()
Float_t fdEdxMax
Min dEdx for electrons.
void FillAODWithElectrons()
TH2F * fhEtaLam0HighE[2]
! cluster eta vs lambda0, E>2
TH2F * fhdEdxvsE
! Matched track dEdx vs cluster E
void WeightHistograms(AliVCluster *clus)
Calculate weights and fill histograms.
TH2F * fhEtaPhi[2]
! Pseudorapidity vs Phi of identified electron for transerse momentum > 0.5
TH2F * fhEmbedElectronELambda0FullBkg
! Lambda0 vs E for embedded electrons with less than 10% of the cluster energy
Int_t fNOriginHistograms
Fill only NOriginHistograms of the 14 defined types.
TH2F * fhEMaxCellClusterLogRatio
! log (e max cell / e cluster) vs e cluster for selected electrons
TH2F * fhLam0ETRD[2]
! cluster lambda0 vs E, SM covered by TRD
Bool_t fFillWeightHistograms
Fill weigth histograms.
TH2F * fhPhiLam0HighE[2]
! cluster phi vs lambda0, E>2
TH2F * fhEOverPvsECutM02
! Matched track E cluster over P track vs cluster E, after dEdx cut, mild M02 cut ...
Float_t fMinDist2
Cuts on Minimal distance to study acceptance evaluation.
TH2F * fhMCDeltaE[2][10]
! MC-Reco E distribution coming from MC particle
Double_t GetTimeCutMin() const
TH2F * fhMCPhi[2][10]
! Phi of identified electron coming from MC particle
Bool_t fFillOnlySimpleSSHisto
Fill selected cluster histograms, selected SS histograms.
TH2F * fhMCElectronELambda0TwoOverlap
! E vs Lambda0 from MC electrons, 2 particles overlap
TH2F * fhEOverPvsE
! Matched track E cluster over P track vs cluster E, after dEdx cut
TH1F * fhPt[2]
! Number of identified electron vs transerse momentum
TH2F * fhLam0E[2]
! cluster lambda0 vs E
TH2F * fhMCElectronELambda0NoOverlap
! E vs Lambda0 from MC electrons, no overlap
TH2F * fhEtaLam0LowE[2]
! cluster eta vs lambda0, E<2
TH2F * fhDispPhiE[2]
! shower dispersion in phi direction
TH2F * fhMC2E[2][10]
! E distribution, Reco vs MC coming from MC particle
void SwitchOffFillShowerShapeHistograms()
Bool_t ClusterSelected(AliVCluster *cl, Int_t nMaxima)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
TH2F * fhEOverPvsP
! Matched track E cluster over P track vs track P, after dEdx cut
void MakeAnalysisFillAOD()
Do photon analysis selecting electron clusters (or charged non electron) and fill aods...
TH2F * fhEta[2]
! Pseudorapidity of identified electron vs transerse momentum
TH1F * fhE[2]
! Number of identified electron vs energy
Int_t GetNLMCutMin() const
TH2F * fhSumEtaE[2]
! shower dispersion in eta direction
Float_t fMinDist
Minimal distance to bad channel to accept cluster.
const char Option_t
Definition: External.C:48
void SetNCellCut(Int_t n)
Int_t GetNLMCutMax() const
TH2F * fhNCellsE[2]
! Number of cells in cluster vs E
bool Bool_t
Definition: External.C:53
TH2F * fhDispE[2]
! cluster dispersion vs E
Int_t fNLMCutMin
Remove clusters/cells with number of local maxima smaller than this value.
AliAnaElectron & operator=(const AliAnaElectron &el)
Assignment operator not implemented.
TH2F * fhMaxCellDiffClusterE[2]
! Fraction of energy carried by cell with maximum energy
TH2F * fhDispEtaDispPhiEBin[2][5]
! shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
TH2F * fhNCellsLam0LowE[2]
! cluster N cells vs lambda0, E<2
void FillAODWithHadrons()
AliAnaElectron()
Default constructor. Initialize parameters.
void FillNOriginHistograms(Int_t n)
void SetNLMCut(Int_t min, Int_t max)
TH2F * fhEMaxCellClusterRatio
! E max cell / E cluster vs E cluster for selected electrons
void SetdEdxCut(Double_t min, Double_t max)
void MakeAnalysisFillHistograms()
Fill histograms for selected clusters.
void SetTimeCut(Double_t min, Double_t max)
TH2F * fhMCElectronELambda0NOverlap
! E vs Lambda0 from MC electrons, N particles overlap
TVector3 fProdVertex
! mc particle production vertex
virtual ~AliAnaElectron()
Virtual destructor.