CMS 3D CMS Logo

Phase2OTBarrelRod.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_Phase2OTBarrelRod_h
2 #define TkDetLayers_Phase2OTBarrelRod_h
3 
7 #include "SubLayerCrossings.h"
8 
13 #pragma GCC visibility push(hidden)
14 class Phase2OTBarrelRod final : public DetRod {
15 public:
17 
18  Phase2OTBarrelRod(std::vector<const GeomDet*>& innerDets,
19  std::vector<const GeomDet*>& outerDets,
20  std::vector<const GeomDet*>& innerDetBrothers,
21  std::vector<const GeomDet*>& outerDetBrothers) __attribute__((cold));
22  ~Phase2OTBarrelRod() override __attribute__((cold));
23 
24  // GeometricSearchDet interface
25 
26  const std::vector<const GeomDet*>& basicComponents() const override { return theDets; }
27 
28  const std::vector<const GeometricSearchDet*>& components() const override __attribute__((cold));
29 
30  std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface& ts,
31  const Propagator&,
32  const MeasurementEstimator&) const override
33  __attribute__((cold));
34 
36  const Propagator& prop,
37  const MeasurementEstimator& est,
38  std::vector<DetGroup>& result) const override __attribute__((hot));
39 
40 private:
41  // private methods for the implementation of groupedCompatibleDets()
42 
44  __attribute__((hot));
45 
46  bool addClosest(const TrajectoryStateOnSurface& tsos,
47  const Propagator& prop,
48  const MeasurementEstimator& est,
49  const SubLayerCrossing& crossing,
50  std::vector<DetGroup>& result,
51  std::vector<DetGroup>& brotherresult) const __attribute__((hot));
52 
53  float computeWindowSize(const GeomDet* det,
54  const TrajectoryStateOnSurface& tsos,
55  const MeasurementEstimator& est) const __attribute__((hot));
56 
58  const Propagator& prop,
59  const MeasurementEstimator& est,
60  const SubLayerCrossing& crossing,
61  float window,
62  std::vector<DetGroup>& result,
63  std::vector<DetGroup>& brotherresult,
64  bool checkClosest) const __attribute__((hot));
65 
66  const std::vector<const GeomDet*>& subRod(int ind) const { return (ind == 0 ? theInnerDets : theOuterDets); }
67 
68  const std::vector<const GeomDet*>& subRodBrothers(int ind) const {
69  return (ind == 0 ? theInnerDetBrothers : theOuterDetBrothers);
70  }
71 
72 private:
73  std::vector<const GeomDet*> theDets;
74  std::vector<const GeomDet*> theInnerDets;
75  std::vector<const GeomDet*> theOuterDets;
76  std::vector<const GeomDet*> theInnerDetBrothers;
77  std::vector<const GeomDet*> theOuterDetBrothers;
78 
81 
82  BinFinderType theInnerBinFinder;
83  BinFinderType theOuterBinFinder;
84 };
85 
86 #pragma GCC visibility pop
87 #endif
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
Phase2OTBarrelRod(std::vector< const GeomDet * > &innerDets, std::vector< const GeomDet * > &outerDets, std::vector< const GeomDet * > &innerDetBrothers, std::vector< const GeomDet * > &outerDetBrothers) __attribute__((cold))
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const override __attribute__((cold))
BinFinderType theOuterBinFinder
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Returns basic components, if any.
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:12
PropagationDirection
std::vector< const GeomDet * > theDets
BinFinderType theInnerBinFinder
std::vector< const GeomDet * > theOuterDetBrothers
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
Definition: svgfig.py:643
const std::vector< const GeomDet * > & basicComponents() const override
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, float window, std::vector< DetGroup > &result, std::vector< DetGroup > &brotherresult, bool checkClosest) const __attribute__((hot))
const std::vector< const GeomDet * > & subRodBrothers(int ind) const
Definition: DetRod.h:13
ReferenceCountingPointer< Plane > theOuterPlane
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
GenericBinFinderInZ< float, GeomDet > BinFinderType
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const __attribute__((hot))
ReferenceCountingPointer< Plane > theInnerPlane
bool addClosest(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubLayerCrossing &crossing, std::vector< DetGroup > &result, std::vector< DetGroup > &brotherresult) const __attribute__((hot))
~Phase2OTBarrelRod() override __attribute__((cold))
const std::vector< const GeomDet * > & subRod(int ind) const
std::vector< const GeomDet * > theOuterDets
std::vector< const GeomDet * > theInnerDets
std::vector< const GeomDet * > theInnerDetBrothers