CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/TrackingTools/MeasurementDet/interface/MeasurementDet.h

Go to the documentation of this file.
00001 #ifndef MeasurementDet_H
00002 #define MeasurementDet_H
00003 
00004 #include <vector>
00005 
00006 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
00007 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
00008 
00009 class TrajectoryStateOnSurface;
00010 class TrajectoryMeasurement;
00011 class GeomDet;
00012 class Propagator;
00013 class MeasurementEstimator;
00014 class TransientTrackingRecHit;
00015 class BoundSurface;
00016 
00017 class MeasurementDet {
00018 public:
00019 
00020   typedef TransientTrackingRecHit::ConstRecHitContainer        RecHitContainer;
00021 
00022   MeasurementDet( const GeomDet* gdet) : theGeomDet(gdet) {}
00023 
00024   virtual RecHitContainer recHits( const TrajectoryStateOnSurface&) const = 0;
00025 
00032   virtual std::vector<TrajectoryMeasurement> 
00033   fastMeasurements( const TrajectoryStateOnSurface& stateOnThisDet, 
00034                     const TrajectoryStateOnSurface& startingState, 
00035                     const Propagator&, 
00036                     const MeasurementEstimator&) const = 0;
00037   
00038 
00039   virtual const GeomDet& geomDet() const { return *theGeomDet;}
00040 
00041   const BoundSurface& surface() const {return  geomDet().surface();}
00042 
00043   const Surface::PositionType& position() const {return geomDet().position();}
00044 
00045   virtual bool isActive() const=0;
00046   virtual bool hasBadComponents(const TrajectoryStateOnSurface &tsos) const=0;
00047 
00048  private:
00049 
00050   const GeomDet* theGeomDet;
00051 
00052 };
00053 
00054 
00055 #endif