]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaElectron.h
Update in AliAnaElectron (Jenn)
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaElectron.h
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:  $ */
6
7 //_________________________________________________________________________
8 //
9 // Class for the electron identification.
10 // Clusters from EMCAL matched to tracks are selected 
11 // and kept in the AOD. Few histograms produced.
12 //
13
14 //-- Author: J.L. Klay (Cal Poly)
15
16 // --- ROOT system ---
17 class TH2F ;
18 class TString ;
19 class TNtuple ;
20 class TH3F;
21
22 // --- ANALYSIS system ---
23 #include "AliAnaPartCorrBaseClass.h"
24
25 class AliCaloTrackReader;
26 class AliAODTrack;
27 class TList ;
28
29 class AliAnaElectron : public AliAnaPartCorrBaseClass {
30
31 public: 
32
33   AliAnaElectron() ; // default ctor
34   AliAnaElectron(const AliAnaElectron & g) ; // cpy ctor
35   AliAnaElectron & operator = (const AliAnaElectron & g) ;//cpy assignment
36   virtual ~AliAnaElectron() ; //virtual dtor
37   
38   TList *  GetCreateOutputObjects();
39
40   void Init();
41
42   void MakeAnalysisFillAOD()  ;
43   
44   void MakeAnalysisFillHistograms() ; 
45   
46   //B-tagging
47   Double_t ComputeSignDca(AliAODTrack *track, AliAODTrack *track2 , float cut1);
48   Int_t GetBtag(AliAODTrack * tr);
49
50   Bool_t IsItPhotonic(const AliAODPWG4Particle* part);
51
52   void Print(const Option_t * opt)const;
53   
54   TString GetCalorimeter()   const {return fCalorimeter ; }
55   Double_t GetpOverEmin()   const {return fpOverEmin ; }
56   Double_t GetpOverEmax()   const {return fpOverEmax ; }
57   Bool_t GetWriteNtuple()   const {return fWriteNtuple ; }
58
59   Double_t GetDrCut() const { return fDrCut; }
60   Double_t GetPairDcaCut() const { return fPairDcaCut; }
61   Double_t GetDecayLenCut() const { return fDecayLenCut; }
62   Double_t GetImpactCut() const { return fImpactCut; }
63   Double_t GetAssocPtCut() const { return fAssocPtCut; }
64   Double_t GetMassCut() const { return fMassCut; }
65   Double_t GetSdcaCut() const { return fSdcaCut; }
66   Int_t   GetITSCut() const { return fITSCut; }
67
68   void SetCalorimeter(TString det)    {fCalorimeter = det ; }
69   void SetpOverEmin(Double_t min)     {fpOverEmin = min ; }
70   void SetpOverEmax(Double_t max)     {fpOverEmax = max ; }
71   void SetResidualCut(Double_t cut)     {fResidualCut = cut ; }
72   void SetWriteNtuple(Bool_t val)     {fWriteNtuple = val ; }
73
74   void SetDrCut(Double_t dr)  { fDrCut = dr; }
75   void SetPairDcaCut(Double_t pdca) { fPairDcaCut = pdca; }
76   void SetDecayLenCut(Double_t dlen) { fDecayLenCut = dlen; }
77   void SetImpactCut(Double_t imp) { fImpactCut = imp; }
78   void SetAssocPtCut(Double_t pt) { fAssocPtCut = pt; }
79   void SetMassCut(Double_t mass) { fMassCut = mass; }
80   void SetSdcaCut(Double_t sdca) { fSdcaCut = sdca; }
81   void SetITSCut(Int_t its) { fITSCut = its; }
82
83   void InitParameters();
84
85   void Terminate(TList * outputList);
86   void ReadHistograms(TList * outputList); //Fill histograms with
87                                            //histograms in ouput list,
88                                            //needed in Terminate.            
89
90   private:
91   TString  fCalorimeter;  //! Which detector? EMCAL or PHOS
92   Double_t fpOverEmin;    //! Minimum p/E value for Electrons
93   Double_t fpOverEmax;    //! Maximum p/E value for Electrons
94   Double_t fResidualCut;  //! Track-cluster matching distance
95
96   //B-tagging
97   Double_t fDrCut;       //max dR
98   Double_t fPairDcaCut;  //max pair-DCA
99   Double_t fDecayLenCut; //max 3d-decaylength
100   Double_t fImpactCut;   //max track impact param
101   Double_t fAssocPtCut;  //min associated pt
102   Double_t fMassCut;     //min Minv cut
103   Double_t fSdcaCut;     //min signDca
104   Int_t   fITSCut;       //min ITS hits (both)
105
106   Bool_t  fWriteNtuple; //flag for filling ntuple or not
107
108   TNtuple* fEleNtuple; //! testing ntuple
109
110   //matching checks   
111   TH1F *fh1pOverE;     //! p/E for track-cluster matches
112   TH1F *fh1dR;         //! distance between projected track and cluster
113   TH2F *fh2EledEdx;    //! dE/dx vs. momentum for electron candidates
114   TH2F *fh2MatchdEdx;  //! dE/dx vs. momentum for all matches
115   TH2F *fh2dEtadPhi;   //! DeltaEta vs. DeltaPhi of all track/cluster
116                        //! pairs
117   TH2F *fh2dEtadPhiMatched;   //! DeltaEta vs. DeltaPhi of matched
118                                 //! track/cluster pairs
119   TH2F *fh2dEtadPhiUnmatched;   //! DeltaEta vs. DeltaPhi of unmatched track/cluster pairs
120
121   TH2F* fh2TrackPVsClusterE;     //!track momentum vs. cluster energy
122   TH2F* fh2TrackPtVsClusterE;    //!track pt vs. cluster energy
123   TH2F* fh2TrackPhiVsClusterPhi; //!track phi vs. cluster phi
124   TH2F* fh2TrackEtaVsClusterEta; //!track eta vs. cluster eta
125
126   //Photonic Electron checks
127   TH1F* fh1OpeningAngle; //!opening angle between pairs of photon candidates
128   TH1F* fh1MinvPhoton;   //!invariant mass distribution of electron pairs
129
130   //Reconstructed
131   TH1F * fhPtElectron;  //! Number of identified electron vs transverse momentum 
132   TH2F * fhPhiElectron; //! Azimuthal angle of identified  electron vs transverse momentum 
133   TH2F * fhEtaElectron; //! Pseudorapidity of identified  electron vs tranvserse momentum 
134
135   TH1F * fhPtNPE;  //! Number of non-photonic electron vs transverse momentum 
136   TH2F * fhPhiNPE; //! Azimuthal angle of non-photonic electron vs transverse momentum 
137   TH2F * fhEtaNPE; //! Pseudorapidity of non-photonic electron vs tranvserse momentum 
138
139   TH1F * fhPtPE;  //! Number of photonic electron vs transverse momentum 
140   TH2F * fhPhiPE; //! Azimuthal angle of photonic electron vs transverse momentum 
141   TH2F * fhEtaPE; //! Pseudorapidity of photonic electron vs tranvserse momentum 
142
143   TH1F * fhPtConversion;  //! Number of conversion electron vs transverse momentum 
144   TH2F * fhPhiConversion; //! Azimuthal angle of conversion  electron vs transverse momentum 
145   TH2F * fhEtaConversion; //! Pseudorapidity of conversion electron vs tranvserse momentum 
146
147   TH1F * fhPtBottom;  //! Number of bottom electron vs transverse momentum 
148   TH2F * fhPhiBottom; //! Azimuthal angle of bottom  electron vs transverse momentum 
149   TH2F * fhEtaBottom; //! Pseudorapidity of bottom electron vs tranvserse momentum 
150
151   TH1F * fhPtCharm;  //! Number of charm electron vs transverse momentum 
152   TH2F * fhPhiCharm; //! Azimuthal angle of charm  electron vs transverse momentum 
153   TH2F * fhEtaCharm; //! Pseudorapidity of charm electron vs tranvserse momentum 
154
155   TH1F * fhPtCFromB;  //! Number of charm from bottom electron vs transverse momentum 
156   TH2F * fhPhiCFromB; //! Azimuthal angle of charm from bottom electron vs transverse momentum 
157   TH2F * fhEtaCFromB; //! Pseudorapidity of charm from bottom electron vs tranvserse momentum 
158
159   TH1F * fhPtDalitz;  //! Number of dalitz electron vs transverse momentum 
160   TH2F * fhPhiDalitz; //! Azimuthal angle of dalitz  electron vs transverse momentum 
161   TH2F * fhEtaDalitz; //! Pseudorapidity of dalitz electron vs tranvserse momentum 
162
163   TH1F * fhPtWDecay;  //! Number of W-boson electron vs transverse momentum 
164   TH2F * fhPhiWDecay; //! Azimuthal angle of W-boson  electron vs transverse momentum 
165   TH2F * fhEtaWDecay; //! Pseudorapidity of W-boson electron vs tranvserse momentum 
166                 
167   TH1F * fhPtZDecay;  //! Number of Z-boson electron vs transverse momentum 
168   TH2F * fhPhiZDecay; //! Azimuthal angle of Z-boson  electron vs transverse momentum 
169   TH2F * fhEtaZDecay; //! Pseudorapidity of Z-boson electron vs tranvserse momentum 
170
171   TH1F * fhPtPrompt;  //! Number of prompt electron vs transverse momentum 
172   TH2F * fhPhiPrompt; //! Azimuthal angle of prompt  electron vs transverse momentum 
173   TH2F * fhEtaPrompt; //! Pseudorapidity of prompt electron vs tranvserse momentum 
174
175   TH1F * fhPtUnknown;  //! Number of unknown electron vs transverse momentum 
176   TH2F * fhPhiUnknown; //! Azimuthal angle of unknown  electron vs transverse momentum 
177   TH2F * fhEtaUnknown; //! Pseudorapidity of unknown electron vs tranvserse momentum 
178
179   //B-tagging
180   TH2F * fhBtagCut1; //! B-tagging result for cut1 (minv>1.0)
181   TH2F * fhBtagCut2; //! B-tagging result for cut2 (minv>1.5)
182   TH2F * fhBtagCut3; //! B-tagging result for cut3 (minv>1.8)
183
184   //MC
185   TNtuple *fMCEleNtuple; //! Ntuple of MC electrons
186
187   ClassDef(AliAnaElectron,3)
188
189 } ;
190  
191
192 #endif//ALIANAELECTRON_H
193
194
195