13 vector<DetGroup>&
result) {
17 if (tmp.empty())
return false;
19 if (result.empty()) result.swap(tmp);
23 vector<GeometricSearchDet::DetWithState> compatDets;
25 if (compatDets.empty())
return false;
30 if (result.size() != 1)
31 edm::LogError(
"TkDetLayers") <<
"CompatibleDetToGroupAdder: det is not grouped but result has more than one group!" ;
32 result.front().reserve(result.front().size()+compatDets.size());
33 for (vector<GeometricSearchDet::DetWithState>::const_iterator
i=compatDets.begin();
34 i!=compatDets.end();
i++)
35 result.front().push_back( *
i);
47 vector<DetGroup>&
result) {
50 pair<bool, TrajectoryStateOnSurface> compat = theCompatibilityChecker.
isCompatible( &det,tsos, prop, est);
52 if (!compat.first)
return false;
59 if (result.size() != 1)
60 edm::LogError(
"TkDetLayers") <<
"CompatibleDetToGroupAdder: det is not grouped but result has more than one group!" ;
63 result.front().push_back(ge);
virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
static std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est)
virtual bool hasGroups() const =0
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result)
std::vector< std::vector< double > > tmp
static void addSameLevel(const std::vector< DetGroup > &gvec, std::vector< DetGroup > &result)
virtual void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const