17 struct Nop { Nop(
int=0){} Nop& operator=(
int){
return *
this;}
void operator++(
int){}};
44 ~Stat() {
std::cout <<
"Geom checker " << ntot<<
' '<< nf1<<
' '<< nf2 <<
' '<< ns1<<
' '<< ns2 <<
' ' << ns11 <<
' '<< ns21 <<
' ' << nth <<
' ' << nle <<std::endl;}
48 [[cms::thread_safe]] Stat
stat;
52 std::pair<bool, TrajectoryStateOnSurface>
71 float sagitta=99999999;
77 auto path = crossing.pathLength(plane);
81 auto gpos =
GlobalPoint(crossing.position(path.second));
85 close = sagitta<sagCut;
86 LogDebug(
"TkDetLayer") <<
"GeomDetCompatibilityChecker: sagitta " << sagitta << std::endl;
89 auto pos = plane.toLocal(
GlobalPoint(crossing.position(path.second)));
91 auto tollL2 =
std::max(sagitta*sagitta,minTol2);
93 isIn = plane.bounds().inside(
pos,toll);
94 if (!isIn) {
stat.ns2++;
LogDebug(
"TkDetLayer") <<
"GeomDetCompatibilityChecker: not in " <<
pos << std::endl;
108 if (close && (!isIn) && (!es) )
stat.ns11++;
109 if (close && es &&(!isIn)) {
stat.ns21++; }
110 return std::make_pair( es,
std::move(propSt));
float minTolerance2() const
Global3DPoint GlobalPoint
GlobalPoint globalPosition() const
float transverseCurvature() const
virtual PropagationDirection propagationDirection() const final
static std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est)
Abs< T >::type abs(const T &t)
const GlobalTrajectoryParameters & globalParameters() const
T perp2() const
Squared magnitude of transverse component.
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
GlobalVector globalMomentum() const
virtual HitReturnType estimate(const TrajectoryStateOnSurface &ts, const TrackingRecHit &hit) const =0
const BasicVectorType & basicVector() const
const Plane & specificSurface() const
Same as surface(), kept for backward compatibility.