00001 #ifndef InvalidTrackingRecHit_H 00002 #define InvalidTrackingRecHit_H 00003 00004 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" 00005 #include "DataFormats/GeometrySurface/interface/LocalError.h" 00006 #include "DataFormats/GeometryVector/interface/LocalPoint.h" 00007 00008 class InvalidTrackingRecHit : public TrackingRecHit { 00009 public: 00010 typedef TrackingRecHit::Type Type; 00011 00012 InvalidTrackingRecHit(DetId id, Type type ) : TrackingRecHit(id, type) {} 00013 InvalidTrackingRecHit() : TrackingRecHit(0, TrackingRecHit::missing) {} 00014 00015 virtual ~InvalidTrackingRecHit() {} 00016 00017 virtual InvalidTrackingRecHit * clone() const {return new InvalidTrackingRecHit(*this);} 00018 00019 virtual AlgebraicVector parameters() const; 00020 00021 virtual AlgebraicSymMatrix parametersError() const; 00022 00023 virtual AlgebraicMatrix projectionMatrix() const; 00024 00025 virtual int dimension() const; 00026 00027 virtual LocalPoint localPosition() const; 00028 00029 virtual LocalError localPositionError() const; 00030 00031 virtual std::vector<const TrackingRecHit*> recHits() const; 00032 00033 virtual std::vector<TrackingRecHit*> recHits(); 00034 00035 virtual bool sharesInput( const TrackingRecHit* other, SharedInputType what) const; 00036 00037 private: 00038 00039 void throwError() const; 00040 00041 }; 00042 00043 #endif