9#ifndef INDETTRACKINGGEOMETRY_DISCOVERLAPDESCRIPTOR_H
10#define INDETTRACKINGGEOMETRY_DISCOVERLAPDESCRIPTOR_H
23#ifndef INDETTRACKINGGEOMETRY_DISCDETADDNEXTPHIETA
24#define INDETTRACKINGGEOMETRY_DISCDETADDNEXTPHIETA
26#define addSurfaceDO(cur, surfaces) \
27 surfaces.emplace_back( \
28 Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
29 &(cur->surface(cur->identify())))
31#define addOtherSideDO(cur, surfaces) \
32 if (cur->otherSide()) \
33 surfaces.emplace_back( \
34 Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
35 &(cur->otherSide()->surface(cur->otherSide()->identify())))
37#define addNextInPhiDO(cur, surfaces) \
38 addSurfaceDO(cur->nextInPhi(), surfaces); \
39 addOtherSideDO(cur->nextInPhi(), surfaces)
41#define addPrevInPhiDO(cur, surfaces) \
42 addSurfaceDO(cur->prevInPhi(), surfaces); \
43 addOtherSideDO(cur->prevInPhi(), surfaces)
45#define addNextInEtaDO(cur, surfaces) \
46 addSurfaceDO(cur->nextInEta(), surfaces); \
47 addOtherSideDO(cur->nextInEta(), surfaces)
49#define addPrevInEtaDO(cur, surfaces) \
50 addSurfaceDO(cur->prevInEta(), surfaces); \
51 addOtherSideDO(cur->prevInEta(), surfaces)
84 const std::vector<Trk::BinUtility>& singleBinUtils,
85 bool isPixel =
false);
109 bool dumpSurfaces(std::vector<Trk::SurfaceIntersection>& surfaces)
const;
Class to hold geometrical description of a silicon detector element.
DiscOverlapDescriptor()=default
virtual DiscOverlapDescriptor * clone() const override
Pseudo-Constructor.
DiscOverlapDescriptor & operator=(const DiscOverlapDescriptor &)=delete
Delete assignment.
DiscOverlapDescriptor(const DiscOverlapDescriptor &)=delete
Delete copy.
std::vector< Trk::BinUtility > m_singleBinUtils
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const
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
const Trk::BinnedArray< Trk::Surface > * m_bin_array
virtual ~DiscOverlapDescriptor()=default
Destructor.
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the SCT subdetector.
Binned Array for avoiding map searches/.
BaseClass to be overloaded for describing overlaps and next-by elements for the sub-detector implemen...
Abstract Base Class for tracking surfaces.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.