18 std::vector<DetGroup>&
result)
const {
24 std::vector<DetGroup> closestResult;
27 if (closestResult.empty()) {
38 std::vector<DetGroup> nextResult;
64 innerCrossing = outerCrossing;
66 outerCrossing = innerCrossing;
72 int innerIndex, outerIndex;
74 std::tie(inLess, innerIndex, outerIndex) =
computeIndexes(gInnerPoint, gOuterPoint);
90 std::vector<DetGroup>&
result)
const {
ReferenceCountingPointer< BoundCylinder > theOuterCylinder
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &startingState, PropagationDirection propDir) const __attribute__((hot))
static int barrelSide(const TrajectoryStateOnSurface &startingState, const Propagator &prop)
returns 0 if barrel layer crossed from inside, 1 if from outside
std::vector< const GeometricSearchDet * > theComps
virtual std::tuple< bool, int, int > computeIndexes(GlobalPoint gInnerPoint, GlobalPoint gOuterPoint) const =0
virtual PropagationDirection propagationDirection() const final
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const __attribute__((hot))
virtual float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const =0
GlobalPoint globalPosition() const
int closestDetIndex() const
const std::vector< const GeometricSearchDet * > & subLayer(int ind) 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)
~TBLayer() override __attribute__((cold))
T perp() const
Magnitude of transverse component.
const SubLayerCrossing & closest() const
int subLayerIndex() const
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) __attribute__((hot))
const SubLayerCrossing & other() const
double transverseCurvature() const
GlobalVector globalMomentum() const
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
PositionType position() const
virtual void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, bool checkClosest) const =0
static void orderAndMergeTwoLevels(std::vector< DetGroup > &&one, std::vector< DetGroup > &&two, std::vector< DetGroup > &result, int firstIndex, int firstCrossed)
ReferenceCountingPointer< BoundCylinder > theInnerCylinder