CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 GCC11_FINAL : public GeometricSearchDetWithGroups{
14  public:
15  TIBRing(std::vector<const GeomDet*>& theGeomDets);
16  ~TIBRing();
17 
18  // GeometricSearchDet interface
19  virtual const BoundSurface& surface() const {return *theCylinder;}
20 
21  virtual const std::vector<const GeomDet*>& basicComponents() const {return theDets;}
22 
23  virtual const std::vector<const GeometricSearchDet*>& components() const;
24 
25 
26  virtual std::pair<bool, TrajectoryStateOnSurface>
28  const MeasurementEstimator&) const;
29 
30 
31  virtual void
33  const Propagator& prop,
34  const MeasurementEstimator& est,
35  std::vector<DetGroup> & result) const;
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);
48 
49  void checkRadius(std::vector<const GeomDet*>::const_iterator first,
50  std::vector<const GeomDet*>::const_iterator last);
51 
52  void computeHelicity();
53 
54  // methods for groupedCompatibleDets implementation
57  SubRingCrossings( int ci, int ni, float nd) :
58  isValid_(true),closestIndex(ci), nextIndex(ni), nextDistance(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;
73 
75  computeCrossings( const TrajectoryStateOnSurface& startingState,
76  PropagationDirection propDir) const;
77 
78  float computeWindowSize( const GeomDet* det,
79  const TrajectoryStateOnSurface& tsos,
80  const MeasurementEstimator& est) const;
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
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const =0
def window
Definition: svgfig.py:642
virtual const BoundCylinder & specificSurface() const
Return the ring surface as a.
Definition: TIBRing.h:41
bool isValid_(value_type const &hash)
Definition: Hash.cc:72
ReferenceCountingPointer< BoundCylinder > theCylinder
Definition: TIBRing.h:90
virtual const std::vector< const GeometricSearchDet * > & components() const =0
Returns basic components, if any.
virtual void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
PropagationDirection
virtual const std::vector< const GeomDet * > & basicComponents() const
Definition: TIBRing.h:21
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
Definition: TkDetUtil.cc:31
PeriodicBinFinderInPhi< double > BinFinderType
Definition: TIBRing.h:86
tuple result
Definition: query.py:137
int theHelicity
Definition: TIBRing.h:91
bool first
Definition: L1TdeRCT.cc:79
virtual const BoundSurface & surface() const
The surface of the GeometricSearchDet.
Definition: TIBRing.h:19
volatile std::atomic< bool > shutdown_flag false
SubRingCrossings(int ci, int ni, float nd)
Definition: TIBRing.h:57
Unlimited (trivial) bounds.