CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10/src/DataFormats/TrackerRecHit2D/interface/ProjectedSiStripRecHit2D.h

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   // used by trackMerger (to be improved)
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