19 LogDebug(
"TkDetLayers") <<
"==== DEBUG PixelRod =====";
20 for (vector<const GeomDet*>::const_iterator
i=
theDets.begin();
22 LogDebug(
"TkDetLayers") <<
"PixelRod's Det pos z,perp,eta,phi: " 23 << (**i).position().z() <<
" , " 24 << (**i).position().perp() <<
" , " 25 << (**i).position().eta() <<
" , " 26 << (**i).position().phi() ;
28 LogDebug(
"TkDetLayers") <<
"==== end DEBUG PixelRod =====";
38 const vector<const GeometricSearchDet*>&
44 pair<bool, TrajectoryStateOnSurface>
47 edm::LogError(
"TkDetLayers") <<
"temporary dummy implementation of PixelRod::compatible()!!" ;
48 return pair<bool,TrajectoryStateOnSurface>();
55 std::vector<DetWithState> &
result )
const 64 pair<bool,TrajectoryStateOnSurface> closestCompat =
67 if ( closestCompat.first) {
70 if(!closestCompat.second.isValid())
return;
78 float detHalfLen =
theDets[closest]->surface().bounds().length()/2.;
81 for (
size_t idet=closest+1; idet <
theDets.size(); idet++) {
83 if (
std::abs(nextPos.
y()) < detHalfLen + maxDistance.
y()) {
84 if ( !
add(idet, result, startingState, prop, est))
break;
90 for (
int idet=closest-1; idet >= 0; idet--) {
92 if (
std::abs(nextPos.
y()) < detHalfLen + maxDistance.
y()) {
93 if ( !
add(idet, result, startingState, prop, est))
break;
105 std::vector<DetGroup> &)
const 107 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
GlobalPoint globalPosition() const
Vector2DBase< float, LocalTag > Local2DVector
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
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
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)
GeometricSearchDet::DetWithState DetWithState
Abs< T >::type abs(const T &t)
PeriodicBinFinderInZ< float > BinFinderType
virtual const Plane & specificSurface() const final
Return the rod surface as a Plane.
int binIndex(T z) const override
returns an index in the valid range for the bin that contains Z
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Returns basic components, if any.
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const Plane &plane) const =0
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const override
PixelRod(std::vector< const GeomDet * > &theDets)