-#ifndef ALIANAELECTRON_H
-#define ALIANAELECTRON_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-/* $Id: $ */
-
-//_________________________________________________________________________
-//
-// Class for the electron identification.
-// Clusters from EMCAL matched to tracks are selected
-// and kept in the AOD. Few histograms produced.
-//
-
-//-- Author: J.L. Klay (Cal Poly)
-
-// --- ROOT system ---
-class TH2F ;
-class TString ;
-class TNtuple ;
-class TH3F;
-
-// --- ANALYSIS system ---
-#include "AliAnaPartCorrBaseClass.h"
-
-class AliCaloTrackReader;
-class AliAODTrack;
-class TList ;
-
-class AliAnaElectron : public AliAnaPartCorrBaseClass {
-
-public:
-
- AliAnaElectron() ; // default ctor
- AliAnaElectron(const AliAnaElectron & g) ; // cpy ctor
- AliAnaElectron & operator = (const AliAnaElectron & g) ;//cpy assignment
- virtual ~AliAnaElectron() ; //virtual dtor
-
- TList * GetCreateOutputObjects();
-
- void Init();
-
- void MakeAnalysisFillAOD() ;
-
- void MakeAnalysisFillHistograms() ;
-
- //B-tagging
- Double_t ComputeSignDca(AliAODTrack *track, AliAODTrack *track2 , float cut1);
- Int_t GetBtag(AliAODTrack * tr);
-
- void Print(const Option_t * opt)const;
-
- TString GetCalorimeter() const {return fCalorimeter ; }
- Double_t GetpOverEmin() const {return fpOverEmin ; }
- Double_t GetpOverEmax() const {return fpOverEmax ; }
- Bool_t GetWriteNtuple() const {return fWriteNtuple ; }
-
- void SetCalorimeter(TString det) {fCalorimeter = det ; }
- void SetpOverEmin(Double_t min) {fpOverEmin = min ; }
- void SetpOverEmax(Double_t max) {fpOverEmax = max ; }
- void SetResidualCut(Double_t cut) {fResidualCut = cut ; }
- void SetWriteNtuple(Bool_t val) {fWriteNtuple = val ; }
-
- void InitParameters();
-
- void Terminate(TList * outputList);
- void ReadHistograms(TList * outputList); //Fill histograms with
- //histograms in ouput list,
- //needed in Terminate.
-
- private:
- TString fCalorimeter; //! Which detector? EMCAL or PHOS
- Double_t fpOverEmin; //! Minimum p/E value for Electrons
- Double_t fpOverEmax; //! Maximum p/E value for Electrons
- Double_t fResidualCut; //! Track-cluster matching distance
-
- //B-tagging
- Float_t fDrCut; //max dR
- Float_t fPairDcaCut; //max pair-DCA
- Float_t fDecayLenCut; //max 3d-decaylength
- Float_t fImpactCut; //max track impact param
- Float_t fAssocPtCut; //min associated pt
- Float_t fMassCut; //min Minv cut
- Float_t fSdcaCut; //min signDca
- Int_t fITSCut; //min ITS hits (both)
-
- Bool_t fWriteNtuple; //flag for filling ntuple or not
-
- TNtuple* fEleNtuple; //! testing ntuple
-
- //matching checks
- TH1F *fh1pOverE; //! p/E for track-cluster matches
- TH1F *fh1dR; //! distance between projected track and cluster
- TH2F *fh2EledEdx; //! dE/dx vs. momentum for electron candidates
- TH2F *fh2MatchdEdx; //! dE/dx vs. momentum for all matches
- TH2F *fh2dEtadPhi; //! DeltaEta vs. DeltaPhi of all track/cluster
- //! pairs
- TH2F *fh2dEtadPhiMatched; //! DeltaEta vs. DeltaPhi of matched
- //! track/cluster pairs
- TH2F *fh2dEtadPhiUnmatched; //! DeltaEta vs. DeltaPhi of unmatched track/cluster pairs
-
- TH2F* fh2TrackPVsClusterE; //!track momentum vs. cluster energy
- TH2F* fh2TrackPtVsClusterE; //!track pt vs. cluster energy
- TH2F* fh2TrackPhiVsClusterPhi; //!track phi vs. cluster phi
- TH2F* fh2TrackEtaVsClusterEta; //!track eta vs. cluster eta
-
- //Reconstructed
- TH1F * fhPtElectron; //! Number of identified electron vs transverse momentum
- TH2F * fhPhiElectron; //! Azimuthal angle of identified electron vs transverse momentum
- TH2F * fhEtaElectron; //! Pseudorapidity of identified electron vs tranvserse momentum
-
- TH1F * fhPtConversion; //! Number of conversion electron vs transverse momentum
- TH2F * fhPhiConversion; //! Azimuthal angle of conversion electron vs transverse momentum
- TH2F * fhEtaConversion; //! Pseudorapidity of conversion electron vs tranvserse momentum
-
- TH1F * fhPtBottom; //! Number of bottom electron vs transverse momentum
- TH2F * fhPhiBottom; //! Azimuthal angle of bottom electron vs transverse momentum
- TH2F * fhEtaBottom; //! Pseudorapidity of bottom electron vs tranvserse momentum
-
- TH1F * fhPtCharm; //! Number of charm electron vs transverse momentum
- TH2F * fhPhiCharm; //! Azimuthal angle of charm electron vs transverse momentum
- TH2F * fhEtaCharm; //! Pseudorapidity of charm electron vs tranvserse momentum
-
- TH1F * fhPtCFromB; //! Number of charm from bottom electron vs transverse momentum
- TH2F * fhPhiCFromB; //! Azimuthal angle of charm from bottom electron vs transverse momentum
- TH2F * fhEtaCFromB; //! Pseudorapidity of charm from bottom electron vs tranvserse momentum
-
- TH1F * fhPtDalitz; //! Number of dalitz electron vs transverse momentum
- TH2F * fhPhiDalitz; //! Azimuthal angle of dalitz electron vs transverse momentum
- TH2F * fhEtaDalitz; //! Pseudorapidity of dalitz electron vs tranvserse momentum
-
- TH1F * fhPtWDecay; //! Number of W-boson electron vs transverse momentum
- TH2F * fhPhiWDecay; //! Azimuthal angle of W-boson electron vs transverse momentum
- TH2F * fhEtaWDecay; //! Pseudorapidity of W-boson electron vs tranvserse momentum
-
- TH1F * fhPtZDecay; //! Number of Z-boson electron vs transverse momentum
- TH2F * fhPhiZDecay; //! Azimuthal angle of Z-boson electron vs transverse momentum
- TH2F * fhEtaZDecay; //! Pseudorapidity of Z-boson electron vs tranvserse momentum
-
- TH1F * fhPtPrompt; //! Number of prompt electron vs transverse momentum
- TH2F * fhPhiPrompt; //! Azimuthal angle of prompt electron vs transverse momentum
- TH2F * fhEtaPrompt; //! Pseudorapidity of prompt electron vs tranvserse momentum
-
- TH1F * fhPtUnknown; //! Number of unknown electron vs transverse momentum
- TH2F * fhPhiUnknown; //! Azimuthal angle of unknown electron vs transverse momentum
- TH2F * fhEtaUnknown; //! Pseudorapidity of unknown electron vs tranvserse momentum
-
- //B-tagging
- TH2F * fhBtagCut1; //! B-tagging result for cut1 (minv>1.0)
- TH2F * fhBtagCut2; //! B-tagging result for cut2 (minv>1.5)
- TH2F * fhBtagCut3; //! B-tagging result for cut3 (minv>1.8)
-
- //MC
- TNtuple *fMCEleNtuple; //! Ntuple of MC electrons
-
- ClassDef(AliAnaElectron,2)
-
-} ;
-
-
-#endif//ALIANAELECTRON_H
-
-
-
+#ifndef ALIANAELECTRON_H\r
+#define ALIANAELECTRON_H\r
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
+ * See cxx source for full Copyright notice */\r
+/* $Id: $ */\r
+\r
+//_________________________________________________________________________\r
+//\r
+// Class for the electron identification.\r
+// Clusters from EMCAL matched to tracks are selected \r
+// and kept in the AOD. Few histograms produced.\r
+//\r
+\r
+//-- Author: J.L. Klay (Cal Poly)\r
+\r
+// --- ROOT system ---\r
+class TH2F ;\r
+class TString ;\r
+class TNtuple ;\r
+class TH3F;\r
+class TObjString;\r
+\r
+// --- ANALYSIS system ---\r
+#include "AliAnaPartCorrBaseClass.h"\r
+\r
+class AliAODMCParticle;\r
+class AliCaloTrackReader;\r
+class AliAODTrack;\r
+class TList ;\r
+\r
+class AliAnaElectron : public AliAnaPartCorrBaseClass {\r
+\r
+ public: \r
+ AliAnaElectron() ; // default ctor\r
+ virtual ~AliAnaElectron() ; //virtual dtor\r
+ private:\r
+ AliAnaElectron(const AliAnaElectron & g) ; // cpy ctor\r
+ AliAnaElectron & operator = (const AliAnaElectron & g) ;//cpy assignment\r
+ \r
+ public:\r
+ \r
+ TObjString * GetAnalysisCuts();\r
+ TList * GetCreateOutputObjects();\r
+\r
+ void Init();\r
+\r
+ void MakeAnalysisFillAOD() ;\r
+ \r
+ void MakeAnalysisFillHistograms() ; \r
+ \r
+ //B-tagging\r
+ Int_t GetDVMBtag(AliAODTrack * tr); //returns # tracks from secvtx\r
+\r
+ //Temporary local method to get DCA because AliAODTrack is stupid\r
+ Bool_t GetDCA(const AliAODTrack* tr,Double_t imp[2], Double_t cov[3]);\r
+\r
+ Bool_t PhotonicPrim(const AliAODPWG4Particle* part); //check with track list\r
+ Bool_t PhotonicV0(Int_t trackId); //check with V0 list\r
+\r
+ //check if track has been flagged as a non-photonic or DVM electron\r
+ //used with the jet tracks to tag bjets\r
+ Bool_t CheckTrack(const AliAODTrack* track,const char* type); \r
+ Bool_t IsMcBJet(Double_t x, Double_t y);\r
+ Bool_t IsMcDJet(Double_t x, Double_t y);\r
+\r
+ void Print(const Option_t * opt)const;\r
+ \r
+ TString GetCalorimeter() const {return fCalorimeter ; }\r
+ Double_t GetpOverEmin() const {return fpOverEmin ; }\r
+ Double_t GetpOverEmax() const {return fpOverEmax ; }\r
+ Bool_t GetWriteNtuple() const {return fWriteNtuple ; }\r
+\r
+ Double_t GetDrCut() const { return fDrCut; }\r
+ Double_t GetPairDcaCut() const { return fPairDcaCut; }\r
+ Double_t GetDecayLenCut() const { return fDecayLenCut; }\r
+ Double_t GetImpactCut() const { return fImpactCut; }\r
+ Double_t GetAssocPtCut() const { return fAssocPtCut; }\r
+ Double_t GetMassCut() const { return fMassCut; }\r
+ Double_t GetSdcaCut() const { return fSdcaCut; }\r
+ Int_t GetITSCut() const { return fITSCut; }\r
+ Int_t GetNTagTrackCut() const { return fNTagTrkCut; }\r
+ Double_t GetIPSigCut() const { return fIPSigCut; }\r
+ Double_t GetMinClusEne() const { return fMinClusEne; }\r
+\r
+ void SetCalorimeter(TString det) {fCalorimeter = det ; }\r
+ void SetpOverEmin(Double_t min) {fpOverEmin = min ; }\r
+ void SetpOverEmax(Double_t max) {fpOverEmax = max ; }\r
+ void SetResidualCut(Double_t cut) {fResidualCut = cut ; }\r
+ void SetWriteNtuple(Bool_t val) {fWriteNtuple = val ; }\r
+\r
+ void SetDrCut(Double_t dr) { fDrCut = dr; }\r
+ void SetPairDcaCut(Double_t pdca) { fPairDcaCut = pdca; }\r
+ void SetDecayLenCut(Double_t dlen) { fDecayLenCut = dlen; }\r
+ void SetImpactCut(Double_t imp) { fImpactCut = imp; }\r
+ void SetAssocPtCut(Double_t pt) { fAssocPtCut = pt; }\r
+ void SetMassCut(Double_t mass) { fMassCut = mass; }\r
+ void SetSdcaCut(Double_t sdca) { fSdcaCut = sdca; }\r
+ void SetITSCut(Int_t its) { fITSCut = its; }\r
+ void SetNTagTrackCut(Int_t ntr) { fNTagTrkCut = ntr; }\r
+ void SetIPSigCut(Double_t ips) { fIPSigCut = ips; }\r
+ void SetMinClusEne(Double_t ene) { fMinClusEne = ene; }\r
+\r
+ void InitParameters();\r
+\r
+ void Terminate(TList * outputList);\r
+ void ReadHistograms(TList * outputList); //Fill histograms with\r
+ //histograms in ouput list,\r
+ //needed in Terminate. \r
+ private:\r
+ //For DVM B-tag method\r
+ Double_t ComputeSignDca(AliAODTrack *track, AliAODTrack *track2 , float cut1);\r
+ //the 2 following functions are internal methods of the b-tagging\r
+ //based on transverse impact parameter\r
+ Double_t GetIPSignificance(AliAODTrack *tr, Double_t jetPhi);\r
+ void GetImpactParamVect(Double_t Pxy[2], Double_t t[2], Double_t Vxy[2], Double_t ip[2]);\r
+ //For determining origin of electron\r
+ Int_t GetMCSource(Int_t mctag);\r
+\r
+ //Need a clean way to get the MC info. An AliAODMCParticle object\r
+ //is returned from whichever source we are operating on\r
+ AliAODMCParticle* GetMCParticle(Int_t part);\r
+ //Get MC B Parent pt\r
+ Double_t GetBParentPt(Int_t label);\r
+ //Get Number of particles in AliAODMCParticle array, if it exists\r
+ Int_t GetNumAODMCParticles();\r
+\r
+ private:\r
+ TString fCalorimeter; //! Which detector? EMCAL or PHOS\r
+ Double_t fpOverEmin; //! Minimum p/E value for Electrons\r
+ Double_t fpOverEmax; //! Maximum p/E value for Electrons\r
+ Double_t fResidualCut; //! Track-cluster matching distance\r
+ Double_t fMinClusEne; //! Min clus energy for matching\r
+\r
+ //DVM B-tagging\r
+ Double_t fDrCut; //max dR\r
+ Double_t fPairDcaCut; //max pair-DCA\r
+ Double_t fDecayLenCut; //max 3d-decaylength\r
+ Double_t fImpactCut; //max track impact param\r
+ Double_t fAssocPtCut; //min associated pt\r
+ Double_t fMassCut; //min Minv cut\r
+ Double_t fSdcaCut; //min signDca\r
+ Int_t fITSCut; //min ITS hits (both)\r
+ //IP Sig B-tagging\r
+ Int_t fNTagTrkCut; //min number of tracks required for IP sig tag\r
+ Double_t fIPSigCut; //min IP significance cut\r
+\r
+ Double_t fJetEtaCut; //max eta for jets\r
+ Double_t fJetPhiMin; //min phi for jets\r
+ Double_t fJetPhiMax; //max phi for jets\r
+\r
+ Bool_t fWriteNtuple; //flag for filling ntuple or not\r
+\r
+ ///////////////////////////////////////\r
+ //Output histograms and Ntuples\r
+\r
+ ///////////////////////////////////////\r
+ //RC = RECO only - these histos will be filled using only reco\r
+ //information\r
+\r
+ //event QA\r
+ TH1F * fhImpactXY; //! XY impact parameter of all tracks to primary vertex\r
+ TH1F * fhRefMult; //! refmult (tracks with |eta| < 0.5)\r
+ TH1F * fhRefMult2; //! refmult2 (tracks with |eta| < 0.5 & impXY,impZ < 1.0)\r
+\r
+ //matching checks \r
+ TH3F *fh3pOverE; //! p/E for track-cluster matches vs pt vs mult\r
+ TH3F *fh3EOverp; //! E/p for track-cluster matches vs pt vs mult\r
+ TH3F *fh3pOverE2; //! p/E for track-cluster matches vs pt vs mult\r
+ TH3F *fh3EOverp2; //! E/p for track-cluster matches vs pt vs mult\r
+ TH3F *fh3pOverE3; //! p/E for track-cluster matches vs pt vs mult\r
+ TH3F *fh3EOverp3; //! E/p for track-cluster matches vs pt vs mult\r
+\r
+ //JLK\r
+ TH2F *fh2pOverE; //! p/E for track-cluster matches vs pt vs mult \r
+ TH2F *fh2EOverp; //! E/p for track-cluster matches vs pt vs mult \r
+ TH2F *fh2pOverE2; //! p/E for track-cluster matches vs pt vs mult \r
+ TH2F *fh2EOverp2; //! E/p for track-cluster matches vs pt vs mult \r
+ //JLK\r
+\r
+ TH1F *fh1dR; //! distance between projected track and cluster\r
+ TH2F *fh2EledEdx; //! dE/dx vs. momentum for electron candidates\r
+ TH2F *fh2MatchdEdx; //! dE/dx vs. momentum for all matches\r
+ TH2F *fh2dEtadPhi; //! DeltaEta vs. DeltaPhi of all track/cluster pairs\r
+ TH2F *fh2dEtadPhiMatched; //! DeltaEta vs. DeltaPhi of matched track/cluster pairs\r
+ TH2F *fh2dEtadPhiUnmatched; //! DeltaEta vs. DeltaPhi of unmatched track/cluster pairs\r
+\r
+ TH2F* fh2TrackPVsClusterE; //!track momentum vs. cluster energy\r
+ TH2F* fh2TrackPtVsClusterE; //!track pt vs. cluster energy\r
+ TH2F* fh2TrackPhiVsClusterPhi; //!track phi vs. cluster phi\r
+ TH2F* fh2TrackEtaVsClusterEta; //!track eta vs. cluster eta\r
+\r
+ //Photonic Electron checks\r
+ TH1F* fh1OpeningAngle; //!opening angle between pairs of photon candidates\r
+ TH1F* fh1MinvPhoton; //!invariant mass distribution of electron pairs\r
+\r
+ //Reconstructed electrons\r
+ TH1F * fhPtElectron; //! Number of identified electron vs transverse momentum \r
+ TH2F * fhPhiElectron; //! Azimuthal angle of identified electron vs transverse momentum \r
+ TH2F * fhEtaElectron; //! Pseudorapidity of identified electron vs tranvserse momentum \r
+\r
+ TH1F * fhPtNPE; //! Number of non-photonic electron vs transverse momentum \r
+ TH2F * fhPhiNPE; //! Azimuthal angle of non-photonic electron vs transverse momentum \r
+ TH2F * fhEtaNPE; //! Pseudorapidity of non-photonic electron vs tranvserse momentum \r
+\r
+ TH1F * fhPtPE; //! Number of photonic electron vs transverse momentum \r
+ TH2F * fhPhiPE; //! Azimuthal angle of photonic electron vs transverse momentum \r
+ TH2F * fhEtaPE; //! Pseudorapidity of photonic electron vs tranvserse momentum \r
+\r
+ //These next set do use some MC info. The first bin of the second\r
+ //dimension is filled for both REAL and MC data, other bins filled\r
+ //only if MC\r
+ //Histograms for comparison to tracking detectors\r
+ TH2F* fhPtHadron; //!Pt distribution of reco charged hadrons\r
+ //!(pi,k,p) in EMCAL acceptance\r
+ TH2F* fhPtNPEleTPC; //!Pt distribution of non-photonic reco electrons using\r
+ //!just TPC dEdx info in EMCAL acceptance\r
+ TH2F* fhPtNPEleTPCTRD; //!Pt distribution of non-photonic reco electrons using\r
+ //!pid info from tracking detectors only in EMCAL acceptance\r
+ TH2F* fhPtNPEleTTE; //!Pt distribution of non-photonic reco\r
+ //!electrons using pid info from TPC+TRD+EMCAL\r
+ //!in EMCAL acceptance\r
+ TH2F* fhPtNPEleEMCAL; //!Pt distribution of non-photonic reco\r
+ //!electrons using EMCAL only\r
+ //!in EMCAL acceptance\r
+\r
+ //DVM B-tagging\r
+ TH2F * fhDVMBtagCut1; //! DVM B-tagging result for cut1 (minv>1.0)\r
+ TH2F * fhDVMBtagCut2; //! DVM B-tagging result for cut2 (minv>1.5)\r
+ TH2F * fhDVMBtagCut3; //! DVM B-tagging result for cut3 (minv>1.8)\r
+ TH2F * fhDVMBtagQA1; //! DVM B-tagging : QA of pairDca vs decaylength\r
+ TH2F * fhDVMBtagQA2; //! DVM B-tagging : QA of signDca vs mass\r
+ TH1F * fhDVMBtagQA3; //! DVM B-tagging : QA number of ITS clusters\r
+ TH1F * fhDVMBtagQA4; //! DVM B-tagging : QA prim vtx impXY\r
+ TH1F * fhDVMBtagQA5; //! DVM B-tagging : QA prim vtx impZ\r
+ //IPSig B-tagging\r
+ TH1F * fhIPSigBtagQA1; //! IPSig B-tagging : QA of # tag tracks\r
+ TH1F * fhIPSigBtagQA2; //! IPSig B-tagging : QA of IP sig\r
+ TH1F * fhTagJetPt1x4; //! IPSig B-tagging : result for (1 track, ipSignif>4)\r
+ TH1F * fhTagJetPt2x3; //! IPSig B-tagging : result for (2 track, ipSignif>3)\r
+ TH1F * fhTagJetPt3x2; //! IPSig B-tagging : result for (3 track, ipSignif>2)\r
+ TH1F * fhePlusTagJetPt1x4; //! IPSig B-tagging : eJet + result for (1 track, ipSignif>4)\r
+ TH1F * fhePlusTagJetPt2x3; //! IPSig B-tagging : eJet + result for (2 track, ipSignif>3)\r
+ TH1F * fhePlusTagJetPt3x2; //! IPSig B-tagging : eJet + result for (3 track, ipSignif>2)\r
+\r
+ //B-Jet histograms\r
+ TH2F* fhJetType; //! How many of each tag were found vs jet pt\r
+ TH2F* fhLeadJetType; //! How many leading of each tag were found vs jet pt\r
+ TH2F* fhBJetXsiFF; //! B-tagged jet FF with xsi = log(pt_Jet/pt_Track)\r
+ TH2F* fhBJetPtFF; //! B-tagged jet FF with pt_Track\r
+ TH2F* fhBJetEtaPhi; //! B-tagged jet eta-phi distribution\r
+ TH2F* fhNonBJetXsiFF; //! Non b-tagged jet FF with xsi = log(pt_Jet/pt_Track)\r
+ TH2F* fhNonBJetPtFF; //! Non b-tagged jet FF with pt_Track\r
+ TH2F* fhNonBJetEtaPhi; //! Non b-tagged jet eta-phi distribution\r
+\r
+ ///////////////////////////////////////////////////////////////////\r
+ //MC = From here down, the histograms use MC information, so they will\r
+ //only be filled in simulations\r
+ TNtuple* fEleNtuple; //! testing ntuple\r
+\r
+ TH2F * fhPhiConversion; //! Azimuthal angle of conversion electron vs transverse momentum \r
+ TH2F * fhEtaConversion; //! Pseudorapidity of conversion electron vs tranvserse momentum \r
+\r
+ //Histograms for comparison to tracking detectors\r
+ TH2F* fhPtTrack; //!Pt distribution of reco tracks with MC-ID\r
+\r
+ TH2F* fhPtNPEBHadron; //!correlate our best reconstructed\r
+ //b-electrons with the b-hadron momentum\r
+\r
+ //For computing efficiency of IPSIG tag\r
+ //these require that an MC b-Ancestor is present in the jet\r
+ TH1F * fhBJetPt1x4; //! IPSig B-tagging : result for (1 track, ipSignif>4)\r
+ TH1F * fhBJetPt2x3; //! IPSig B-tagging : result for (2 track, ipSignif>3)\r
+ TH1F * fhBJetPt3x2; //! IPSig B-tagging : result for (3 track, ipSignif>2)\r
+\r
+ TH1F * fhFakeJetPt1x4; //! IPSig B-tagging : fake result for (1 track, ipSignif>4)\r
+ TH1F * fhFakeJetPt2x3; //! IPSig B-tagging : fake result for (2 track, ipSignif>3)\r
+ TH1F * fhFakeJetPt3x2; //! IPSig B-tagging : fake result for (3 track, ipSignif>2)\r
+\r
+ TH2F* fhDVMJet; //! DVM jet algo check\r
+\r
+ ////////////////////////////\r
+ //MC Only Rate histograms\r
+\r
+ TNtuple *fMCEleNtuple; //! Ntuple of MC electrons\r
+\r
+ TH2F* fhMCBJetElePt; //! Pt of B-Jet vs pt of electron\r
+ TH2F* fhMCBHadronElePt; //! Pt of B-hadrons vs pt of electron\r
+ TH1F* fhPtMCHadron; //! Pt distribution of MC charged hadrons (pi,k,p) in EMCAL acceptance\r
+ TH2F* fhPtMCElectron; //! Pt distribution of MC electrons from various sources in EMCAL\r
+ TH2F* fhMCXYConversion; //! XY distribution of conversion electrons\r
+ TH2F* fhMCRadPtConversion; //! Radius vs. pT distribution of conversion electrons\r
+\r
+ ClassDef(AliAnaElectron,12)\r
+\r
+} ;\r
+ \r
+\r
+#endif//ALIANAELECTRON_H\r
+\r
+\r
+\r