CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/TrackingTools/TransientTrackingRecHit/interface/InvalidTransientRecHit.h

Go to the documentation of this file.
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