31 edm::LogError(
"MTDDetLayers") <<
"temporary dummy implementation of MTDDetTray::components()!!";
32 static const vector<const GeometricSearchDet*>
result;
53 vector<DetWithState>
result;
56 pair<bool, TrajectoryStateOnSurface> compat =
compatible(startingState, prop, est);
59 LogTrace(
"MTDDetLayers") <<
" MTDDetTray::compatibleDets: not compatible" 60 <<
" (should not have been selected!)";
69 LogTrace(
"MTDDetLayers") <<
" MTDDetTray::compatibleDets, closest det: " <<
closest 70 <<
" pos: " << dets[
closest]->surface().position() <<
" impact " << startPos;
77 int nclosest =
result.size();
88 float detHalfLen = closestPlane.bounds().length() / 2.;
90 for (
unsigned int idet =
closest + 1; idet < dets.size(); idet++) {
94 LogTrace(
"MTDDetLayers") <<
" negativeZ: det:" << idet <<
" pos " << nextPos.
y() <<
" maxDistance " 105 for (
int idet =
closest - 1; idet >= 0; idet--) {
109 LogTrace(
"MTDDetLayers") <<
" positiveZ: det:" << idet <<
" pos " << nextPos.
y() <<
" maxDistance " 122 LogTrace(
"MTDDetLayers") <<
" MTDDetTray::compatibleDets, size: " <<
result.size() <<
" on closest: " << nclosest
123 <<
" # checked dets: " << nnextdet + 1;
125 LogTrace(
"MTDDetLayers") <<
" ***Rod not compatible---should have been discarded before!!!";
134 vector<GeometricSearchDet::DetWithState> detWithStates;
139 if (!detWithStates.empty()) {
142 LogTrace(
"MTDDetLayers") <<
"MTDdetTray Compatible modules: " <<
result.size();
GenericBinFinderInZ< float, GeomDet > BinFinderType
const std::vector< const GeometricSearchDet * > & components() const override
Returns basic components, if any.
const BoundSurface & surface() const final
The surface of the GeometricSearchDet.
const LocalTrajectoryError & localError() const
Geom::Phi< T > phi() const
int closest(std::vector< int > const &vec, int value)
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const Plane &plane) const =0
std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
Log< level::Error, false > LogError
LocalError positionError() const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
GlobalPoint globalPosition() const
int binIndex(T z) const override
returns an index in the valid range for the bin closest to Z
MTDDetTray(std::vector< const GeomDet *>::const_iterator first, std::vector< const GeomDet *>::const_iterator last)
Construct from iterators on GeomDet*.
virtual HitReturnType estimate(const TrajectoryStateOnSurface &ts, const TrackingRecHit &hit) const =0
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
bool add(int idet, std::vector< DetWithState > &result, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
Query detector idet for compatible and add the output to result.
const PositionType & position() const
const std::vector< const GeomDet * > & basicComponents() const override
virtual const Plane & specificSurface() const final
Return the rod surface as a Plane.
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est) const override
BinFinderType theBinFinder
~MTDDetTray() override
Destructor.
std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override