CMS 3D CMS Logo

Phase2EndcapLayer.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_Phase2EndcapLayer_h
2 #define TkDetLayers_Phase2EndcapLayer_h
3 
5 #include "Phase2EndcapRing.h"
6 #include <array>
7 #include <atomic>
8 
14 #pragma GCC visibility push(hidden)
15 class Phase2EndcapLayer final : public RingedForwardLayer {
16 public:
17  Phase2EndcapLayer(std::vector<const Phase2EndcapRing*>& rings, const bool isOT) __attribute__((cold));
18  ~Phase2EndcapLayer() override __attribute__((cold));
19 
20  // Default implementations would not properly manage memory
21  Phase2EndcapLayer(const Phase2EndcapLayer&) = delete;
23 
24  // GeometricSearchDet interface
25 
26  const std::vector<const GeomDet*>& basicComponents() const override { return theBasicComps; }
27 
28  const std::vector<const GeometricSearchDet*>& components() const override __attribute__((cold));
29 
31  const Propagator& prop,
33  std::vector<DetGroup>& result) const override __attribute__((hot));
34 
35  // DetLayer interface
36  SubDetector subDetector() const override {
37  if (isOuterTracker)
39  else
41  }
42 
43 private:
44  // private methods for the implementation of groupedCompatibleDets()
45  BoundDisk* computeDisk(const std::vector<const Phase2EndcapRing*>& rings) const __attribute__((cold));
46 
47  std::array<int, 3> ringIndicesByCrossingProximity(const TrajectoryStateOnSurface& startingState,
48  const Propagator& prop) const;
49 
50  // bool isCompatible( const TrajectoryStateOnSurface& ms,
51  // const MeasurementEstimator& est) const;
52 
53  std::array<int, 3> findThreeClosest(std::vector<GlobalPoint>) const __attribute__((hot));
54 
55  bool overlapInR(const TrajectoryStateOnSurface& tsos, int i, double ymax) const __attribute__((hot));
56 
57  float computeWindowSize(const GeomDet* det,
58  const TrajectoryStateOnSurface& tsos,
59  const MeasurementEstimator& est) const __attribute__((hot));
60 
61  void fillRingPars(int i) __attribute__((cold));
62 
63 private:
64  std::vector<GeomDet const*> theBasicComps;
65  const bool isOuterTracker;
66  mutable std::atomic<std::vector<const GeometricSearchDet*>*> theComponents;
67  std::vector<const Phase2EndcapRing*> theComps;
68  struct RingPar {
70  };
71  std::vector<RingPar> ringPars;
73 };
74 
75 #pragma GCC visibility pop
76 #endif
GeomDetEnumerators::SubDetector
SubDetector
Definition: GeomDetEnumerators.h:10
MeasurementEstimator
Definition: MeasurementEstimator.h:19
mps_fire.i
i
Definition: mps_fire.py:355
GeomDet
Definition: GeomDet.h:27
Phase2EndcapLayer
Definition: Phase2EndcapLayer.h:15
Phase2EndcapLayer::fillRingPars
void fillRingPars(int i) __attribute__((cold))
Definition: Phase2EndcapLayer.cc:35
Phase2EndcapLayer::overlapInR
bool overlapInR(const TrajectoryStateOnSurface &tsos, int i, double ymax) const __attribute__((hot))
Definition: Phase2EndcapLayer.cc:307
Phase2EndcapLayer::computeWindowSize
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
Definition: Phase2EndcapLayer.cc:268
Phase2EndcapLayer::findThreeClosest
std::array< int, 3 > findThreeClosest(std::vector< GlobalPoint >) const __attribute__((hot))
Definition: Phase2EndcapLayer.cc:276
Phase2EndcapLayer::theComps
std::vector< const Phase2EndcapRing * > theComps
Definition: Phase2EndcapLayer.h:67
Phase2EndcapLayer::groupedCompatibleDetsV
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
Definition: Phase2EndcapLayer.cc:99
watchdog.const
const
Definition: watchdog.py:83
BoundDisk
Propagator
Definition: Propagator.h:44
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
Phase2EndcapLayer::theComponents
std::atomic< std::vector< const GeometricSearchDet * > * > theComponents
Definition: Phase2EndcapLayer.h:66
Phase2EndcapLayer::subDetector
SubDetector subDetector() const override
Definition: Phase2EndcapLayer.h:36
L1TOccupancyClient_cfi.ymax
ymax
Definition: L1TOccupancyClient_cfi.py:43
Phase2EndcapLayer::~Phase2EndcapLayer
~Phase2EndcapLayer() override __attribute__((cold))
Definition: Phase2EndcapLayer.cc:92
Phase2EndcapLayer::operator=
Phase2EndcapLayer & operator=(const Phase2EndcapLayer &)=delete
Phase2EndcapLayer::RingPar::thetaRingMax
float thetaRingMax
Definition: Phase2EndcapLayer.h:69
GeomDetEnumerators::P2OTEC
Definition: GeomDetEnumerators.h:24
Phase2EndcapLayer::isOuterTracker
const bool isOuterTracker
Definition: Phase2EndcapLayer.h:65
Phase2EndcapLayer::theRingSize
int theRingSize
Definition: Phase2EndcapLayer.h:72
Phase2EndcapLayer::RingPar::thetaRingMin
float thetaRingMin
Definition: Phase2EndcapLayer.h:69
__attribute__
float __attribute__((vector_size(8))) cms_float32x2_t
Definition: ExtVec.h:12
Phase2EndcapLayer::computeDisk
BoundDisk * computeDisk(const std::vector< const Phase2EndcapRing * > &rings) const __attribute__((cold))
Definition: Phase2EndcapLayer.cc:68
Phase2EndcapLayer::Phase2EndcapLayer
Phase2EndcapLayer(std::vector< const Phase2EndcapRing * > &rings, const bool isOT) __attribute__((cold))
Definition: Phase2EndcapLayer.cc:46
Phase2EndcapLayer::theBasicComps
std::vector< GeomDet const * > theBasicComps
Definition: Phase2EndcapLayer.h:64
RingedForwardLayer
Phase2EndcapLayer::ringPars
std::vector< RingPar > ringPars
Definition: Phase2EndcapLayer.h:71
RingedForwardLayer.h
Phase2EndcapLayer::RingPar
Definition: Phase2EndcapLayer.h:68
std
Definition: JetResolutionObject.h:76
GeomDetEnumerators::subDetGeom
constexpr SubDetector subDetGeom[21]
Definition: GeomDetEnumerators.h:40
DetGroup
Definition: DetGroup.h:41
mps_fire.result
result
Definition: mps_fire.py:303
Phase2EndcapLayer::RingPar::theRingR
float theRingR
Definition: Phase2EndcapLayer.h:69
Phase2EndcapLayer::basicComponents
const std::vector< const GeomDet * > & basicComponents() const override
Definition: Phase2EndcapLayer.h:26
Phase2EndcapLayer::ringIndicesByCrossingProximity
std::array< int, 3 > ringIndicesByCrossingProximity(const TrajectoryStateOnSurface &startingState, const Propagator &prop) const
Definition: Phase2EndcapLayer.cc:228
Phase2EndcapLayer::components
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
Definition: Phase2EndcapLayer.cc:20
GeomDetEnumerators::P2PXEC
Definition: GeomDetEnumerators.h:28
Phase2EndcapRing.h