|
ATLAS Offline Software
|
Go to the documentation of this file.
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)
58 class SiDetectorElement;
99 bool dumpSurfaces(std::vector<Trk::SurfaceIntersection>& surfaces)
const;
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.
void addPhiNeighbours(std::vector< Trk::SurfaceIntersection > &cSurfaces, InDetDD::SiDetectorElement &sElement) const
Ensure that the ATLAS eigen extensions are properly loaded.
Eigen::Matrix< double, 3, 1 > Vector3D
PixelOverlapDescriptor * clone() const
Pseudo-Constructor.
std::atomic< const PixelID * > m_pixIdHelper
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const