CMS 3D CMS Logo

TIDLayer.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_TIDLayer_h
2 #define TkDetLayers_TIDLayer_h
3 
5 #include "TIDRing.h"
6 #include <array>
7 #include <atomic>
8 
13 #pragma GCC visibility push(hidden)
14 class TIDLayer final : public RingedForwardLayer {
15 public:
16  TIDLayer(std::vector<const TIDRing*>& rings) __attribute__((cold));
17  ~TIDLayer() override __attribute__((cold));
18 
19  //default implementations would not manage memory correctly
20  TIDLayer(const TIDLayer&) = delete;
21  TIDLayer& operator=(const TIDLayer&) = delete;
22 
23  // GeometricSearchDet interface
24 
25  const std::vector<const GeomDet*>& basicComponents() const override { return theBasicComps; }
26 
27  const std::vector<const GeometricSearchDet*>& components() const override __attribute__((cold));
28 
30  const Propagator& prop,
32  std::vector<DetGroup>& result) const override __attribute__((hot));
33 
34  // DetLayer interface
36 
37 private:
38  // private methods for the implementation of groupedCompatibleDets()
39  BoundDisk* computeDisk(const std::vector<const TIDRing*>& rings) const __attribute__((cold));
40 
41  std::array<int, 3> ringIndicesByCrossingProximity(const TrajectoryStateOnSurface& startingState,
42  const Propagator& prop) const;
43 
44  // bool isCompatible( const TrajectoryStateOnSurface& ms,
45  // const MeasurementEstimator& est) const;
46 
47  int findClosest(const GlobalPoint[3]) const __attribute__((hot));
48 
49  int findNextIndex(const GlobalPoint[3], int) const __attribute__((hot));
50 
51  bool overlapInR(const TrajectoryStateOnSurface& tsos, int i, double ymax) const __attribute__((hot));
52 
53  float computeWindowSize(const GeomDet* det,
54  const TrajectoryStateOnSurface& tsos,
55  const MeasurementEstimator& est) const __attribute__((hot));
56 
57  void fillRingPars(int i) __attribute__((cold));
58 
59 private:
60  std::vector<GeomDet const*> theBasicComps;
61  mutable std::atomic<std::vector<const GeometricSearchDet*>*> theComponents;
62  const TIDRing* theComps[3];
63  struct RingPar {
65  };
67 };
68 
69 #pragma GCC visibility pop
70 #endif
TIDLayer::theComps
const TIDRing * theComps[3]
Definition: TIDLayer.h:62
GeomDetEnumerators::SubDetector
SubDetector
Definition: GeomDetEnumerators.h:10
MeasurementEstimator
Definition: MeasurementEstimator.h:19
mps_fire.i
i
Definition: mps_fire.py:355
TIDLayer::~TIDLayer
~TIDLayer() override __attribute__((cold))
Definition: TIDLayer.cc:149
TIDLayer::fillRingPars
void fillRingPars(int i) __attribute__((cold))
Definition: TIDLayer.cc:95
GeomDet
Definition: GeomDet.h:27
GeomDetEnumerators::TID
Definition: GeomDetEnumerators.h:15
TIDLayer::ringIndicesByCrossingProximity
std::array< int, 3 > ringIndicesByCrossingProximity(const TrajectoryStateOnSurface &startingState, const Propagator &prop) const
Definition: TIDLayer.cc:212
TIDLayer::computeDisk
BoundDisk * computeDisk(const std::vector< const TIDRing * > &rings) const __attribute__((cold))
Definition: TIDLayer.cc:125
TIDLayer::RingPar::thetaRingMin
float thetaRingMin
Definition: TIDLayer.h:64
TIDLayer::groupedCompatibleDetsV
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
Definition: TIDLayer.cc:156
TIDLayer::RingPar::thetaRingMax
float thetaRingMax
Definition: TIDLayer.h:64
TIDLayer::RingPar::theRingR
float theRingR
Definition: TIDLayer.h:64
TIDLayer::computeWindowSize
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
Definition: TIDLayer.cc:260
watchdog.const
const
Definition: watchdog.py:83
BoundDisk
Propagator
Definition: Propagator.h:44
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
TIDLayer::basicComponents
const std::vector< const GeomDet * > & basicComponents() const override
Definition: TIDLayer.h:25
L1TOccupancyClient_cfi.ymax
ymax
Definition: L1TOccupancyClient_cfi.py:43
TIDLayer
Definition: TIDLayer.h:14
TIDLayer::ringPars
RingPar ringPars[3]
Definition: TIDLayer.h:66
Point3DBase< float, GlobalTag >
TIDRing.h
__attribute__
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:12
TIDLayer::subDetector
SubDetector subDetector() const override
Definition: TIDLayer.h:35
TIDRing
Definition: TIDRing.h:13
RingedForwardLayer
TIDLayer::theBasicComps
std::vector< GeomDet const * > theBasicComps
Definition: TIDLayer.h:60
TIDLayer::operator=
TIDLayer & operator=(const TIDLayer &)=delete
RingedForwardLayer.h
std
Definition: JetResolutionObject.h:76
TIDLayer::theComponents
std::atomic< std::vector< const GeometricSearchDet * > * > theComponents
Definition: TIDLayer.h:61
TIDLayer::overlapInR
bool overlapInR(const TrajectoryStateOnSurface &tsos, int i, double ymax) const __attribute__((hot))
Definition: TIDLayer.cc:301
GeomDetEnumerators::subDetGeom
constexpr SubDetector subDetGeom[21]
Definition: GeomDetEnumerators.h:40
TIDLayer::components
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Definition: TIDLayer.cc:79
TIDLayer::TIDLayer
TIDLayer(std::vector< const TIDRing * > &rings) __attribute__((cold))
Definition: TIDLayer.cc:104
DetGroup
Definition: DetGroup.h:41
mps_fire.result
result
Definition: mps_fire.py:303
TIDLayer::findClosest
int findClosest(const GlobalPoint[3]) const __attribute__((hot))
Definition: TIDLayer.cc:268
TIDLayer::RingPar
Definition: TIDLayer.h:63
TIDLayer::findNextIndex
int findNextIndex(const GlobalPoint[3], int) const __attribute__((hot))
Definition: TIDLayer.cc:283