AliPhysics  9b6b435 (9b6b435)
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 //_________________________________________________________________________
21 //_________________________________________________________________________
22 
23 // --- ROOT system ---
24 class TH2F ;
25 class TH1F;
26 class TH3D;
27 class TObjString;
28 
29 // --- ANALYSIS system ---
31 
32 class TList ;
33 
35 
36  public:
37 
38  AliAnaElectron() ;
39 
41  virtual ~AliAnaElectron() { ; }
42 
43  //---------------------------------------
44  // General analysis frame methods
45  //---------------------------------------
46 
47  TObjString * GetAnalysisCuts();
48 
50 
51  void Init();
52 
53  void InitParameters();
54 
55  void MakeAnalysisFillAOD() ;
56 
58 
59  void Print(const Option_t * opt)const;
60 
61 
62  // Analysis methods
63 
64  Bool_t ClusterSelected(AliVCluster* cl, Int_t nMaxima) ;
65 
66  void FillShowerShapeHistograms( AliVCluster* cluster, Int_t mcTag , Int_t pidTag) ;
67 
70 
71  void WeightHistograms(AliVCluster *clus);
72 
75 
76  //---------------------------------------
77  // Analysis parameters setters getters
78  //---------------------------------------
79 
80  // ** Cluster selection methods **
81 
82  void SetdEdxCut(Float_t min, Float_t max) { fdEdxMin = min ;
83  fdEdxMax = max ; }
84 
85  void SetEOverP(Float_t min, Float_t max) { fEOverPMin = min ;
86  fEOverPMax = max ; }
87 
88  void SetNSigma(Float_t min, Float_t max) { fNSigmaMin = min ;
89  fNSigmaMax = max ; }
90 
91  void SetdEdxCutForHadron(Float_t min, Float_t max) { fdEdxMinHad = min ;
92  fdEdxMaxHad = max ; }
93 
94  void SetEOverPForHadron(Float_t min, Float_t max) { fEOverPMinHad = min ;
95  fEOverPMaxHad = max ; }
96 
97  void SetNSigmaForHadron(Float_t min, Float_t max) { fNSigmaMinHad = min ;
98  fNSigmaMaxHad = max ; }
99 
100  void SetM20Range(Float_t min, Float_t max) { fM20Min = min ;
101  fM20Max = max ; }
102 
103  void SetM02Range(Float_t min, Float_t max) { fM02Min = min ;
104  fM02Max = max ; }
105 
107 
108  void SetTimeCut(Double_t min, Double_t max) { fTimeCutMin = min;
109  fTimeCutMax = max ; }
110  Double_t GetTimeCutMin() const { return fTimeCutMin ; }
111  Double_t GetTimeCutMax() const { return fTimeCutMax ; }
112 
113  void SetNCellCut(Int_t n) { fNCellsCut = n ; }
114  Int_t GetNCellCut() const { return fNCellsCut ; }
115 
116  void SetNLMCut(Int_t min, Int_t max) { fNLMCutMin = min;
117  fNLMCutMax = max ; }
118  Int_t GetNLMCutMin() const { return fNLMCutMin ; }
119  Int_t GetNLMCutMax() const { return fNLMCutMax ; }
120 
122  if(n > 10) fNOriginHistograms = 10; }
123 
124 
127  void FillAODWithAny() { fAODParticle = 0 ; }
128 
131 
134  kmcPi0 = 3, kmcEta = 4, kmcElectron = 5,
137 
140  enum mcssTypes { kmcssPhoton = 0, kmcssOther = 1, kmcssPi0 = 2,
142 
143  private:
144 
145  // Basic cuts
152 
153  // Activate certain analysis/histograms
158 
159  // Electron cuts
166 
171 
172  // Hadron cuts
179 
181 
182  TLorentzVector fMomentum;
183  TLorentzVector fMomentumMC;
184  TVector3 fProdVertex;
185 
186  //Histograms
201 
220 
235 
244 
246  TH2F * fhNLME[2];
248  TH2F * fhTimeE[2];
249 
250  TH1F * fhE[2] ;
251  TH1F * fhPt[2] ;
252  TH2F * fhPhi[2] ;
253  TH2F * fhEta[2] ;
254  TH2F * fhEtaPhi[2] ;
255  TH2F * fhEtaPhi05[2] ;
256 
257  // Shower shape
258 
259  TH2F * fhDispE[2];
260  TH2F * fhLam0E[2];
261  TH2F * fhLam1E[2];
262 
266 
269 
274 
275  TH2F * fhDispEtaE[2] ;
276  TH2F * fhDispPhiE[2] ;
277  TH2F * fhSumEtaE[2] ;
278  TH2F * fhSumPhiE[2] ;
283 
284  // Weight studies
285 
291 //TH2F * fhLambda1ForW0[14]; //!<! L1 for 7 defined w0= 3, 3.5 ... 6 for selected electrons
292 
293  // Fill MC dependent histograms, Origin of this cluster is ...
294 
295  TH2F * fhMCDeltaE[2][10] ;
296  TH2F * fhMC2E[2][10] ;
297 
298  TH1F * fhMCE[2][10];
299  TH1F * fhMCPt[2][10];
300  TH2F * fhMCPhi[2][10];
301  TH2F * fhMCEta[2][10];
302 
303  // Shower Shape MC
304 
305  TH2F * fhMCELambda0[2][6] ;
306  TH2F * fhMCELambda1[2][6] ;
307 
308  TH2F * fhMCEDispEta[2][6] ;
309  TH2F * fhMCEDispPhi[2][6] ;
310  TH2F * fhMCESumEtaPhi[2][6] ;
313 
317 
318  //Embedding
320 
325 
326  // Track matching residuals
327  TH2F * fhDEtavsE [3][2];
328  TH2F * fhDPhivsE [3][2];
329  TH2F * fhDEtavsP [3][2];
330  TH2F * fhDPhivsP [3][2];
331  TH2F * fhDEtaDPhi[3][2];
332 
334  AliAnaElectron( const AliAnaElectron & el) ;
335 
338 
340  ClassDef(AliAnaElectron,9) ;
342 
343 } ;
344 
345 
346 #endif//ALIANAELECTRON_H
347 
348 
349 
TH2F * fhDispEtaPhiDiffE[2]
! shower dispersion eta - phi
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.
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 * fhMCELambda1[2][6]
! E vs shower shape short axis from MC particle
TH2F * fhLambda0ForW0[14]
! L0 for 7 defined w0= 3, 3.5 ... 6 for selected electrons
TH2F * fhEOverPvsECutM02AndM20CutdEdx
! Matched track E cluster over P track vs cluster E, after dEdx cut M02 and M20 cut ...
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 * fhdEdxvsECutNSigma
! Matched track dEdx vs cluster E, cut on TPC nSigma
TH2F * fhEmbedElectronELambda0MostlyBkg
! Lambda0 vs E for embedded electrons with 50%<fraction<10%
TH2F * fhEOverPvsECutNSigma
! Matched track E cluster over P track vs cluster E, after TPC nSigma cut
TH2F * fhdEdxvsECutM02CutNSigma
! Matched track dEdx vs cluster E, M02 cut, cut on TPC nSigma
void SwitchOffOnlySimpleHistoFill()
void SwitchOnFillShowerShapeHistograms()
TH2F * fhMCEDispEtaPhiDiff[2][6]
! shower dispersion in eta -phi direction from MC particle
void SetMinDistanceToBadChannel(Float_t m)
Int_t fNLMCutMax
Remove clusters/cells with number of local maxima larger.
TH2F * fhDEtavsE[3][2]
! Track-cluster Matching eta residual vs cluster E
TH2F * fhMCEOverPvsEAfterCuts[10][2]
! Matched track E cluster over P track vs cluster E, after cuts, coming from MC particle ...
void SetEOverPForHadron(Float_t min, Float_t max)
void SetM20Range(Float_t min, Float_t max)
TH2F * fhdEdxvsECutM02
! Matched track dEdx vs cluster E, M02 cut
TH2F * fhEOverPvsPCutM02
! Matched track E cluster over P track vs track P, after dEdx cut, M02 cut
TH2F * fhEOverPvsPCutM02AndM20
! Matched track E cluster over P track vs track P, after dEdx cut, M02 and M20 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
TH2F * fhdEdxvsPCutEOverP
! Matched track dEdx vs track P, cut on E/P
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, 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
Float_t fM02Max
Min long axis for electrons.
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 E/P
Float_t fM20Min
Max short axis for electrons.
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 shower shape long axis from MC particle
TH2F * fhdEdxvsECutM02AndM20
! Matched track dEdx vs cluster E, M02 and M20 cut
TH2F * fhECellClusterLogRatio
! log (E cell / E cluster) vs E cluster for selected electrons
TH2F * fhdEdxvsPCutM02AndM20CutNSigma
! Matched track dEdx vs track P, M02 and M20 cut, cut on TPC nSigma
TH2F * fhNSigmavsE
! Matched track TPC nSigma vs cluster E
TH2F * fhLam1E[2]
! cluster lambda1 vs E
void SetEOverP(Float_t min, Float_t max)
TH2F * fhdEdxvsPCutM02
! Matched track dEdx vs track P, M02 cut
TH2F * fhEOverPvsPCutdEdx
! Matched track E cluster over P track vs track P, after dEdx cut
TH2F * fhNCellsLam0HighE[2]
! cluster N Cells vs lambda0, E>2
TH2F * fhNSigmavsPCutM02
! Matched track TPC nSigma vs track P, after dEdx cut, M02 cut
Float_t fdEdxMinHad
Max dEdx for hadrons.
TH2F * fhNSigmavsECutM02
! Matched track TPC nSigma vs cluster E, after dEdx cut, M02 cut
Base class for CaloTrackCorr analysis algorithms.
TObjString * GetAnalysisCuts()
Save parameters used for analysis.
Float_t fNSigmaMinHad
Max nSigma for hadrons.
TH2F * fhNSigmavsECutM02CutdEdx
! Matched track TPC nSigma vs cluster E, after dEdx cut M02 cut
TH2F * fhEOverPvsECutM02CutdEdx
! Matched track E cluster over P track vs cluster E, after dEdx cut 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.
TH2F * fhEOverPvsECutdEdx
! Matched track E cluster over P track vs cluster E, after dEdx cut
int Int_t
Definition: External.C:63
Float_t fEOverPMin
Max E/p for electrons.
TH2F * fhMCEOverPvsE[10]
! Matched track E cluster over P track vs cluster E, coming from MC particle
TH2F * fhEOverPvsPCutM02CutdEdx
! Matched track E cluster over P track vs track P, after dEdx cut M02 cut
TH2F * fhEOverPvsPCutM02AndM20CutNSigma
! Matched track E cluster over P track vs track P, after dEdx cut, M02 and M20 cut, after TPC nSigma 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 * fhNSigmavsECutEOverP
! Matched track TPC nSigma vs cluster E, after E/P cut
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()
Int_t GetNCellCut() const
TH2F * fhDEtaDPhi[3][2]
! Track-cluster Matching eta vs phi residual
TH2F * fhEmbedElectronELambda0MostlySignal
! Lambda0 vs E for embedded electrons with 90%<fraction<50%
Definition: External.C:252
TH2F * fhMCEOverPvsPAfterCuts[10][2]
! Matched track E cluster over P track vs track P, after cuts, coming from MC particle ...
Float_t fdEdxMin
Max dEdx for electrons.
void SwitchOnOnlySimpleSSHistoFill()
TH2F * fhNSigmavsPCutM02AndM20CutdEdx
! Matched track TPC nSigma vs track P, after dEdx cut M02 and M20 cut
TH2F * fhNSigmavsPCutEOverP
! Matched track TPC nSigma vs track P, after E/P cut
TH2F * fhMCNSigmavsE[10]
! Matched track TPC nSigma vs cluster E, after dEdx cut, coming from MC particle
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
Float_t fEOverPMinHad
Max E/p for hadrons.
TH2F * fhNSigmavsECutdEdx
! Matched track TPC nSigma vs cluster E, after dEdx cut
void WeightHistograms(AliVCluster *clus)
Calculate weights and fill histograms.
TH2F * fhEtaPhi[2]
! Pseudorapidity vs Phi of identified electron for transerse momentum > 0.5
TH2F * fhEOverPvsPCutNSigma
! Matched track E cluster over P track vs track P, after TPC nSigma cut
TH2F * fhEmbedElectronELambda0FullBkg
! Lambda0 vs E for embedded electrons with less than 10% of the cluster energy
void SetNSigmaForHadron(Float_t min, Float_t max)
Int_t fNOriginHistograms
Fill only NOriginHistograms of the 14 defined types.
Float_t fNSigmaMaxHad
Min nSigma for hadrons.
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 * fhEOverPvsECutM02AndM20CutNSigma
! Matched track E cluster over P track vs cluster E, after dEdx cut, M02 and M20 cut, after TPC nSigma cut
TH2F * fhPhiLam0HighE[2]
! cluster phi vs lambda0, E>2
TH2F * fhEOverPvsECutM02
! Matched track E cluster over P track vs cluster E, after dEdx cut, M02 cut
void SetdEdxCut(Float_t min, Float_t max)
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
TH2F * fhDPhivsP[3][2]
! Track-cluster Matching phi residual vs track P
Bool_t fFillOnlySimpleSSHisto
Fill selected cluster histograms, selected SS histograms.
TH2F * fhMCElectronELambda0TwoOverlap
! E vs Lambda0 from MC electrons, 2 particles overlap
Float_t fM20Max
Min short axis for electrons.
TH2F * fhNSigmavsECutM02AndM20
! Matched track TPC nSigma vs cluster E, after dEdx cut, M02 and M20 cut
TH2F * fhEOverPvsPCutM02CutNSigma
! Matched track E cluster over P track vs track P, after dEdx cut, M02 cut, after TPC nSigma cut ...
TH2F * fhEOverPvsE
! Matched track E cluster over P track vs cluster E
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
TH2F * fhdEdxvsPCutM02AndM20
! Matched track dEdx vs track P, M02 and M20 cut
TH2F * fhEOverPvsECutM02AndM20
! Matched track E cluster over P track vs cluster E, after dEdx cut, M02 and M20 cut ...
void SwitchOffFillShowerShapeHistograms()
Bool_t ClusterSelected(AliVCluster *cl, Int_t nMaxima)
TH2F * fhdEdxvsECutM02AndM20CutNSigma
! Matched track dEdx vs cluster E, M02 and M20 cut, cut on TPC nSigma
TH2F * fhDPhivsE[3][2]
! Track-cluster Matching phi residual vs cluster E
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
void SetNSigma(Float_t min, Float_t max)
TH2F * fhEOverPvsP
! Matched track E cluster over P track vs track P
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 * fhDEtavsP[3][2]
! Track-cluster Matching eta residual vs track P
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
TH2F * fhNSigmavsP
! Matched track TPC nSigma vs track P
Float_t fNSigmaMin
Max nSigma for electrons.
void SetNCellCut(Int_t n)
Float_t fNSigmaMax
Min nSigma for electrons.
Int_t GetNLMCutMax() const
TH2F * fhNCellsE[2]
! Number of cells in cluster vs E
Float_t fdEdxMaxHad
Min dEdx for hadrons.
TH2F * fhEOverPvsPCutM02AndM20CutdEdx
! Matched track E cluster over P track vs track P, after dEdx cut M02 and M20 cut ...
bool Bool_t
Definition: External.C:53
TH2F * fhNSigmavsPCutdEdx
! Matched track TPC nSigma vs track P, after dEdx cut
TH2F * fhDispE[2]
! cluster dispersion vs E
Float_t fEOverPMaxHad
Min E/p for hadrons.
Int_t fNLMCutMin
Remove clusters/cells with number of local maxima smaller.
TH2F * fhEOverPvsECutM02CutNSigma
! Matched track E cluster over P track vs cluster E, after dEdx cut, M02 cut, after TPC nSigma cut ...
AliAnaElectron & operator=(const AliAnaElectron &el)
Assignment operator not implemented.
TH2F * fhMCNSigmavsP[10]
! Matched track TPC nSigma vs track P, after dEdx cut, coming from MC particle
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()
TH2F * fhNSigmavsPCutM02AndM20
! Matched track TPC nSigma vs track P, after dEdx cut, mild M02 and M20 cut
void SetdEdxCutForHadron(Float_t min, Float_t max)
AliAnaElectron()
Default constructor. Initialize parameters.
TH2F * fhdEdxvsPCutNSigma
! Matched track dEdx vs track P, cut on TPC nSigma
void FillNOriginHistograms(Int_t n)
TH2F * fhNSigmavsECutM02AndM20CutdEdx
! Matched track TPC nSigma vs cluster E, after dEdx cut M02 and M20 cut
void SetM02Range(Float_t min, Float_t max)
void SetNLMCut(Int_t min, Int_t max)
TH2F * fhNSigmavsPCutM02CutdEdx
! Matched track TPC nSigma vs track P, after dEdx cut M02 cut
TH2F * fhEMaxCellClusterRatio
! E max cell / E cluster vs E cluster for selected electrons
TH2F * fhdEdxvsPCutM02CutNSigma
! Matched track dEdx vs track P, M02 cut, cut on TPC nSigma
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
Float_t fM02Min
Max long axis for electrons.
virtual ~AliAnaElectron()
Virtual destructor.