21 std::vector<DetGroup> &
result)
const {
24 if(! crossings.
isValid())
return;
26 std::vector<DetGroup> closestResult;
29 if (closestResult.empty()){
38 closestResult,
false);
40 std::vector<DetGroup> nextResult;
72 int innerIndex, outerIndex;
bool inLess;
73 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
int closestDetIndex() const
std::vector< const GeometricSearchDet * > theComps
PositionType position() const
GlobalPoint globalPosition() const
virtual PropagationDirection propagationDirection() const final
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const __attribute__((hot))
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result) const __attribute__((hot))
~TBLayer() __attribute__((cold))
virtual float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const =0
int subLayerIndex() const
virtual std::tuple< bool, int, int > computeIndexes(GlobalPoint gInnerPoint, GlobalPoint gOuterPoint) const =0
const SubLayerCrossing & other() const
static bool add(const GeometricSearchDet &det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) __attribute__((hot))
const std::vector< const GeometricSearchDet * > & subLayer(int ind) const
const SubLayerCrossing & closest() const
GlobalVector globalMomentum() 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
double transverseCurvature() const