1 #ifndef GeometricSearchDetMeasurements_H
2 #define GeometricSearchDetMeasurements_H
89 template <
class TrajectoryState>
91 const std::vector<DetWithState>& compatDets,
92 const TrajectoryState& ts,
124 template <
class TrajectoryState>
125 std::vector<TrajectoryMeasurement>
127 const std::vector<DetWithState>& compatDets,
128 const TrajectoryState& ts,
132 std::vector<TrajectoryMeasurement>
result;
133 if (!compatDets.empty()) {
134 for ( std::vector<DetWithState>::const_iterator
i=compatDets.begin();
135 i != compatDets.end();
i++) {
144 std::vector<TM>::iterator
end = (tmp.back().recHit()->isValid() ? tmp.end() : tmp.end()-1);
145 result.insert( result.end(), tmp.begin(),
end);
149 if ( result.size() > 1) {
167 throw MeasurementDetException(
"GeometricSearchDetMeasurements::get called with empty std::vector<DetWithState>");
GeometricSearchDetMeasurements(const MeasurementDetSystem *detSysytem)
GeometricSearchDet::DetWithState DetWithState
TrajectoryStateOnSurface TSOS
const MeasurementDetSystem * theDetSystem
TrajectoryMeasurementGroup TMG
virtual std::vector< TrajectoryMeasurement > fastMeasurements(const TrajectoryStateOnSurface &stateOnThisDet, const TrajectoryStateOnSurface &startingState, const Propagator &, const MeasurementEstimator &) const =0
std::vector< std::vector< double > > tmp
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
virtual const MeasurementDet * idToDet(const DetId &id) const =0
Return the pointer to the MeasurementDet corresponding to a given DetId.
std::vector< TrajectoryMeasurement > get(const GeometricSearchDet &det, const std::vector< DetWithState > &compatDets, const TrajectoryState &ts, const Propagator &prop, const MeasurementEstimator &est) const