Go to the documentation of this file.00001 #ifndef ProjectedSiStripRecHit2D_H
00002 #define ProjectedSiStripRecHit2D_H
00003
00004 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h"
00005
00006 class ProjectedSiStripRecHit2D : public BaseTrackerRecHit {
00007 public:
00008
00009 typedef BaseTrackerRecHit Base;
00010 ProjectedSiStripRecHit2D() {};
00011 ProjectedSiStripRecHit2D( const LocalPoint& pos, const LocalError& err, const DetId& id ,
00012 const SiStripRecHit2D* originalHit) :
00013 BaseTrackerRecHit(pos, err, id, trackerHitRTTI::proj), originalHit_(*originalHit) {}
00014
00015 virtual ProjectedSiStripRecHit2D* clone() const {return new ProjectedSiStripRecHit2D( *this); }
00016
00017 virtual int dimension() const {return 2;}
00018 virtual void getKfComponents( KfComponentsHolder & holder ) const { getKfComponents2D(holder); }
00019
00020
00021
00022 virtual OmniClusterRef const & firstClusterRef() const { return originalHit().firstClusterRef();}
00023
00024
00025 const SiStripRecHit2D& originalHit() const {return originalHit_;}
00026 SiStripRecHit2D& originalHit() {return originalHit_;}
00027
00028 virtual bool sharesInput( const TrackingRecHit* other, SharedInputType what) const {
00029 return originalHit().sharesInput(other,what);
00030 }
00031 virtual std::vector<const TrackingRecHit*> recHits() const{
00032 std::vector<const TrackingRecHit*> rechits(1,&originalHit_);
00033 return rechits;
00034 }
00035 virtual std::vector<TrackingRecHit*> recHits() {
00036 std::vector<TrackingRecHit*> rechits(1,&originalHit_);
00037 return rechits;
00038 }
00039
00040
00041 private:
00042
00043 SiStripRecHit2D originalHit_;
00044
00045 };
00046
00047 #endif