ATLAS Offline Software
HGTD_OverlapDescriptor.h
Go to the documentation of this file.
1 
2 /*
3  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4 */
5 
7 // HGTD_OverlapDescriptor.h, (c) ATLAS Detector software
9 
10 #ifndef HGTDET_HGTDTRACKINGGEOMETRY_HGTDOVERLAPDESCRIPTOR
11 #define HGTDET_HGTDTRACKINGGEOMETRY_HGTDOVERLAPDESCRIPTOR
12 
13 // Trk
15 // Trk inlcude
17 // STL include
18 #include <atomic>
19 
20 namespace Trk {
21  class Surface;
22 }
23 
24 namespace InDetDD {
25  class HGTD_DetectorElement;
26 }
27 
28 class HGTD_ID;
29 
40 public:
41 
43  HGTD_OverlapDescriptor(const Trk::BinnedArray<Trk::Surface>* bin_array = nullptr,
44  std::vector < float > valuesR = {},
45  std::vector < std::vector< float> > valuesPhi = {},
46  int nStepsR=3, int nStepsPhi=10);
47 
50  }
51 
54 
57 
59  virtual HGTD_OverlapDescriptor* clone() const override;
60 
66  bool reachableSurfaces(std::vector<Trk::SurfaceIntersection>& surfaces,
67  const Trk::Surface& sf,
68  const Amg::Vector3D& pos,
69  const Amg::Vector3D& dir) const override;
70 
71 private:
72  bool dumpSurfaces(std::vector<Trk::SurfaceIntersection>& surfaces) const;
73 
75  std::vector < float > m_valuesR;
76  std::vector < std::vector< float> > m_valuesPhi;
77  int m_nStepsR;
79  mutable std::atomic<const HGTD_ID*> m_hgtdIdHelper{nullptr};
80 
81 };
82 
83 
85  return new HGTD_OverlapDescriptor();
86 }
87 
88 #endif // end of HGTDET_HGTDTRACKINGGEOMETRY_HGTDOVERLAPDESCRIPTOR
HGTD_OverlapDescriptor::m_valuesR
std::vector< float > m_valuesR
Definition: HGTD_OverlapDescriptor.h:75
HGTD_OverlapDescriptor::operator=
HGTD_OverlapDescriptor & operator=(const HGTD_OverlapDescriptor &)=delete
Delete assignment.
HGTD_OverlapDescriptor::m_nStepsPhi
int m_nStepsPhi
Definition: HGTD_OverlapDescriptor.h:78
BinnedArray.h
HGTD_OverlapDescriptor::dumpSurfaces
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const
Definition: HGTD_OverlapDescriptor.cxx:88
OverlapDescriptor.h
HGTD_OverlapDescriptor::m_valuesPhi
std::vector< std::vector< float > > m_valuesPhi
Definition: HGTD_OverlapDescriptor.h:76
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
HGTD_OverlapDescriptor::~HGTD_OverlapDescriptor
virtual ~HGTD_OverlapDescriptor()
Destructor.
Definition: HGTD_OverlapDescriptor.h:49
HGTD_OverlapDescriptor::HGTD_OverlapDescriptor
HGTD_OverlapDescriptor(const Trk::BinnedArray< Trk::Surface > *bin_array=nullptr, std::vector< float > valuesR={}, std::vector< std::vector< float > > valuesPhi={}, int nStepsR=3, int nStepsPhi=10)
Constructor.
Definition: HGTD_OverlapDescriptor.cxx:24
HGTD_OverlapDescriptor::HGTD_OverlapDescriptor
HGTD_OverlapDescriptor(const HGTD_OverlapDescriptor &)=delete
Delete copy.
HGTD_OverlapDescriptor::clone
virtual HGTD_OverlapDescriptor * clone() const override
Pseudo-Constructor.
Definition: HGTD_OverlapDescriptor.h:84
HGTD_OverlapDescriptor
Definition: HGTD_OverlapDescriptor.h:39
HGTD_ID
Definition: HGTD_ID.h:47
beamspotman.dir
string dir
Definition: beamspotman.py:623
HGTD_OverlapDescriptor::m_hgtdIdHelper
std::atomic< const HGTD_ID * > m_hgtdIdHelper
Definition: HGTD_OverlapDescriptor.h:79
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::OverlapDescriptor
Definition: OverlapDescriptor.h:41
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
HGTD_OverlapDescriptor::m_nStepsR
int m_nStepsR
Definition: HGTD_OverlapDescriptor.h:77
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
Trk::BinnedArray< Trk::Surface >
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
HGTD_OverlapDescriptor::m_binnedArray
const Trk::BinnedArray< Trk::Surface > * m_binnedArray
Definition: HGTD_OverlapDescriptor.h:74
HGTD_OverlapDescriptor::reachableSurfaces
bool reachableSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces, const Trk::Surface &sf, const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override
get the compatible surfaces
Definition: HGTD_OverlapDescriptor.cxx:36