Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:27

0001 #ifndef DetLayers_GeomDetCompatibilityChecker_h
0002 #define DetLayers_GeomDetCompatibilityChecker_h
0003 
0004 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0005 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0006 #include "TrackingTools/DetLayers/interface/MeasurementEstimator.h"
0007 
0008 /** helper class which checks if a GeomDet is geometrically 
0009  *  compatible with a TrajectoryState
0010  */
0011 
0012 class GeomDetCompatibilityChecker {
0013 public:
0014   /** tests the geometrical compatibility of the GeomDet with the predicted state.
0015    *  The  TrajectoryState argument is propagated to the GeomDet surface using
0016    *  the Propagator argument. The resulting TrajectoryStateOnSurface is
0017    *  tested for compatibility with the surface bounds.
0018    *  If compatible, a std::pair< true, propagatedState> is returned.
0019    *  If the propagation fails, or if the state is not compatible,
0020    *  a std::pair< false, propagatedState> is returned.
0021    */
0022   static std::pair<bool, TrajectoryStateOnSurface> isCompatible(const GeomDet* theDet,
0023                                                                 const TrajectoryStateOnSurface& ts,
0024                                                                 const Propagator& prop,
0025                                                                 const MeasurementEstimator& est);
0026 };
0027 
0028 #endif