ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetDetDescr
InDetTrackingGeometry
InDetTrackingGeometry
DiscOverlapDescriptor.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
// DiscOverlapDescriptor.h, (c) ATLAS Detector software
8
9
#ifndef INDETTRACKINGGEOMETRY_DISCOVERLAPDESCRIPTOR_H
10
#define INDETTRACKINGGEOMETRY_DISCOVERLAPDESCRIPTOR_H
11
12
// Trk
13
#include "
TrkGeometry/OverlapDescriptor.h
"
14
15
// Trk inlcude
16
#include "
TrkDetDescrUtils/BinUtility.h
"
17
#include "
TrkDetDescrUtils/BinnedArray1D1D.h
"
18
#include "
TrkDetDescrUtils/Intersection.h
"
19
20
// STL include
21
#include <atomic>
22
23
#ifndef INDETTRACKINGGEOMETRY_DISCDETADDNEXTPHIETA
24
#define INDETTRACKINGGEOMETRY_DISCDETADDNEXTPHIETA
25
26
#define addSurfaceDO(cur, surfaces) \
27
surfaces.emplace_back( \
28
Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
29
&(cur->surface(cur->identify())))
30
31
#define addOtherSideDO(cur, surfaces) \
32
if (cur->otherSide()) \
33
surfaces.emplace_back( \
34
Trk::Intersection(Amg::Vector3D(0., 0., 0.), 0., true), \
35
&(cur->otherSide()->surface(cur->otherSide()->identify())))
36
37
#define addNextInPhiDO(cur, surfaces) \
38
addSurfaceDO(cur->nextInPhi(), surfaces); \
39
addOtherSideDO(cur->nextInPhi(), surfaces)
40
41
#define addPrevInPhiDO(cur, surfaces) \
42
addSurfaceDO(cur->prevInPhi(), surfaces); \
43
addOtherSideDO(cur->prevInPhi(), surfaces)
44
45
#define addNextInEtaDO(cur, surfaces) \
46
addSurfaceDO(cur->nextInEta(), surfaces); \
47
addOtherSideDO(cur->nextInEta(), surfaces)
48
49
#define addPrevInEtaDO(cur, surfaces) \
50
addSurfaceDO(cur->prevInEta(), surfaces); \
51
addOtherSideDO(cur->prevInEta(), surfaces)
52
53
#endif
// INDETTRACKINGGEOMETRY_DISCDETADDNEXTPHIETA
54
55
class
SCT_ID
;
56
class
PixelID
;
57
58
namespace
Trk
{
59
class
Surface;
60
}
61
62
namespace
InDetDD
{
63
class
SiDetectorElement
;
64
}
65
66
namespace
InDet
{
67
79
class
DiscOverlapDescriptor
:
public
Trk::OverlapDescriptor
{
80
public
:
81
DiscOverlapDescriptor
() =
default
;
83
DiscOverlapDescriptor
(
const
Trk::BinnedArray<Trk::Surface>
* bin_array,
84
const
std::vector<Trk::BinUtility>& singleBinUtils,
85
bool
isPixel =
false
);
87
virtual
~DiscOverlapDescriptor
() =
default
;
88
90
DiscOverlapDescriptor
(
const
DiscOverlapDescriptor
&) =
delete
;
91
93
DiscOverlapDescriptor
&
operator=
(
const
DiscOverlapDescriptor
&) =
delete
;
94
96
virtual
DiscOverlapDescriptor
*
clone
()
const override
;
97
103
bool
reachableSurfaces
(std::vector<Trk::SurfaceIntersection>& surfaces,
104
const
Trk::Surface
& sf,
105
const
Amg::Vector3D
& pos,
106
const
Amg::Vector3D
& dir)
const override
;
107
108
private
:
109
bool
dumpSurfaces
(std::vector<Trk::SurfaceIntersection>& surfaces)
const
;
110
111
const
Trk::BinnedArray<Trk::Surface>
*
m_bin_array
{
nullptr
};
112
std::vector<Trk::BinUtility>
m_singleBinUtils
{};
113
bool
m_pixelCase
{
false
};
114
};
115
116
inline
DiscOverlapDescriptor
*
DiscOverlapDescriptor::clone
()
const
{
return
new
DiscOverlapDescriptor
(); }
117
118
}
119
120
#endif
// INDETTRACKINGGEOMETRY_DISCOVERLAPDESCRIPTOR_H
BinUtility.h
BinnedArray1D1D.h
Intersection.h
OverlapDescriptor.h
InDetDD::SiDetectorElement
Class to hold geometrical description of a silicon detector element.
Definition
SiDetectorElement.h:109
InDet::DiscOverlapDescriptor::m_pixelCase
bool m_pixelCase
Definition
DiscOverlapDescriptor.h:113
InDet::DiscOverlapDescriptor::DiscOverlapDescriptor
DiscOverlapDescriptor()=default
InDet::DiscOverlapDescriptor::clone
virtual DiscOverlapDescriptor * clone() const override
Pseudo-Constructor.
Definition
DiscOverlapDescriptor.h:116
InDet::DiscOverlapDescriptor::operator=
DiscOverlapDescriptor & operator=(const DiscOverlapDescriptor &)=delete
Delete assignment.
InDet::DiscOverlapDescriptor::DiscOverlapDescriptor
DiscOverlapDescriptor(const DiscOverlapDescriptor &)=delete
Delete copy.
InDet::DiscOverlapDescriptor::m_singleBinUtils
std::vector< Trk::BinUtility > m_singleBinUtils
Definition
DiscOverlapDescriptor.h:112
InDet::DiscOverlapDescriptor::dumpSurfaces
bool dumpSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces) const
Definition
DiscOverlapDescriptor.cxx:239
InDet::DiscOverlapDescriptor::reachableSurfaces
bool reachableSurfaces(std::vector< Trk::SurfaceIntersection > &surfaces, const Trk::Surface &sf, const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override
get the compatible surfaces
Definition
DiscOverlapDescriptor.cxx:71
InDet::DiscOverlapDescriptor::m_bin_array
const Trk::BinnedArray< Trk::Surface > * m_bin_array
Definition
DiscOverlapDescriptor.h:111
InDet::DiscOverlapDescriptor::~DiscOverlapDescriptor
virtual ~DiscOverlapDescriptor()=default
Destructor.
PixelID
This is an Identifier helper class for the Pixel subdetector.
Definition
PixelID.h:69
SCT_ID
This is an Identifier helper class for the SCT subdetector.
Definition
SCT_ID.h:68
Trk::BinnedArray
Binned Array for avoiding map searches/.
Definition
BinnedArray.h:36
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