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.;
68 for (
size_t idet = closest + 1; idet <
theDets.size(); idet++) {
70 if (
std::abs(nextPos.
y()) < detHalfLen + maxDistance.
y()) {
71 if (!
add(idet, result, startingState, prop, est))
78 for (
int idet = closest - 1; idet >= 0; idet--) {
80 if (
std::abs(nextPos.
y()) < detHalfLen + maxDistance.
y()) {
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
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &, std::vector< DetGroup > &) const override
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const Plane &plane) const =0
GlobalPoint globalPosition() const
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.
BinFinderType theBinFinder
Log< level::Error, false > LogError
GeomDetCompatibilityChecker theCompatibilityChecker
void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const override __attribute__((hot))
static std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est)
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
int binIndex(T z) const override
returns an index in the valid range for the bin that contains Z
Abs< T >::type abs(const T &t)
PeriodicBinFinderInZ< float > BinFinderType
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
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.
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Vector2DBase< float, LocalTag > Local2DVector
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
PixelRod(std::vector< const GeomDet * > &theDets)