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;
75 Local2DVector maxDistance =
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()" ;
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const
std::vector< const GeomDet * > theDets
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const Plane &plane) const =0
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
virtual const BoundSurface & surface() const final
The surface of the GeometricSearchDet.
virtual int binIndex(T z) const
returns an index in the valid range for the bin that contains Z
static std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est)
virtual const std::vector< const GeometricSearchDet * > & components() const __attribute__((cold))
Returns basic components, if any.
Abs< T >::type abs(const T &t)
PeriodicBinFinderInZ< float > BinFinderType
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
virtual const Plane & specificSurface() const final
Return the rod surface as a Plane.
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
virtual void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const __attribute__((hot))
PixelRod(std::vector< const GeomDet * > &theDets)
virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &, std::vector< DetGroup > &) const