23 const vector<TrajectoryMeasurement>& meas = traj.
measurements();
31 return vector<TrajectoryMeasurement>();
37 vector<TrajectoryMeasurement>
result;
40 if(mol.size()<2)
return vector<TrajectoryMeasurement>();
51 vector<TrajectoryMeasurementGroup> groupedMeas;
57 LogDebug(
"MultiRecHitCollector") <<
"Layer " << mol.back().first <<
" has " << mol.back().second.size() <<
" measurements";
59 LogTrace(
"MultiRecHitCollector") <<
"Original measurements are:";
60 vector<TrajectoryMeasurement>::const_iterator ibeg = mol.back().second.begin();
61 vector<TrajectoryMeasurement>::const_iterator iend = mol.back().second.end();
62 for (vector<TrajectoryMeasurement>::const_iterator imeas = ibeg; imeas != iend; ++imeas){
63 if (imeas->recHit()->isValid()){
64 LogTrace(
"MultiRecHitCollector") <<
"Valid Hit with DetId " << imeas->recHit()->geographicalId().rawId()
65 <<
" local position " << imeas->recHit()->hit()->localPosition();
68 LogTrace(
"MultiRecHitCollector") <<
"Invalid Hit with DetId " << imeas->recHit()->geographicalId().rawId();
75 vector<TrajectoryMeasurementGroup> sortedgroupedMeas;
76 for (vector<TrajectoryMeasurementGroup>::reverse_iterator iter = groupedMeas.rbegin(); iter != groupedMeas.rend(); iter++){
77 sortedgroupedMeas.push_back(*iter);
83 current = mol.back().second.front().updatedState();
85 for(vector<pair<
const DetLayer*, vector<TrajectoryMeasurement> > >::reverse_iterator imol = mol.rbegin() + 1; imol != mol.rend(); imol++) {
87 LogDebug(
"MultiRecHitCollector") <<
"Layer " << lay <<
" has " << (*imol).second.size() <<
" measurements";
89 LogTrace(
"MultiRecHitCollector") <<
"Original measurements are:";
90 vector<TrajectoryMeasurement>::const_iterator ibeg = (*imol).second.begin();
91 vector<TrajectoryMeasurement>::const_iterator iend = (*imol).second.end();
92 for (vector<TrajectoryMeasurement>::const_iterator imeas = ibeg; imeas != iend; ++imeas){
93 if (imeas->recHit()->isValid()){
94 LogTrace(
"MultiRecHitCollector") <<
"Valid Hit with DetId " << imeas->recHit()->geographicalId().rawId()
95 <<
" local position " << imeas->recHit()->hit()->localPosition();
98 LogTrace(
"MultiRecHitCollector") <<
"Invalid Hit with DetId " << imeas->recHit()->geographicalId().rawId();
103 vector<TrajectoryMeasurementGroup> currentLayerMeas;
106 current = (*imol).second.front().updatedState();
109 LogTrace(
"MultiRecHitCollector") <<
"Original Measurement size " << meas.size() <<
" GroupedDAFHitCollector returned " << result.size() <<
" measurements";
117 for (vector<TrajectoryMeasurement>::const_iterator iimeas = result.begin(); iimeas != result.end(); ++iimeas)
119 if(iimeas->recHit()->isValid()) hitcounter++;
125 else return vector<TrajectoryMeasurement>();
128 else{
return vector<TrajectoryMeasurement>();}
void buildMultiRecHits(const std::vector< TrajectoryMeasurementGroup > &measgroup, std::vector< TrajectoryMeasurement > &result) const
PropagationDirection const & direction() const
DataContainer const & measurements() const
const MeasurementTracker * getMeasurementTracker() const
const Propagator * getPropagator() const
std::vector< TrajectoryMeasurementGroup > groupedMeasurements(const DetLayer &layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
const Propagator * getReversePropagator() const
const MeasurementEstimator * getEstimator() const