#include <GeomDetCompatibilityChecker.h>
Static Public Member Functions | |
static std::pair< bool, TrajectoryStateOnSurface > | isCompatible (const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est) |
helper class which checks if a GeomDet is geometrically compatible with a TrajectoryState
Definition at line 13 of file GeomDetCompatibilityChecker.h.
pair< bool, TrajectoryStateOnSurface > GeomDetCompatibilityChecker::isCompatible | ( | const GeomDet * | theDet, |
const TrajectoryStateOnSurface & | ts, | ||
const Propagator & | prop, | ||
const MeasurementEstimator & | est | ||
) | [static] |
tests the geometrical compatibility of the GeomDet with the predicted state. The TrajectoryState argument is propagated to the GeomDet surface using the Propagator argument. The resulting TrajectoryStateOnSurface is tested for compatibility with the surface bounds. If compatible, a std::pair< true, propagatedState> is returned. If the propagation fails, or if the state is not compatible, a std::pair< false, propagatedState> is returned.
Definition at line 7 of file GeomDetCompatibilityChecker.cc.
References MeasurementEstimator::estimate(), TrajectoryStateOnSurface::isValid(), Propagator::propagate(), and GeomDet::specificSurface().
Referenced by TkGeomDetCompatibilityChecker::isCompatible(), and TrajectorySegmentBuilder::redoMeasurements().
{ TrajectoryStateOnSurface propSt = prop.propagate( tsos, theDet->specificSurface()); if ( propSt.isValid()) { if ( est.estimate( propSt, theDet->specificSurface()) ) { return make_pair( true, propSt); } } return make_pair( false, propSt); }