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 */
7 //_________________________________________________________________________
9 // Class for the electron identification.
10 // Clusters from EMCAL matched to tracks are selected
11 // and kept in the AOD. Few histograms produced.
14 //-- Author: J.L. Klay (Cal Poly)
16 // --- ROOT system ---
22 // --- ANALYSIS system ---
23 #include "AliAnaPartCorrBaseClass.h"
25 class AliCaloTrackReader;
29 class AliAnaElectron : public AliAnaPartCorrBaseClass {
33 AliAnaElectron() ; // default ctor
34 AliAnaElectron(const AliAnaElectron & g) ; // cpy ctor
35 AliAnaElectron & operator = (const AliAnaElectron & g) ;//cpy assignment
36 virtual ~AliAnaElectron() ; //virtual dtor
38 TList * GetCreateOutputObjects();
42 void MakeAnalysisFillAOD() ;
44 void MakeAnalysisFillHistograms() ;
47 Double_t ComputeSignDca(AliAODTrack *track, AliAODTrack *track2 , float cut1);
48 Int_t GetBtag(AliAODTrack * tr);
50 Bool_t IsItPhotonic(const AliAODPWG4Particle* part);
52 void Print(const Option_t * opt)const;
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 ; }
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; }
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 ; }
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; }
83 void InitParameters();
85 void Terminate(TList * outputList);
86 void ReadHistograms(TList * outputList); //Fill histograms with
87 //histograms in ouput list,
88 //needed in Terminate.
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
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)
106 Bool_t fWriteNtuple; //flag for filling ntuple or not
108 TNtuple* fEleNtuple; //! testing ntuple
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
117 TH2F *fh2dEtadPhiMatched; //! DeltaEta vs. DeltaPhi of matched
118 //! track/cluster pairs
119 TH2F *fh2dEtadPhiUnmatched; //! DeltaEta vs. DeltaPhi of unmatched track/cluster pairs
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
126 //Photonic Electron checks
127 TH1F* fh1OpeningAngle; //!opening angle between pairs of photon candidates
128 TH1F* fh1MinvPhoton; //!invariant mass distribution of electron pairs
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
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
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
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
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
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
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
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
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
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
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
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
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)
185 TNtuple *fMCEleNtuple; //! Ntuple of MC electrons
187 ClassDef(AliAnaElectron,3)
192 #endif//ALIANAELECTRON_H