ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
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
72
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
GeoPrimitives.h
Intersection.h
OverlapDescriptor.h
InDetDD::SiDetectorElement
Class to hold geometrical description of a silicon detector element.
Definition
SiDetectorElement.h:109
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
InDet::SCT_OverlapDescriptor::m_addMoreSurfaces
bool m_addMoreSurfaces
Definition
SCT_OverlapDescriptor.h:94
InDet::SCT_OverlapDescriptor::m_etaSlices
int m_etaSlices
Definition
SCT_OverlapDescriptor.h:95
InDet::SCT_OverlapDescriptor::dumpSurfaces
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const
Definition
SCT_OverlapDescriptor.cxx:141
InDet::SCT_OverlapDescriptor::SCT_OverlapDescriptor
SCT_OverlapDescriptor(bool addMoreSurfaces=false, int eta_slices=4)
Constructor.
Definition
SCT_OverlapDescriptor.cxx:20
InDet::SCT_OverlapDescriptor::~SCT_OverlapDescriptor
virtual ~SCT_OverlapDescriptor()=default
Destructor.
InDet::SCT_OverlapDescriptor::m_sctIdHelper
std::atomic< const SCT_ID * > m_sctIdHelper
Definition
SCT_OverlapDescriptor.h:96
InDet::SCT_OverlapDescriptor::m_robustMode
bool m_robustMode
Definition
SCT_OverlapDescriptor.h:93
SCT_ID
This is an Identifier helper class for the SCT subdetector.
Definition
SCT_ID.h:68
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
Generated on
for ATLAS Offline Software by
1.17.0