31 LogDebug(
"TkDetLayers") <<
"DEBUG INFO for Phase2EndcapSingleRing";
33 LogDebug(
"TkDetLayers") <<
"Det detId,phi,z,r: " << (*it)->geographicalId().rawId() <<
" , " 34 << (*it)->surface().position().phi() <<
" , " << (*it)->surface().position().z() <<
" , " 35 << (*it)->surface().position().perp();
44 throw DetLayerException(
"Phase2EndcapSingleRing doesn't have GeometricSearchDet components");
50 edm::LogError(
"TkDetLayers") <<
"temporary dummy implementation of Phase2EndcapSingleRing::compatible()!!";
51 return pair<bool, TrajectoryStateOnSurface>();
57 std::vector<DetGroup>&
result)
const {
65 std::vector<DetGroup> closestResult;
67 addClosest(tsos, prop, est, crossing, closestResult);
68 if (closestResult.empty())
88 pair<bool, double> frontPath = crossing.pathLength(*
theDisk);
92 GlobalPoint gFrontPoint(crossing.position(frontPath.second));
104 vector<DetGroup>&
result)
const {
120 bool checkClosest)
const {
126 int negStartIndex = closestIndex - 1;
127 int posStartIndex = closestIndex + 1;
131 posStartIndex = closestIndex;
133 negStartIndex = closestIndex;
140 int half = sLayer.size() / 2;
141 for (
int idet = negStartIndex; idet >= negStartIndex - half; idet--) {
148 for (
int idet = posStartIndex; idet < posStartIndex + half; idet++) {
int binIndex(T phi) const override
returns an index in the valid range for the bin that contains phi
PeriodicBinFinderInPhi< float > BinFinderType
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override
Phase2EndcapSingleRing(std::vector< const GeomDet *> &allDets)
virtual PropagationDirection propagationDirection() const final
BinFinderType theBinFinder
SubLayerCrossing computeCrossing(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const
Log< level::Error, false > LogError
bool overlapInPhi(float phi, const GeomDet &det, float phiWindow)
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
const std::vector< const GeometricSearchDet * > & components() const override
Returns basic components, if any.
static void addSameLevel(std::vector< DetGroup > &&gvec, std::vector< DetGroup > &result)
const std::vector< const GeomDet * > & subLayer(int ind) const
GlobalPoint globalPosition() const
const GlobalPoint & position() const
int closestDetIndex() const
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const
GeometricSearchDet::DetWithState DetWithState
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const override
int subLayerIndex() const
bool phiLess(float phi1, float phi2)
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) __attribute__((hot))
std::vector< const GeomDet * > theDets
ReferenceCountingPointer< BoundDisk > theDisk
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, bool checkClosest) const
double transverseCurvature() const
~Phase2EndcapSingleRing() override
GlobalVector globalMomentum() const
void add(std::map< std::string, TH1 *> &h, TH1 *hist)
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState