ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetDetDescr
InDetTrackingGeometry
InDetTrackingGeometry
PixelOverlapDescriptor.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// PixelOverlapDescriptor.h, (c) ATLAS Detector software
8
9
#ifndef INDETTRACKINGGEOMETRY_PIXELOVERLAPDESCRIPTOR_H
10
#define INDETTRACKINGGEOMETRY_PIXELOVERLAPDESCRIPTOR_H
11
12
13
// Amg
14
#include "
GeoPrimitives/GeoPrimitives.h
"
15
// Trk
16
#include "
TrkGeometry/OverlapDescriptor.h
"
17
#include "
TrkDetDescrUtils/Intersection.h
"
18
// STL include
19
#include <atomic>
20
21
#ifndef TRKDETDESCR_SIDETADDNEXTPHIETA
22
#define TRKDETDESCR_SIDETADDNEXTPHIETA
23
24
#define addSurface(cur, surfaces) \
25
if (cur) \
26
surfaces.emplace_back( \
27
Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
28
&(cur->surface(cur->identify())))
29
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())))
35
36
#define addNextInPhi(cur, surfaces) \
37
addSurface(cur->nextInPhi(), surfaces); \
38
addOtherSide(cur->nextInPhi(), surfaces)
39
40
#define addPrevInPhi(cur, surfaces) \
41
addSurface(cur->prevInPhi(), surfaces); \
42
addOtherSide(cur->prevInPhi(), surfaces)
43
44
#define addNextInEta(cur, surfaces) \
45
addSurface(cur->nextInEta(), surfaces); \
46
addOtherSide(cur->nextInEta(), surfaces)
47
48
#define addPrevInEta(cur, surfaces) \
49
addSurface(cur->prevInEta(), surfaces); \
50
addOtherSide(cur->prevInEta(), surfaces)
51
#endif
52
53
namespace
Trk
{
54
class
Surface;
55
}
56
57
namespace
InDetDD
{
58
class
SiDetectorElement
;
59
}
60
61
class
PixelID
;
62
63
namespace
InDet
{
64
76
class
PixelOverlapDescriptor
:
public
Trk::OverlapDescriptor
{
77
public
:
78
80
PixelOverlapDescriptor
(
bool
addMoreSurfaces =
false
,
int
eta_slices = 3,
int
phi_slices = 1);
81
83
virtual
~PixelOverlapDescriptor
(){}
84
86
PixelOverlapDescriptor
*
clone
()
const
;
87
89
bool
reachableSurfaces
(std::vector<Trk::SurfaceIntersection>& cSurfaces,
90
const
Trk::Surface
& sf,
91
const
Amg::Vector3D
& pos,
92
const
Amg::Vector3D
& dir)
const
;
93
94
95
private
:
96
void
addPhiNeighbours
(std::vector<Trk::SurfaceIntersection>& cSurfaces,
97
InDetDD::SiDetectorElement
& sElement)
const
;
98
99
bool
dumpSurfaces
(std::vector<Trk::SurfaceIntersection>& surfaces)
const
;
100
101
bool
m_robustMode
;
102
bool
m_addMoreSurfaces
;
103
int
m_etaSlices
;
104
int
m_phiSlices
;
105
mutable
std::atomic<const PixelID*>
m_pixIdHelper
{
nullptr
};
106
};
107
108
109
inline
PixelOverlapDescriptor
*
PixelOverlapDescriptor::clone
()
const
{
return
new
PixelOverlapDescriptor
(); }
110
111
112
113
}
114
115
#endif
GeoPrimitives.h
Intersection.h
OverlapDescriptor.h
InDetDD::SiDetectorElement
Class to hold geometrical description of a silicon detector element.
Definition
SiDetectorElement.h:109
InDet::PixelOverlapDescriptor
Class to describe overlaps in the pixel detector, it extends the Trk::OverlapDescriptor base class.
Definition
PixelOverlapDescriptor.h:76
InDet::PixelOverlapDescriptor::PixelOverlapDescriptor
PixelOverlapDescriptor(bool addMoreSurfaces=false, int eta_slices=3, int phi_slices=1)
Constructor (area restriction, LC check).
Definition
PixelOverlapDescriptor.cxx:20
InDet::PixelOverlapDescriptor::reachableSurfaces
bool reachableSurfaces(std::vector< Trk::SurfaceIntersection > &cSurfaces, const Trk::Surface &sf, const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
get the compatible surfaces
Definition
PixelOverlapDescriptor.cxx:28
InDet::PixelOverlapDescriptor::m_etaSlices
int m_etaSlices
Definition
PixelOverlapDescriptor.h:103
InDet::PixelOverlapDescriptor::m_phiSlices
int m_phiSlices
Definition
PixelOverlapDescriptor.h:104
InDet::PixelOverlapDescriptor::~PixelOverlapDescriptor
virtual ~PixelOverlapDescriptor()
Destructor.
Definition
PixelOverlapDescriptor.h:83
InDet::PixelOverlapDescriptor::m_addMoreSurfaces
bool m_addMoreSurfaces
Definition
PixelOverlapDescriptor.h:102
InDet::PixelOverlapDescriptor::clone
PixelOverlapDescriptor * clone() const
Pseudo-Constructor.
Definition
PixelOverlapDescriptor.h:109
InDet::PixelOverlapDescriptor::dumpSurfaces
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const
Definition
PixelOverlapDescriptor.cxx:173
InDet::PixelOverlapDescriptor::m_robustMode
bool m_robustMode
Definition
PixelOverlapDescriptor.h:101
InDet::PixelOverlapDescriptor::m_pixIdHelper
std::atomic< const PixelID * > m_pixIdHelper
Definition
PixelOverlapDescriptor.h:105
InDet::PixelOverlapDescriptor::addPhiNeighbours
void addPhiNeighbours(std::vector< Trk::SurfaceIntersection > &cSurfaces, InDetDD::SiDetectorElement &sElement) const
PixelID
This is an Identifier helper class for the Pixel subdetector.
Definition
PixelID.h:69
Trk::OverlapDescriptor
BaseClass to be overloaded for describing overlaps and next-by elements for the sub-detector implemen...
Definition
OverlapDescriptor.h:41
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
InDetDD
Message Stream Member.
Definition
FakeTrackBuilder.h:8
InDet
Primary Vertex Finder.
Definition
VP1ErrorUtils.h:36
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0