00001 #ifndef RecoCandidate_CaloRecHitCandidate_h 00002 #define RecoCandidate_CaloRecHitCandidate_h 00003 00012 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" 00013 #include "DataFormats/CaloRecHit/interface/CaloRecHit.h" 00014 #include "DataFormats/Common/interface/RefToBase.h" 00015 00016 namespace reco { 00017 00018 class CaloRecHitCandidate : public LeafCandidate { 00019 public: 00020 typedef edm::RefToBase<CaloRecHit> CaloRecHitRef; 00022 CaloRecHitCandidate() : LeafCandidate() { } 00024 CaloRecHitCandidate( const LorentzVector & p4, Charge q = 0, const Point & vtx = Point( 0, 0, 0 ) ) : 00025 LeafCandidate( q, p4, vtx ) { } 00027 CaloRecHitCandidate( const PolarLorentzVector & p4, Charge q = 0, const Point & vtx = Point( 0, 0, 0 ) ) : 00028 LeafCandidate( q, p4, vtx ) { } 00030 virtual ~CaloRecHitCandidate(); 00032 virtual CaloRecHitCandidate * clone() const; 00034 void setCaloRecHit( const CaloRecHitRef & r ) { caloRecHit_ = r; } 00036 CaloRecHitRef caloRecHit() const { return caloRecHit_; } 00037 00038 private: 00040 virtual bool overlap( const Candidate & ) const; 00042 CaloRecHitRef caloRecHit_; 00043 }; 00045 GET_DEFAULT_CANDIDATE_COMPONENT( CaloRecHitCandidate, edm::RefToBase<CaloRecHit>, caloRecHit ); 00046 00047 } 00048 00049 #endif