CMS 3D CMS Logo

Phase2EndcapRing.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_Phase2EndcapRing_h
2 #define TkDetLayers_Phase2EndcapRing_h
3 
4 
7 #include "SubLayerCrossings.h"
9 
13 #pragma GCC visibility push(hidden)
14 class Phase2EndcapRing final : public GeometricSearchDet {
15  public:
16  Phase2EndcapRing(std::vector<const GeomDet*>& innerDets,
17  std::vector<const GeomDet*>& outerDets,
18  const std::vector<const GeomDet*>& innerDetBrothers = std::vector<const GeomDet*>(),
19  const std::vector<const GeomDet*>& outerDetBrothers = std::vector<const GeomDet*>());
20  ~Phase2EndcapRing() override;
21 
22  // GeometricSearchDet interface
23  const BoundSurface& surface() const override {return *theDisk;}
24 
25  const std::vector<const GeomDet*>& basicComponents() const override {return theDets;}
26 
27  const std::vector<const GeometricSearchDet*>& components() const override __attribute__ ((cold));
28 
29  std::pair<bool, TrajectoryStateOnSurface>
31  const MeasurementEstimator&) const override;
32 
34  const Propagator& prop,
35  const MeasurementEstimator& est,
36  std::vector<DetGroup> & result) const override __attribute__ ((hot));
37 
38 
39  //Extension of interface
40  virtual const BoundDisk& specificSurface() const {return *theDisk;}
41 
42 
43  private:
44  // private methods for the implementation of groupedCompatibleDets()
45 
47  PropagationDirection propDir) const __attribute__ ((hot));
48 
49  bool addClosest( const TrajectoryStateOnSurface& tsos,
50  const Propagator& prop,
51  const MeasurementEstimator& est,
52  const SubLayerCrossing& crossing,
53  std::vector<DetGroup>& result,
54  std::vector<DetGroup>& brotherresult) const __attribute__ ((hot));
55 
56  void searchNeighbors( const TrajectoryStateOnSurface& tsos,
57  const Propagator& prop,
58  const MeasurementEstimator& est,
59  const SubLayerCrossing& crossing,
60  float window,
61  std::vector<DetGroup>& result,
62  std::vector<DetGroup>& brotherresult,
63  bool checkClosest) const __attribute__ ((hot));
64 
65  const std::vector<const GeomDet*>& subLayer( int ind) const {
66  return (ind==0 ? theFrontDets : theBackDets);
67  }
68 
69  const std::vector<const GeomDet*>& subLayerBrothers( int ind) const {
70  return (ind==0 ? theFrontDetBrothers : theBackDetBrothers);
71  }
72 
73 
74  private:
75  std::vector<const GeomDet*> theDets;
76  std::vector<const GeomDet*> theFrontDets;
77  std::vector<const GeomDet*> theBackDets;
78  std::vector<const GeomDet*> theFrontDetBrothers;
79  std::vector<const GeomDet*> theBackDetBrothers;
80 
84 
86 
87  BinFinderType theFrontBinFinder;
88  BinFinderType theBackBinFinder;
89 
90 
91 
92  };
93 
94 
95 #pragma GCC visibility pop
96 #endif
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Returns basic components, if any.
std::vector< const GeomDet * > theDets
std::vector< const GeomDet * > theFrontDets
std::vector< const GeomDet * > theFrontDetBrothers
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:12
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const override
std::vector< const GeomDet * > theBackDets
PropagationDirection
const std::vector< const GeomDet * > & subLayer(int ind) const
const std::vector< const GeomDet * > & basicComponents() const override
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
ReferenceCountingPointer< BoundDisk > theFrontDisk
BinFinderType theFrontBinFinder
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
ReferenceCountingPointer< BoundDisk > theDisk
const std::vector< const GeomDet * > & subLayerBrothers(int ind) const
std::vector< const GeomDet * > theBackDetBrothers
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))
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))
virtual const BoundDisk & specificSurface() const
~Phase2EndcapRing() override
PeriodicBinFinderInPhi< float > BinFinderType
SubLayerCrossings computeCrossings(const TrajectoryStateOnSurface &tsos, PropagationDirection propDir) const __attribute__((hot))
const BoundSurface & surface() const override
The surface of the GeometricSearchDet.
BinFinderType theBackBinFinder
ReferenceCountingPointer< BoundDisk > theBackDisk
Phase2EndcapRing(std::vector< const GeomDet * > &innerDets, std::vector< const GeomDet * > &outerDets, const std::vector< const GeomDet * > &innerDetBrothers=std::vector< const GeomDet * >(), const std::vector< const GeomDet * > &outerDetBrothers=std::vector< const GeomDet * >())