00001 #ifndef SiStripMatchedRecHit2D_H 00002 #define SiStripMatchedRecHit2D_H 00003 00004 00005 #include "DataFormats/TrackerRecHit2D/interface/BaseSiTrackerRecHit2DLocalPos.h" 00006 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h" 00007 00008 class SiStripMatchedRecHit2D : public BaseSiTrackerRecHit2DLocalPos{ 00009 public: 00010 SiStripMatchedRecHit2D(): BaseSiTrackerRecHit2DLocalPos(){} 00011 ~SiStripMatchedRecHit2D(){} 00012 SiStripMatchedRecHit2D( const LocalPoint& pos, const LocalError& err, const DetId& id , const SiStripRecHit2D* rMono,const SiStripRecHit2D* rStereo); 00013 00014 const SiStripRecHit2D *stereoHit() const { return &componentStereo_;} 00015 const SiStripRecHit2D *monoHit() const { return &componentMono_;} 00016 00017 // Non const variants needed for cluster re-keying 00018 SiStripRecHit2D *stereoHit() { return &componentStereo_;} 00019 SiStripRecHit2D *monoHit() { return &componentMono_;} 00020 00021 virtual SiStripMatchedRecHit2D * clone() const; 00022 00023 virtual bool sharesInput( const TrackingRecHit* other, SharedInputType what) const; 00024 00025 virtual std::vector<const TrackingRecHit*> recHits() const; 00026 00027 virtual std::vector<TrackingRecHit*> recHits(); 00028 00029 00030 private: 00031 SiStripRecHit2D componentMono_,componentStereo_; 00032 }; 00033 00034 00035 #endif