ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkVolumes
TrkVolumes
PrismVolumeBounds.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// PrismVolumeBounds.h, (c) ATLAS Detector software
8
9
#ifndef TRKVOLUMES_PRISMVOLUMEBOUNDS_H
10
#define TRKVOLUMES_PRISMVOLUMEBOUNDS_H
11
12
// Trk
13
#include "
CxxUtils/CachedValue.h
"
14
#include "
GeoPrimitives/GeoPrimitives.h
"
15
#include "
TrkDetDescrUtils/ObjectsAccessor.h
"
16
#include "
TrkVolumes/VolumeBounds.h
"
17
class
MsgStream;
18
19
namespace
Trk
{
20
21
class
Surface
;
22
class
PlaneSurface
;
23
class
TriangleBounds
;
24
43
44
class
PrismVolumeBounds
final:
public
VolumeBounds
{
45
public
:
47
PrismVolumeBounds
();
48
50
PrismVolumeBounds
(std::vector<std::pair<float, float> > xyvtx,
51
float
hlengthz);
52
54
PrismVolumeBounds
(std::vector<std::pair<double, double> > xyvtx,
55
double
hlengthz);
56
58
PrismVolumeBounds
(
const
PrismVolumeBounds
& bobo);
59
61
virtual
~PrismVolumeBounds
();
62
64
PrismVolumeBounds
&
operator=
(
const
PrismVolumeBounds
& bobo);
65
67
PrismVolumeBounds
*
clone
()
const
override
final
;
68
71
bool
inside
(
const
Amg::Vector3D
&,
double
tol = 0.)
const
override
final
;
72
74
virtual
std::vector<std::unique_ptr<Trk::Surface>>
decomposeToSurfaces
75
(
const
Amg::Transform3D
& transform)
override
final
;
76
78
ObjectAccessor
boundarySurfaceAccessor
(
79
const
Amg::Vector3D
& gp,
const
Amg::Vector3D
& dir,
80
bool
forceInside =
false
)
const
override
final
;
81
83
const
std::vector<std::pair<double, double> >&
xyVertices
()
const
;
84
86
double
halflengthZ
()
const
;
87
89
MsgStream&
dump
(MsgStream& sl)
const
override
final
;
90
92
std::ostream&
dump
(std::ostream& sl)
const
override
final
;
93
94
private
:
96
std::unique_ptr<Trk::PlaneSurface>
sideSurf
(
const
Amg::Transform3D
&,
unsigned
int
,
97
unsigned
int
)
const
;
98
100
std::vector<std::pair<double, double> >
mirror_xyVtx
()
const
;
101
103
int
ordering
()
const
;
104
105
std::vector<std::pair<double, double> >
m_xyVtx
;
106
double
m_halfZ
;
107
Trk::TriangleBounds
*
m_baseBounds
;
108
CxxUtils::CachedValue<int>
m_ordering
;
109
112
Trk::EightObjectsAccessor
113
m_objectAccessor
;
114
};
115
116
inline
PrismVolumeBounds
*
PrismVolumeBounds::clone
()
const
{
117
return
new
PrismVolumeBounds
(*
this
);
118
}
119
120
inline
const
std::vector<std::pair<double, double> >&
PrismVolumeBounds::xyVertices
()
121
const
{
122
return
m_xyVtx
;
123
}
124
125
inline
double
PrismVolumeBounds::halflengthZ
()
const
{
return
m_halfZ
; }
126
127
inline
ObjectAccessor
PrismVolumeBounds::boundarySurfaceAccessor
(
128
const
Amg::Vector3D
&,
const
Amg::Vector3D
&,
bool
)
const
{
129
return
Trk::ObjectAccessor
(
m_objectAccessor
);
130
}
131
132
}
// namespace Trk
133
134
#endif
// TRKVOLUMES_PRISMVOLUMEBOUNDS_H
135
CachedValue.h
Cached value with atomic update.
GeoPrimitives.h
ObjectsAccessor.h
VolumeBounds.h
CxxUtils::CachedValue
Cached value with atomic update.
Definition
CachedValue.h:55
Trk::ObjectAccessor
Definition
ObjectAccessor.h:15
Trk::PlaneSurface
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
Definition
PlaneSurface.h:64
Trk::PrismVolumeBounds::operator=
PrismVolumeBounds & operator=(const PrismVolumeBounds &bobo)
Assignment operator.
Definition
PrismVolumeBounds.cxx:82
Trk::PrismVolumeBounds::mirror_xyVtx
std::vector< std::pair< double, double > > mirror_xyVtx() const
mirror the input vertices for down-side boundary
Definition
PrismVolumeBounds.cxx:206
Trk::PrismVolumeBounds::m_halfZ
double m_halfZ
halflength in z
Definition
PrismVolumeBounds.h:106
Trk::PrismVolumeBounds::xyVertices
const std::vector< std::pair< double, double > > & xyVertices() const
This method returns the set of xy generating vertices.
Definition
PrismVolumeBounds.h:120
Trk::PrismVolumeBounds::~PrismVolumeBounds
virtual ~PrismVolumeBounds()
Destructor.
Definition
PrismVolumeBounds.cxx:76
Trk::PrismVolumeBounds::m_objectAccessor
Trk::EightObjectsAccessor m_objectAccessor
There's only one single object Acessor for the moment has to be implemented if Cuboids are used more ...
Definition
PrismVolumeBounds.h:113
Trk::PrismVolumeBounds::PrismVolumeBounds
PrismVolumeBounds()
Default Constructor.
Definition
PrismVolumeBounds.cxx:24
Trk::PrismVolumeBounds::m_ordering
CxxUtils::CachedValue< int > m_ordering
cache vertex ordering
Definition
PrismVolumeBounds.h:108
Trk::PrismVolumeBounds::halflengthZ
double halflengthZ() const
This method returns the halflength in local z.
Definition
PrismVolumeBounds.h:125
Trk::PrismVolumeBounds::m_xyVtx
std::vector< std::pair< double, double > > m_xyVtx
generating xy vertices
Definition
PrismVolumeBounds.h:105
Trk::PrismVolumeBounds::clone
PrismVolumeBounds * clone() const override final
Virtual constructor.
Definition
PrismVolumeBounds.h:116
Trk::PrismVolumeBounds::m_baseBounds
Trk::TriangleBounds * m_baseBounds
base xy bounds
Definition
PrismVolumeBounds.h:107
Trk::PrismVolumeBounds::ordering
int ordering() const
assess ordering of vertices
Definition
PrismVolumeBounds.cxx:219
Trk::PrismVolumeBounds::decomposeToSurfaces
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform) override final
Method to decompose the Bounds into Surfaces.
Definition
PrismVolumeBounds.cxx:99
Trk::PrismVolumeBounds::boundarySurfaceAccessor
ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override final
Provide accessor for BoundarySurfaces.
Definition
PrismVolumeBounds.h:127
Trk::PrismVolumeBounds::sideSurf
std::unique_ptr< Trk::PlaneSurface > sideSurf(const Amg::Transform3D &, unsigned int, unsigned int) const
method to construct side boundary planes
Definition
PrismVolumeBounds.cxx:131
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
Trk::TriangleBounds
Bounds for a triangular, planar surface.
Definition
TriangleBounds.h:39
Trk::VolumeBounds::VolumeBounds
VolumeBounds()
Default Constructor.
Definition
VolumeBounds.h:49
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition
GeoPrimitives.h:46
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::EightObjectsAccessor
std::array< ObjectAccessor::value_type, 8 > EightObjectsAccessor
Definition
ObjectsAccessor.h:18
Trk::inside
@ inside
Definition
PropDirection.h:29
dump
-event-from-file
Generated on
for ATLAS Offline Software by
1.17.0