ATLAS Offline Software
InnerDetector
InDetDetDescr
InDetTrackingGeometry
InDetTrackingGeometry
SCT_OverlapDescriptor.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
// SCT_OverlapDescriptor.h, (c) ATLAS Detector software
8
9
#ifndef INDETTRACKINGGEOMETRY_SCT_OVERLAPDESCRIPTOR_H
10
#define INDETTRACKINGGEOMETRY_SCT_OVERLAPDESCRIPTOR_H
11
12
// Amg
13
#include "
GeoPrimitives/GeoPrimitives.h
"
14
// Trk
15
#include "
TrkGeometry/OverlapDescriptor.h
"
16
#include "
TrkDetDescrUtils/Intersection.h
"
17
// STL include
18
#include <atomic>
19
20
#ifndef TRKDETDESCR_SIDETADDNEXTPHIETA
21
#define TRKDETDESCR_SIDETADDNEXTPHIETA
22
23
#define addSurface(cur, surfaces) \
24
if (cur) \
25
surfaces.emplace_back( \
26
Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
27
&(cur->surface(cur->identify())))
28
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())))
34
35
#define addNextInPhiOS(cur, surfaces) \
36
addSurface(cur->nextInPhi(), surfaces); \
37
addOtherSide(cur->nextInPhi(), surfaces)
38
39
#define addPrevInPhiOS(cur, surfaces) \
40
addSurface(cur->prevInPhi(), surfaces); \
41
addOtherSide(cur->prevInPhi(), surfaces)
42
43
#define addNextInEtaOS(cur, surfaces) \
44
addSurface(cur->nextInEta(), surfaces); \
45
addOtherSide(cur->nextInEta(), surfaces)
46
47
#define addPrevInEtaOS(cur, surfaces) \
48
addSurface(cur->prevInEta(), surfaces); \
49
addOtherSide(cur->prevInEta(), surfaces)
50
#endif
51
52
namespace
Trk
{
53
class
Surface
;
54
}
55
56
57
namespace
InDetDD
{
58
class
SiDetectorElement;
59
}
60
61
class
SCT_ID
;
62
63
namespace
InDet
{
64
73
class
SCT_OverlapDescriptor
:
public
Trk::OverlapDescriptor
{
74
public
:
75
77
SCT_OverlapDescriptor
(
bool
addMoreSurfaces =
false
,
int
eta_slices = 4);
78
80
virtual
~SCT_OverlapDescriptor
() =
default
;
81
83
SCT_OverlapDescriptor
*
clone
()
const
;
84
86
bool
reachableSurfaces
(std::vector<Trk::SurfaceIntersection>& cSurfaces,
87
const
Trk::Surface
&
sf
,
88
const
Amg::Vector3D
&
pos
,
89
const
Amg::Vector3D
&
dir
)
const
;
90
91
private
:
92
bool
dumpSurfaces
(std::vector<Trk::SurfaceIntersection>& surfaces)
const
;
93
bool
m_robustMode
;
94
bool
m_addMoreSurfaces
;
95
int
m_etaSlices
;
96
mutable
std::atomic<const SCT_ID*>
m_sctIdHelper
{
nullptr
};
97
};
98
99
inline
SCT_OverlapDescriptor
*
SCT_OverlapDescriptor::clone
()
const
{
return
new
SCT_OverlapDescriptor
(); }
100
101
}
102
103
#endif
InDet::SCT_OverlapDescriptor::dumpSurfaces
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const
Definition:
SCT_OverlapDescriptor.cxx:141
InDet
Primary Vertex Finder.
Definition:
VP1ErrorUtils.h:36
InDet::SCT_OverlapDescriptor
Definition:
SCT_OverlapDescriptor.h:73
InDet::SCT_OverlapDescriptor::m_addMoreSurfaces
bool m_addMoreSurfaces
Definition:
SCT_OverlapDescriptor.h:94
OverlapDescriptor.h
Surface
Definition:
Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
InDet::SCT_OverlapDescriptor::SCT_OverlapDescriptor
SCT_OverlapDescriptor(bool addMoreSurfaces=false, int eta_slices=4)
Constructor.
Definition:
SCT_OverlapDescriptor.cxx:20
InDet::SCT_OverlapDescriptor::m_robustMode
bool m_robustMode
Definition:
SCT_OverlapDescriptor.h:93
InDet::SCT_OverlapDescriptor::~SCT_OverlapDescriptor
virtual ~SCT_OverlapDescriptor()=default
Destructor.
GeoPrimitives.h
InDet::SCT_OverlapDescriptor::m_sctIdHelper
std::atomic< const SCT_ID * > m_sctIdHelper
Definition:
SCT_OverlapDescriptor.h:96
InDet::SCT_OverlapDescriptor::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:
SCT_OverlapDescriptor.cxx:28
InDet::SCT_OverlapDescriptor::clone
SCT_OverlapDescriptor * clone() const
Pseudo-Constructor.
Definition:
SCT_OverlapDescriptor.h:99
beamspotman.dir
string dir
Definition:
beamspotman.py:623
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition:
FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition:
GeoPrimitives.h:47
Trk::OverlapDescriptor
Definition:
OverlapDescriptor.h:41
python.LumiBlobConversion.pos
pos
Definition:
LumiBlobConversion.py:18
SCT_ID
Definition:
SCT_ID.h:68
mapkey::sf
@ sf
Definition:
TElectronEfficiencyCorrectionTool.cxx:38
InDetDD
Message Stream Member.
Definition:
FakeTrackBuilder.h:8
Trk::Surface
Definition:
Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Intersection.h
InDet::SCT_OverlapDescriptor::m_etaSlices
int m_etaSlices
Definition:
SCT_OverlapDescriptor.h:95
Generated on Sun Dec 22 2024 21:17:44 for ATLAS Offline Software by
1.8.18