13 vector<TrajectoryMeasurement>
20 vector<DetWithState> compatDets = layer.
compatibleDets( startingState, prop, est);
22 vector<TrajectoryMeasurement>
result;
23 if (compatDets.empty()) {
24 pair<bool, TrajectoryStateOnSurface> compat =
32 LogDebug(
"LayerMeasurements")<<
"adding a missing hit.";
33 }
else LogDebug(
"LayerMeasurements")<<
"adding not measurement.";
38 vector<TrajectoryMeasurement> tmpResult = gsdm.
get( layer, compatDets, startingState, prop, est);
40 for(vector<TrajectoryMeasurement>::const_iterator tmpIt=tmpResult.begin();tmpIt!=tmpResult.end();tmpIt++){
41 LogDebug(
"LayerMeasurements")<<
"adding a measurement which rechit is: "<<(tmpIt->recHit()->isValid()?
"valid":
"invalid");
42 result.push_back(
TrajectoryMeasurement(tmpIt->predictedState(),tmpIt->recHit(),tmpIt->estimate(),&layer) );
49 vector<TrajectoryMeasurementGroup>
55 vector<TrajectoryMeasurementGroup>
result;
58 result.reserve(groups.size());
59 for (vector<DetGroup>::const_iterator grp=groups.begin(); grp!=groups.end(); grp++) {
60 if ( grp->empty() )
continue;
62 vector<TrajectoryMeasurement> tmpVec;
63 for (DetGroup::const_iterator idet=grp->begin(); idet!=grp->end(); idet++) {
64 const MeasurementDet* mdet = theDetSystem->idToDet(idet->det()->geographicalId());
68 vector<TrajectoryMeasurement>
tmp =
72 std::vector<TrajectoryMeasurement>::iterator
end =
76 tmpVec.insert( tmpVec.end(), tmp.begin(),
end);
80 vector<TrajectoryMeasurement> tmpVec2;
81 tmpVec2.reserve(tmpVec.size());
82 for(vector<TrajectoryMeasurement>::const_iterator tmpIt=tmpVec.begin();tmpIt!=tmpVec.end();tmpIt++){
83 LogDebug(
"LayerMeasurements")<<
"[grouped] temporaryly adding a measurement which rechit is: "<<(tmpIt->recHit()->isValid()?
"valid":
"invalid");
84 tmpVec2.push_back(
TrajectoryMeasurement(tmpIt->predictedState(),tmpIt->recHit(),tmpIt->estimate(),&layer) );
89 if ( static_cast<int>(tmpVec2.size()) > 1) {
92 addInvalidMeas( tmpVec2, *grp,layer);
98 pair<bool, TrajectoryStateOnSurface> compat = layer.
compatible( startingState, prop, est);
101 vector<TrajectoryMeasurement> tmVec(1,inval);
112 if (!measVec.empty()) {
118 else if (!group.empty()) {
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const =0
std::vector< TrajectoryMeasurement > measurements(const DetLayer &layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
static RecHitPointer build(const GeomDet *geom, Type type=TrackingRecHit::missing, const DetLayer *layer=0)
virtual std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual std::vector< TrajectoryMeasurement > fastMeasurements(const TrajectoryStateOnSurface &stateOnThisDet, const TrajectoryStateOnSurface &startingState, const Propagator &, const MeasurementEstimator &) const =0
void addInvalidMeas(std::vector< TrajectoryMeasurement > &measVec, const DetGroup &group, const DetLayer &layer) const
std::vector< std::vector< double > > tmp
std::vector< TrajectoryMeasurementGroup > groupedMeasurements(const DetLayer &layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
std::vector< TrajectoryMeasurement > get(const GeometricSearchDet &det, const std::vector< DetWithState > &compatDets, const TrajectoryState &ts, const Propagator &prop, const MeasurementEstimator &est) const