00001 #ifndef __PFBlockElementSuperCluster__ 00002 #define __PFBlockElementSuperCluster__ 00003 00004 #include <iostream> 00005 00006 #include "DataFormats/ParticleFlowReco/interface/PFBlockElement.h" 00007 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" 00008 00009 namespace reco { 00010 00014 class PFBlockElementSuperCluster : public PFBlockElement { 00015 public: 00016 PFBlockElementSuperCluster() {} 00017 00021 PFBlockElementSuperCluster(const SuperClusterRef& ref) 00022 : 00023 PFBlockElement(PFBlockElement::SC), 00024 superClusterRef_( ref ), 00025 trackIso_(0.), 00026 ecalIso_(0.), 00027 hcalIso_(0.), 00028 HoE_(0.), 00029 fromGsfElectron_(false), 00030 fromPhoton_(false){} 00031 00032 PFBlockElement* clone() const { return new PFBlockElementSuperCluster(*this); } 00033 00035 SuperClusterRef superClusterRef() const {return superClusterRef_;} 00036 00037 void Dump(std::ostream& out = std::cout, 00038 const char* tab = " " ) const; 00039 00041 void setTrackIso(float val) {trackIso_=val;} 00042 00044 void setEcalIso(float val) {ecalIso_=val;} 00045 00047 void setHcalIso(float val) {hcalIso_=val;} 00048 00050 void setHoE(float val) {HoE_=val;} 00051 00053 void setFromGsfElectron(bool val) {fromGsfElectron_=val;} 00054 00056 void setFromPhoton(bool val) {fromPhoton_=val;} 00057 00059 float trackIso() const {return trackIso_;} 00060 00062 float ecalIso() const {return ecalIso_;} 00063 00065 float hcalIso() const {return hcalIso_;} 00066 00068 float hoverE() const {return HoE_;} 00069 00071 bool fromGsfElectron() const {return fromGsfElectron_;} 00072 00074 bool fromPhoton() const {return fromPhoton_;} 00075 00076 private: 00078 SuperClusterRef superClusterRef_; 00079 00080 float trackIso_; 00081 float ecalIso_; 00082 float hcalIso_; 00083 float HoE_; 00084 00085 bool fromGsfElectron_; 00086 bool fromPhoton_; 00087 }; 00088 } 00089 00090 #endif 00091