00001 // 00002 // $Id: Photon.cc,v 1.15 2008/07/08 20:56:48 gpetrucc Exp $ 00003 // 00004 00005 #include "DataFormats/PatCandidates/interface/Photon.h" 00006 00007 00008 using pat::Photon; 00009 00010 00012 Photon::Photon() : 00013 PATObject<PhotonType>(PhotonType()), 00014 embeddedSuperCluster_(false) 00015 { 00016 } 00017 00018 00020 Photon::Photon(const PhotonType & aPhoton) : 00021 PATObject<PhotonType>(aPhoton), 00022 embeddedSuperCluster_(false) 00023 { 00024 } 00025 00027 Photon::Photon(const edm::RefToBase<PhotonType> & aPhotonRef) : 00028 PATObject<PhotonType>(aPhotonRef), 00029 embeddedSuperCluster_(false) 00030 { 00031 } 00032 00034 Photon::Photon(const edm::Ptr<PhotonType> & aPhotonRef) : 00035 PATObject<PhotonType>(aPhotonRef), 00036 embeddedSuperCluster_(false) 00037 { 00038 } 00039 00041 Photon::~Photon() { 00042 } 00043 00044 00047 reco::SuperClusterRef Photon::superCluster() const { 00048 if (embeddedSuperCluster_) { 00049 return reco::SuperClusterRef(&superCluster_, 0); 00050 } else { 00051 return PhotonType::superCluster(); 00052 } 00053 } 00054 00056 void Photon::embedSuperCluster() { 00057 superCluster_.clear(); 00058 if (PhotonType::superCluster().isNonnull()) { 00059 superCluster_.push_back(*PhotonType::superCluster()); 00060 embeddedSuperCluster_ = true; 00061 } 00062 } 00063