CMS 3D CMS Logo

PhotonID.h

Go to the documentation of this file.
00001 #ifndef PhotonID_h
00002 #define PhotonID_h
00003 #include "DataFormats/EgammaCandidates/interface/PhotonIDFwd.h"
00004 namespace reco {
00005 
00006 class PhotonID
00007 {
00008  public:
00009 
00010   PhotonID(); //Default constructor.  It avails ye naught.
00011 
00012   //Real constructor
00013   PhotonID(bool LooseEM, bool LoosePho, bool TightPho, 
00014            float TrkCone4, float HollowCone, int nTrkCone, int nHollow,
00015            float EcalRecHitIso, float HcalRecHitIso, float r9,
00016            bool EBPho, bool EEPho, bool EBGap, bool EEGap, bool EBEEGap,
00017            bool isAlsoElectron);
00018   
00019 
00020   //getters:
00021   
00022   //Returns decision based on the cuts in the configuration file in 
00023   //RecoEgamma/PhotonIdentification
00024   bool isLooseEM() const{return isLooseEM_;}
00025   bool isLoosePhoton() const{return isLoosePhoton_;}
00026   bool isTightPhoton() const{return isTightPhoton_;}
00027 
00028   //Returns computed EcalRecHit isolation
00029   float isolationEcalRecHit() const{return isolationEcalRecHit_;}
00030   //Returns computed HcalRecHit isolation
00031   float isolationHcalRecHit() const{return isolationHcalRecHit_;}
00032   //Returns calculated sum track pT cone of dR
00033   float isolationSolidTrkCone() const{return isolationSolidTrkCone_;}
00034   //As above, excluding the core at the center of the cone
00035   float isolationHollowTrkCone() const{return isolationHollowTrkCone_;}
00036   //Returns number of tracks in a cone of dR
00037   int nTrkSolidCone() const{return nTrkSolidCone_;}
00038   //As above, excluding the core at the center of the cone
00039   int nTrkHollowCone() const{return nTrkHollowTrkCone_;}
00040   //return r9 = e3x3/etotal
00041   float r9() const{return r9_;}
00042   //if photon is in ECAL barrel
00043   bool isEBPho() const{return isEBPho_;}
00044   //if photon is in ECAL endcap
00045   bool isEEPho() const{return isEEPho_;}
00046   //if photon is in EB, and inside the boundaries in super crystals/modules
00047   bool isEBGap() const{return isEBGap_;}
00048   //if photon is in EE, and inside the boundaries in supercrystal/D
00049   bool isEEGap() const{return isEEGap_;}
00050   //if photon is in boundary between EB and EE
00051   bool isEBEEGap() const{return isEBEEGap_;}
00052   //if this is also a GsfElectron
00053   bool isAlsoElectron() const{return isAlsoElectron_;}
00054 
00055   //setters:
00056   void setFiducialFlags(bool EBPho, bool EEPho, bool EBGap, bool EEGap, bool EBEEGap);
00057   void setDecision(bool decisionLooseEM, bool decisionLoosePho, bool decisionTightPho);
00058 
00059  private:
00060 
00061   //Did this pass the cuts in the configuration?
00062   bool isLooseEM_;
00063   bool isLoosePhoton_;
00064   bool isTightPhoton_;
00065 
00066   //These are analysis quantities calculated in the PhotonIDAlgo class
00067   //EcalRecHit isolation
00068   float isolationEcalRecHit_;
00069   //HcalRecHit isolation
00070   float isolationHcalRecHit_;
00071   //Sum of track pT in a cone of dR
00072   float isolationSolidTrkCone_;
00073   //Sum of track pT in a hollow cone of outer radius, inner radius
00074   float isolationHollowTrkCone_;
00075   //Number of tracks in a cone of dR
00076   int nTrkSolidCone_;
00077   //Number of tracks in a hollow cone of outer radius, inner radius
00078   int nTrkHollowTrkCone_;
00079   //r9 variable
00080   float r9_;
00081   //Fiducial flags
00082   bool isEBPho_;//Photon is in EB
00083   bool isEEPho_;//Photon is in EE
00084   bool isEBGap_;//Photon is in supermodule/supercrystal gap in EB
00085   bool isEEGap_;//Photon is in crystal gap in EE
00086   bool isEBEEGap_;//Photon is in border between EB and EE.
00087 
00088   //Electron identity?
00089   bool isAlsoElectron_;
00090 };
00091 
00092 }
00093 
00094 #endif

Generated on Tue Jun 9 17:30:43 2009 for CMSSW by  doxygen 1.5.4