CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Phase2EndcapSubDisk.h
Go to the documentation of this file.
1 #ifndef TkDetLayers_Phase2EndcapSubDisk_h
2 #define TkDetLayers_Phase2EndcapSubDisk_h
3 
6 #include "TkDetUtil.h"
7 #include <array>
8 #include <atomic>
9 
15 #pragma GCC visibility push(hidden)
17 public:
18  Phase2EndcapSubDisk(std::vector<const Phase2EndcapSingleRing*>& rings);
19  ~Phase2EndcapSubDisk() override;
20 
21  // Default implementations would not properly manage memory
24 
25  // GeometricSearchDet interface
26 
27  const std::vector<const GeomDet*>& basicComponents() const override { return theBasicComps; }
28 
29  const std::vector<const GeometricSearchDet*>& components() const override;
30 
32  const Propagator& prop,
33  const MeasurementEstimator& est,
34  std::vector<DetGroup>& result) const override;
35 
36  // DetLayer interface
38 
39 private:
40  // private methods for the implementation of groupedCompatibleDets()
41  BoundDisk* computeDisk(const std::vector<const Phase2EndcapSingleRing*>& rings) const;
42 
43  bool overlapInR(const TrajectoryStateOnSurface& tsos,
44  int i,
45  double ymax,
46  std::vector<tkDetUtil::RingPar> ringParams) const;
47 
48  float computeWindowSize(const GeomDet* det,
49  const TrajectoryStateOnSurface& tsos,
50  const MeasurementEstimator& est) const;
51 
52  void fillRingPars(int i);
53 
54  std::vector<GeomDet const*> theBasicComps;
55  mutable std::atomic<std::vector<const GeometricSearchDet*>*> theComponents;
56  std::vector<const Phase2EndcapSingleRing*> theComps;
57  std::vector<tkDetUtil::RingPar> ringPars;
59 };
60 
61 #pragma GCC visibility pop
62 #endif
std::atomic< std::vector< const GeometricSearchDet * > * > theComponents
const std::vector< const GeometricSearchDet * > & components() const override
const std::vector< const GeomDet * > & basicComponents() const override
bool overlapInR(const TrajectoryStateOnSurface &tsos, int i, double ymax, std::vector< tkDetUtil::RingPar > ringParams) const
std::vector< const Phase2EndcapSingleRing * > theComps
constexpr SubDetector subDetGeom[21]
SubDetector subDetector() const override
Phase2EndcapSubDisk & operator=(const Phase2EndcapSubDisk &)=delete
std::vector< GeomDet const * > theBasicComps
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const
BoundDisk * computeDisk(const std::vector< const Phase2EndcapSingleRing *> &rings) const
std::vector< tkDetUtil::RingPar > ringPars
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override
Phase2EndcapSubDisk(std::vector< const Phase2EndcapSingleRing *> &rings)