]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/PartCorrDep/AliAnaElectron.h
change summary plots name accoring to convention proposed by Anton (Markus F)
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaElectron.h
index 06e125f41821bdd98b0895a741e5ba44eadc649b..f630556ecce629843dd7ca662f8de61389af451f 100755 (executable)
-#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);
-
-  Bool_t IsItPhotonic(AliAODPWG4Particle* const part);
-
-  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
-
-  //Photonic Electron checks
-  TH1F* fh1OpeningAngle; //!opening angle between pairs of photon candidates
-  TH1F* fh1MinvPhoton;   //!invariant mass distribution of electron pairs
-
-  //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 * fhPtNPE;  //! Number of non-photonic electron vs transverse momentum 
-  TH2F * fhPhiNPE; //! Azimuthal angle of non-photonic electron vs transverse momentum 
-  TH2F * fhEtaNPE; //! Pseudorapidity of non-photonic electron vs tranvserse momentum 
-
-  TH1F * fhPtPE;  //! Number of photonic electron vs transverse momentum 
-  TH2F * fhPhiPE; //! Azimuthal angle of photonic electron vs transverse momentum 
-  TH2F * fhEtaPE; //! Pseudorapidity of photonic 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,3)
-
-} ;
-
-#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