11 vector<DetGroup>&
result) {
23 vector<GeometricSearchDet::DetWithState> compatDets;
25 if (compatDets.empty())
31 if (result.size() != 1)
33 <<
"CompatibleDetToGroupAdder: det is not grouped but result has more than one group!";
34 result.front().reserve(result.front().size() + compatDets.size());
35 for (vector<GeometricSearchDet::DetWithState>::const_iterator
i = compatDets.begin();
i != compatDets.end();
i++)
36 result.front().push_back(*
i);
48 vector<DetGroup>&
result) {
51 auto&& compat = theCompatibilityChecker.
isCompatible(&det, tsos, prop, est);
59 if (result.size() != 1)
60 edm::LogError(
"TkDetLayers") <<
"CompatibleDetToGroupAdder: det is not grouped but result has more than one group!";
62 result.front().emplace_back(&det,
std::move(compat.second));
virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
static void addSameLevel(std::vector< DetGroup > &&gvec, std::vector< DetGroup > &result)
static std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est)
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) __attribute__((hot))
virtual void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const