16 LogDebug(
"TkDetLayers") <<
"==== DEBUG PixelRod =====";
17 for (vector<const GeomDet*>::const_iterator
i =
theDets.begin();
i !=
theDets.end();
i++) {
18 LogDebug(
"TkDetLayers") <<
"PixelRod's Det pos z,perp,eta,phi: " << (**i).position().z() <<
" , " 19 << (**i).position().perp() <<
" , " << (**i).position().eta() <<
" , " 20 << (**i).position().phi();
22 LogDebug(
"TkDetLayers") <<
"==== end DEBUG PixelRod =====";
35 edm::LogError(
"TkDetLayers") <<
"temporary dummy implementation of PixelRod::compatible()!!";
36 return pair<bool, TrajectoryStateOnSurface>();
42 std::vector<DetWithState>&
result)
const {
51 pair<bool, TrajectoryStateOnSurface> closestCompat =
54 if (closestCompat.first) {
57 if (!closestCompat.second.isValid())
65 float detHalfLen =
theDets[
closest]->surface().bounds().length() / 2.;
71 if (!
add(idet,
result, startingState, prop, est))
78 for (
int idet =
closest - 1; idet >= 0; idet--) {
81 if (!
add(idet,
result, startingState, prop, est))
92 std::vector<DetGroup>&)
const {
93 LogDebug(
"TkDetLayers") <<
"dummy implementation of PixelRod::groupedCompatibleDets()";
const BoundSurface & surface() const final
The surface of the GeometricSearchDet.
std::vector< const GeomDet * > theDets
int closest(std::vector< int > const &vec, int value)
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &, std::vector< DetGroup > &) const override
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const Plane &plane) const =0
BinFinderType theBinFinder
Log< level::Error, false > LogError
GeomDetCompatibilityChecker theCompatibilityChecker
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const override __attribute__((hot))
PixelRod(std::vector< const GeomDet *> &theDets)
GlobalPoint globalPosition() const
static std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est)
int binIndex(T z) const override
returns an index in the valid range for the bin that contains Z
GeometricSearchDet::DetWithState DetWithState
Abs< T >::type abs(const T &t)
PeriodicBinFinderInZ< float > BinFinderType
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 std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Returns basic components, if any.
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const override
virtual const Plane & specificSurface() const final
Return the rod surface as a Plane.
Vector2DBase< float, LocalTag > Local2DVector
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState