9#ifndef INDETTRACKINGGEOMETRY_SCT_OVERLAPDESCRIPTOR_H
10#define INDETTRACKINGGEOMETRY_SCT_OVERLAPDESCRIPTOR_H
20#ifndef TRKDETDESCR_SIDETADDNEXTPHIETA
21#define TRKDETDESCR_SIDETADDNEXTPHIETA
23#define addSurface(cur, surfaces) \
25 surfaces.emplace_back( \
26 Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
27 &(cur->surface(cur->identify())))
29#define addOtherSide(cur, surfaces) \
30 if (cur && cur->otherSide()) \
31 surfaces.emplace_back( \
32 Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
33 &(cur->otherSide()->surface(cur->otherSide()->identify())))
35#define addNextInPhiOS(cur, surfaces) \
36 addSurface(cur->nextInPhi(), surfaces); \
37 addOtherSide(cur->nextInPhi(), surfaces)
39#define addPrevInPhiOS(cur, surfaces) \
40 addSurface(cur->prevInPhi(), surfaces); \
41 addOtherSide(cur->prevInPhi(), surfaces)
43#define addNextInEtaOS(cur, surfaces) \
44 addSurface(cur->nextInEta(), surfaces); \
45 addOtherSide(cur->nextInEta(), surfaces)
47#define addPrevInEtaOS(cur, surfaces) \
48 addSurface(cur->prevInEta(), surfaces); \
49 addOtherSide(cur->prevInEta(), surfaces)
92 bool dumpSurfaces(std::vector<Trk::SurfaceIntersection>& surfaces)
const;
Class to hold geometrical description of a silicon detector element.
bool reachableSurfaces(std::vector< Trk::SurfaceIntersection > &cSurfaces, const Trk::Surface &sf, const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
get the compatible surfaces
SCT_OverlapDescriptor * clone() const
Pseudo-Constructor.
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const
SCT_OverlapDescriptor(bool addMoreSurfaces=false, int eta_slices=4)
Constructor.
virtual ~SCT_OverlapDescriptor()=default
Destructor.
std::atomic< const SCT_ID * > m_sctIdHelper
This is an Identifier helper class for the SCT subdetector.
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.