23 const vector<TrajectoryMeasurement>& meas = traj.
measurements();
31 return vector<TrajectoryMeasurement>();
34 vector<pair<const DetLayer*, vector<TrajectoryMeasurement> > > mol;
37 vector<TrajectoryMeasurement>
result;
41 return vector<TrajectoryMeasurement>();
53 LogDebug(
"MultiRecHitCollector") <<
"Layer " << mol.back().first <<
" has " << mol.back().second.size()
55 LogTrace(
"MultiRecHitCollector") <<
"Original measurements are:";
56 for (
unsigned int iLay = 0; iLay < mol.size(); iLay++) {
57 LogTrace(
"MultiRecHitCollector") <<
" Layer " << mol.at(iLay).first <<
" has " << mol.at(iLay).second.size()
59 vector<TrajectoryMeasurement>::const_iterator ibeg = (mol.at(iLay)).
second.begin();
60 vector<TrajectoryMeasurement>::const_iterator iend = (mol.at(iLay)).
second.end();
61 for (vector<TrajectoryMeasurement>::const_iterator imeas = ibeg; imeas != iend; ++imeas) {
62 if (imeas->recHit()->isValid()) {
63 LogTrace(
"MultiRecHitCollector") <<
" Valid Hit with DetId " << imeas->recHit()->geographicalId().rawId()
64 <<
" local position " << imeas->recHit()->hit()->localPosition()
65 <<
" global position " << imeas->recHit()->hit()->globalPosition();
67 LogTrace(
"MultiRecHitCollector") <<
" Invalid Hit with DetId " << imeas->recHit()->geographicalId().rawId();
73 vector<TrajectoryMeasurementGroup> groupedMeas;
75 groupedMeas = theLM.groupedMeasurements(*(mol.back().first), current, *backwardPropagator, *(
getEstimator()));
79 vector<TrajectoryMeasurementGroup> sortedgroupedMeas;
80 for (vector<TrajectoryMeasurementGroup>::reverse_iterator iter = groupedMeas.rbegin(); iter != groupedMeas.rend();
82 sortedgroupedMeas.push_back(*iter);
89 current = mol.back().second.front().updatedState();
92 for (vector<pair<
const DetLayer*, vector<TrajectoryMeasurement> > >::reverse_iterator imol = mol.rbegin() + 1;
96 LogDebug(
"MultiRecHitCollector") <<
"Layer " << lay <<
" has " << (*imol).second.size() <<
" measurements";
98 vector<TrajectoryMeasurementGroup> currentLayerMeas;
100 currentLayerMeas = theLM.groupedMeasurements(*lay, current, *forwardPropagator, *(
getEstimator()));
104 current = (*imol).second.front().updatedState();
108 LogTrace(
"MultiRecHitCollector") <<
" Ending GroupedDAFHitCollector::recHits >> Original Measurement size " 110 <<
"\n >> GroupedDAFHitCollector returned " 111 << result.size() <<
" measurements";
115 if (result.size() > 2) {
118 for (vector<TrajectoryMeasurement>::const_iterator iimeas = result.begin(); iimeas != result.end(); ++iimeas) {
119 if (iimeas->recHit()->isValid())
123 if (hitcounter > 2) {
128 return vector<TrajectoryMeasurement>();
132 return vector<TrajectoryMeasurement>();
PropagationDirection const & direction() const
U second(std::pair< T, U > const &p)
DataContainer const & measurements() const
const MeasurementTracker * getMeasurementTracker() const
const Propagator * getPropagator() const
void buildMultiRecHits(const std::vector< TrajectoryMeasurementGroup > &measgroup, std::vector< TrajectoryMeasurement > &result, const MeasurementTrackerEvent *&theMTE) const
const Propagator * getReversePropagator() const
const MeasurementEstimator * getEstimator() const