CMS 3D CMS Logo

TIDLayer.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_TIDLayer_h
2 #define TkDetLayers_TIDLayer_h
3 
4 
6 #include "TIDRing.h"
7 #include <array>
8 #include <atomic>
9 
14 #pragma GCC visibility push(hidden)
15 class TIDLayer final : public RingedForwardLayer {
16  public:
17  TIDLayer(std::vector<const TIDRing*>& rings) __attribute__ ((cold));
18  ~TIDLayer() __attribute__ ((cold));
19 
20  //default implementations would not manage memory correctly
21  TIDLayer(const TIDLayer&) = delete;
22  TIDLayer& operator=(const TIDLayer&) = delete;
23 
24  // GeometricSearchDet interface
25 
26  virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComps;}
27 
28  virtual const std::vector<const GeometricSearchDet*>& components() const __attribute__ ((cold));
29 
31  const Propagator& prop,
32  const MeasurementEstimator& est,
33  std::vector<DetGroup> & result) const __attribute__ ((hot));
34 
35  // DetLayer interface
37 
38 
39  private:
40  // private methods for the implementation of groupedCompatibleDets()
41  BoundDisk* computeDisk( const std::vector<const TIDRing*>& rings) const __attribute__ ((cold));
42 
43  std::array<int,3> ringIndicesByCrossingProximity(const TrajectoryStateOnSurface& startingState,
44  const Propagator& prop ) const;
45 
46  // bool isCompatible( const TrajectoryStateOnSurface& ms,
47  // const MeasurementEstimator& est) const;
48 
49  int findClosest( const GlobalPoint[3] ) const __attribute__ ((hot));
50 
51  int findNextIndex( const GlobalPoint[3] , int ) const __attribute__ ((hot));
52 
53  bool overlapInR( const TrajectoryStateOnSurface& tsos, int i, double ymax) const __attribute__ ((hot));
54 
55 
56  float computeWindowSize( const GeomDet* det,
57  const TrajectoryStateOnSurface& tsos,
58  const MeasurementEstimator& est) const __attribute__ ((hot));
59 
60  void fillRingPars(int i) __attribute__ ((cold));
61 
62  private:
63  std::vector<GeomDet const*> theBasicComps;
64  mutable std::atomic<std::vector<const GeometricSearchDet*>*> theComponents;
65  const TIDRing* theComps[3];
68 
69 };
70 
71 
72 #pragma GCC visibility pop
73 #endif
virtual const std::vector< const GeometricSearchDet * > & components() const __attribute__((cold))
Definition: TIDLayer.cc:94
TIDLayer & operator=(const TIDLayer &)=delete
std::vector< GeomDet const * > theBasicComps
Definition: TIDLayer.h:63
std::array< int, 3 > ringIndicesByCrossingProximity(const TrajectoryStateOnSurface &startingState, const Propagator &prop) const
Definition: TIDLayer.cc:256
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:12
float thetaRingMin
Definition: TIDLayer.h:66
float thetaRingMax
Definition: TIDLayer.h:66
virtual const std::vector< const GeomDet * > & basicComponents() const
Definition: TIDLayer.h:26
RingPar ringPars[3]
Definition: TIDLayer.h:67
TIDLayer(std::vector< const TIDRing * > &rings) __attribute__((cold))
Definition: TIDLayer.cc:123
~TIDLayer() __attribute__((cold))
Definition: TIDLayer.cc:183
SubDetector subDetGeom[21]
std::atomic< std::vector< const GeometricSearchDet * > * > theComponents
Definition: TIDLayer.h:64
void fillRingPars(int i) __attribute__((cold))
Definition: TIDLayer.cc:111
bool overlapInR(const TrajectoryStateOnSurface &tsos, int i, double ymax) const __attribute__((hot))
Definition: TIDLayer.cc:360
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
Definition: TIDLayer.cc:308
BoundDisk * computeDisk(const std::vector< const TIDRing * > &rings) const __attribute__((cold))
Definition: TIDLayer.cc:153
const TIDRing * theComps[3]
Definition: TIDLayer.h:65
int findClosest(const GlobalPoint[3]) const __attribute__((hot))
Definition: TIDLayer.cc:320
int findNextIndex(const GlobalPoint[3], int) const __attribute__((hot))
Definition: TIDLayer.cc:337
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const __attribute__((hot))
Definition: TIDLayer.cc:192
virtual SubDetector subDetector() const
Definition: TIDLayer.h:36