CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Phase2OTECRingedLayer.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_Phase2OTECRingedLayer_h
2 #define TkDetLayers_Phase2OTECRingedLayer_h
3 
4 #define NOTECRINGS 15 // FIXME: for sure to be fixed. Hopefully a better algorithm would not require looking for compatible hits in all the layers !!
5 
7 #include "Phase2OTECRing.h"
8 #include <array>
9 #include <atomic>
10 
15 #pragma GCC visibility push(hidden)
17  public:
18  Phase2OTECRingedLayer(std::vector<const Phase2OTECRing*>& rings) __attribute__ ((cold));
20 
21  // Default implementations would not properly manage memory
24 
25  // GeometricSearchDet interface
26 
27  virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComps;}
28 
29  virtual const std::vector<const GeometricSearchDet*>& components() const __attribute__ ((cold));
30 
32  const Propagator& prop,
34  std::vector<DetGroup> & result) const __attribute__ ((hot));
35 
36  // DetLayer interface
38 
39 
40  private:
41  // private methods for the implementation of groupedCompatibleDets()
42  BoundDisk* computeDisk( const std::vector<const Phase2OTECRing*>& rings) const __attribute__ ((cold));
43 
44  std::array<int,3> ringIndicesByCrossingProximity(const TrajectoryStateOnSurface& startingState,
45  const Propagator& prop ) const;
46 
47  // bool isCompatible( const TrajectoryStateOnSurface& ms,
48  // const MeasurementEstimator& est) const;
49 
50  std::array<int,3> findThreeClosest( const GlobalPoint[NOTECRINGS] ) const __attribute__ ((hot));
51 
52  bool overlapInR( const TrajectoryStateOnSurface& tsos, int i, double ymax) const __attribute__ ((hot));
53 
54 
55  float computeWindowSize( const GeomDet* det,
56  const TrajectoryStateOnSurface& tsos,
57  const MeasurementEstimator& est) const __attribute__ ((hot));
58 
59  void fillRingPars(int i) __attribute__ ((cold));
60 
61  private:
62  std::vector<GeomDet const*> theBasicComps;
63  mutable std::atomic<std::vector<const GeometricSearchDet*>*> theComponents;
67 
68 };
69 
70 
71 #pragma GCC visibility pop
72 #endif
void fillRingPars(int i) __attribute__((cold))
int i
Definition: DBlmapReader.cc:9
#define GCC11_FINAL
Phase2OTECRingedLayer & operator=(const Phase2OTECRingedLayer &)=delete
const Phase2OTECRing * theComps[15]
virtual const std::vector< const GeometricSearchDet * > & components() const __attribute__((cold))
std::array< int, 3 > findThreeClosest(const GlobalPoint[15]) const __attribute__((hot))
BoundDisk * computeDisk(const std::vector< const Phase2OTECRing * > &rings) const __attribute__((cold))
tuple result
Definition: query.py:137
Phase2OTECRingedLayer(std::vector< const Phase2OTECRing * > &rings) __attribute__((cold))
bool overlapInR(const TrajectoryStateOnSurface &tsos, int i, double ymax) const __attribute__((hot))
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
SubDetector subDetGeom[18]
float __attribute__((vector_size(8))) float32x2_t
Definition: ExtVec.h:12
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const __attribute__((hot))
string const
Definition: compareJSON.py:14
std::array< int, 3 > ringIndicesByCrossingProximity(const TrajectoryStateOnSurface &startingState, const Propagator &prop) const
std::atomic< std::vector< const GeometricSearchDet * > * > theComponents
virtual const std::vector< const GeomDet * > & basicComponents() const
#define NOTECRINGS
virtual SubDetector subDetector() const
std::vector< GeomDet const * > theBasicComps
~Phase2OTECRingedLayer() __attribute__((cold))