00001 #ifndef InvalidTransientRecHit_H 00002 #define InvalidTransientRecHit_H 00003 00004 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitByValue.h" 00005 #include "DataFormats/TrackingRecHit/interface/InvalidTrackingRecHit.h" 00006 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" 00007 #include "TrackingTools/DetLayers/interface/DetLayer.h" 00008 00009 class InvalidTransientRecHit : public TransientTrackingRecHitByValue<InvalidTrackingRecHit> { 00010 public: 00011 typedef TransientTrackingRecHitByValue<InvalidTrackingRecHit> Base; 00012 typedef TrackingRecHit::Type Type; 00013 00014 static RecHitPointer build( const GeomDet * geom, Type type=TrackingRecHit::missing, const DetLayer * layer=0) { 00015 return RecHitPointer( new InvalidTransientRecHit( geom, layer, type )); 00016 } 00017 00018 const Surface* surface() const ; 00019 00020 private: 00021 const DetLayer * layer_; 00023 explicit InvalidTransientRecHit( const GeomDet* geom, const DetLayer * layer, Type type); 00024 00025 // hide the clone method for ReferenceCounted. Warning: this method is still 00026 // accessible via the bas class TrackingRecHit interface! 00027 virtual InvalidTransientRecHit* clone() const {return new InvalidTransientRecHit(*this);} 00028 00029 }; 00030 00031 #endif