9#ifndef INDETTRACKINGGEOMETRY_PIXELOVERLAPDESCRIPTOR_H
10#define INDETTRACKINGGEOMETRY_PIXELOVERLAPDESCRIPTOR_H
21#ifndef TRKDETDESCR_SIDETADDNEXTPHIETA
22#define TRKDETDESCR_SIDETADDNEXTPHIETA
24#define addSurface(cur, surfaces) \
26 surfaces.emplace_back( \
27 Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
28 &(cur->surface(cur->identify())))
30#define addOtherSide(cur, surfaces) \
31 if (cur && cur->otherSide()) \
32 surfaces.emplace_back( \
33 Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
34 &(cur->otherSide()->surface(cur->otherSide()->identify())))
36#define addNextInPhi(cur, surfaces) \
37 addSurface(cur->nextInPhi(), surfaces); \
38 addOtherSide(cur->nextInPhi(), surfaces)
40#define addPrevInPhi(cur, surfaces) \
41 addSurface(cur->prevInPhi(), surfaces); \
42 addOtherSide(cur->prevInPhi(), surfaces)
44#define addNextInEta(cur, surfaces) \
45 addSurface(cur->nextInEta(), surfaces); \
46 addOtherSide(cur->nextInEta(), surfaces)
48#define addPrevInEta(cur, surfaces) \
49 addSurface(cur->prevInEta(), surfaces); \
50 addOtherSide(cur->prevInEta(), surfaces)
99 bool dumpSurfaces(std::vector<Trk::SurfaceIntersection>& surfaces)
const;
Class to hold geometrical description of a silicon detector element.
Class to describe overlaps in the pixel detector, it extends the Trk::OverlapDescriptor base class.
PixelOverlapDescriptor(bool addMoreSurfaces=false, int eta_slices=3, int phi_slices=1)
Constructor (area restriction, LC check)
bool reachableSurfaces(std::vector< Trk::SurfaceIntersection > &cSurfaces, const Trk::Surface &sf, const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
get the compatible surfaces
virtual ~PixelOverlapDescriptor()
Destructor.
PixelOverlapDescriptor * clone() const
Pseudo-Constructor.
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const
std::atomic< const PixelID * > m_pixIdHelper
void addPhiNeighbours(std::vector< Trk::SurfaceIntersection > &cSurfaces, InDetDD::SiDetectorElement &sElement) const
This is an Identifier helper class for the Pixel 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.