CMS 3D CMS Logo

TIBRing.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_TIBRing_h
2 #define TkDetLayers_TIBRing_h
3 
4 
8 
12 #pragma GCC visibility push(hidden)
13 class TIBRing final : public GeometricSearchDet{
14  public:
15  TIBRing(std::vector<const GeomDet*>& theGeomDets) __attribute__ ((cold));
16  ~TIBRing() override __attribute__ ((cold));
17 
18  // GeometricSearchDet interface
19  const BoundSurface& surface() const override {return *theCylinder;}
20 
21  const std::vector<const GeomDet*>& basicComponents() const override {return theDets;}
22 
23  const std::vector<const GeometricSearchDet*>& components() const override __attribute__ ((cold));
24 
25 
26  std::pair<bool, TrajectoryStateOnSurface>
28  const MeasurementEstimator&) const override __attribute__ ((cold));
29 
30 
31  void
33  const Propagator& prop,
34  const MeasurementEstimator& est,
35  std::vector<DetGroup> & result) const override __attribute__ ((hot));
36 
37 
38  //--- Extension of the interface
39 
41  virtual const BoundCylinder& specificSurface() const {return *theCylinder;}
42 
43  private:
44  //general private methods
45 
46  void checkPeriodicity(std::vector<const GeomDet*>::const_iterator first,
47  std::vector<const GeomDet*>::const_iterator last) __attribute__ ((cold));
48 
49  void checkRadius(std::vector<const GeomDet*>::const_iterator first,
50  std::vector<const GeomDet*>::const_iterator last) __attribute__ ((cold));
51 
52  void computeHelicity() __attribute__ ((cold));
53 
54  // methods for groupedCompatibleDets implementation
57  SubRingCrossings( int ci, int ni, float nd) :
59 
60  bool isValid_;
62  int nextIndex;
63  float nextDistance;
64  };
65 
66 
67  void searchNeighbors( const TrajectoryStateOnSurface& tsos,
68  const Propagator& prop,
69  const MeasurementEstimator& est,
70  const SubRingCrossings& crossings,
71  float window,
72  std::vector<DetGroup>& result) const __attribute__ ((hot));
73 
75  computeCrossings( const TrajectoryStateOnSurface& startingState,
76  PropagationDirection propDir) const __attribute__ ((hot));
77 
78  float computeWindowSize( const GeomDet* det,
79  const TrajectoryStateOnSurface& tsos,
80  const MeasurementEstimator& est) const __attribute__ ((hot));
81 
82 
83 
84 
85  private:
87  BinFinderType theBinFinder;
88 
89  std::vector<const GeomDet*> theDets;
92 };
93 
94 
95 #pragma GCC visibility pop
96 #endif
const BoundSurface & surface() const override
The surface of the GeometricSearchDet.
Definition: TIBRing.h:19
BinFinderType theBinFinder
Definition: TIBRing.h:87
TIBRing(std::vector< const GeomDet * > &theGeomDets) __attribute__((cold))
Definition: TIBRing.cc:21
void computeHelicity() __attribute__((cold))
Definition: TIBRing.cc:102
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const override __attribute__((cold))
Definition: TIBRing.cc:125
std::vector< const GeomDet * > theDets
Definition: TIBRing.h:89
const std::vector< const GeomDet * > & basicComponents() const override
Definition: TIBRing.h:21
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:12
PropagationDirection
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Returns basic components, if any.
Definition: TIBRing.cc:58
void checkRadius(std::vector< const GeomDet * >::const_iterator first, std::vector< const GeomDet * >::const_iterator last) __attribute__((cold))
Definition: TIBRing.cc:63
ReferenceCountingPointer< BoundCylinder > theCylinder
Definition: TIBRing.h:90
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
Definition: TIBRing.cc:133
int theHelicity
Definition: TIBRing.h:91
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
Definition: TIBRing.cc:268
SubRingCrossings(int ci, int ni, float nd)
Definition: TIBRing.h:57
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
void searchNeighbors(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, const SubRingCrossings &crossings, float window, std::vector< DetGroup > &result) const __attribute__((hot))
Definition: TIBRing.cc:186
PeriodicBinFinderInPhi< float > BinFinderType
Definition: TIBRing.h:86
virtual const BoundCylinder & specificSurface() const
Return the ring surface as a.
Definition: TIBRing.h:41
~TIBRing() override __attribute__((cold))
Definition: TIBRing.cc:119
SubRingCrossings computeCrossings(const TrajectoryStateOnSurface &startingState, PropagationDirection propDir) const __attribute__((hot))
Definition: TIBRing.cc:227
void checkPeriodicity(std::vector< const GeomDet * >::const_iterator first, std::vector< const GeomDet * >::const_iterator last) __attribute__((cold))
Definition: TIBRing.cc:79