ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkSurfaces
TrkSurfaces
TriangleBounds.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// TriangleBounds.h, (c) ATLAS Detector software
8
9
#ifndef TRKSURFACES_TRIANGLEBOUNDS_H
10
#define TRKSURFACES_TRIANGLEBOUNDS_H
11
12
#include "
GeoPrimitives/GeoPrimitives.h
"
13
#include "
TrkEventPrimitives/ParamDefs.h
"
14
#include "
TrkSurfaces/SurfaceBounds.h
"
15
#include <utility>
16
17
class
MsgStream;
18
19
#ifdef TRKDETDESCR_USEFLOATPRECISON
20
typedef
float
TDD_real_t
;
21
#else
22
typedef
double
TDD_real_t
;
23
#endif
24
25
namespace
Trk
{
26
37
38
class
TriangleBounds
final :
public
SurfaceBounds
39
{
40
41
public
:
43
enum
BoundValues
44
{
45
bv_x1
= 0,
46
bv_y1
= 1,
47
bv_x2
= 2,
48
bv_y2
= 3,
49
bv_x3
= 4,
50
bv_y3
= 5,
51
bv_length
= 6
52
};
53
55
TriangleBounds
();
56
58
TriangleBounds
(
const
TriangleBounds
& tribo) =
default
;
59
61
TriangleBounds
&
operator=
(
const
TriangleBounds
& recbo) =
default
;
62
64
TriangleBounds
(
TriangleBounds
&& tribo)
noexcept
=
default
;
65
67
TriangleBounds
&
operator=
(
TriangleBounds
&& recbo)
noexcept
=
default
;
68
70
virtual
~TriangleBounds
() =
default
;
71
73
TriangleBounds
(
const
std::vector<std::pair<float, float>>&);
74
76
TriangleBounds
(
const
std::vector<std::pair<double, double>>&);
77
79
TriangleBounds
(
const
Amg::Vector2D
& p1,
const
Amg::Vector2D
& p2,
const
Amg::Vector2D
& p3);
80
82
virtual
bool
operator==
(
const
SurfaceBounds
& sbo)
const override
;
83
85
virtual
TriangleBounds
*
clone
()
const override
;
86
88
virtual
BoundsType
type
()
const
override final {
return
SurfaceBounds::Triangle
; }
89
91
virtual
bool
inside
(
const
Amg::Vector2D
& locpo,
double
tol1 = 0.,
double
tol2 = 0.)
const
override final;
92
virtual
bool
inside
(
const
Amg
::Vector2D& locpo,
const
BoundaryCheck
& bchk)
const
override final;
93
96
virtual
bool
insideLoc1
(
const
Amg
::Vector2D& locpo,
double
tol1 = 0.)
const
override final;
97
100
virtual
bool
insideLoc2
(
const
Amg
::Vector2D& locpo,
double
tol2 = 0.)
const
override final;
101
103
virtual
double
minDistance
(
const
Amg
::Vector2D& pos)
const
override final;
104
106
std
::
vector
<
std
::
pair
<
TDD_real_t
,
TDD_real_t
>>
vertices
()
const
;
107
109
virtual
double
r
()
const
override final;
110
112
virtual MsgStream&
dump
(MsgStream& sl)
const
override;
113
115
virtual
std
::
ostream
&
dump
(
std
::
ostream
& sl)
const
override;
116
117
private
:
118
std
::
vector
<
TDD_real_t
>
m_boundValues
;
119
};
120
}
// end of namespace
121
122
#include "TrkSurfaces/TriangleBounds.icc"
123
#endif
// TRKSURFACES_RECTANGLEBOUNDS_H
TDD_real_t
double TDD_real_t
Definition
AnnulusBounds.h:25
GeoPrimitives.h
ParamDefs.h
SurfaceBounds.h
Trk::BoundaryCheck
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Definition
BoundaryCheck.h:51
Trk::SurfaceBounds::SurfaceBounds
SurfaceBounds()=default
Default Constructor.
Trk::SurfaceBounds::BoundsType
BoundsType
This enumerator simplifies the persistency, by saving a dynamic_cast to happen.
Definition
SurfaceBounds.h:59
Trk::SurfaceBounds::Triangle
@ Triangle
Definition
SurfaceBounds.h:68
Trk::TriangleBounds::TriangleBounds
TriangleBounds(const TriangleBounds &tribo)=default
Copy constructor.
Trk::TriangleBounds::TriangleBounds
TriangleBounds()
Default Constructor - needed for persistency.
Definition
TriangleBounds.cxx:19
Trk::TriangleBounds::TriangleBounds
TriangleBounds(TriangleBounds &&tribo) noexcept=default
Move constructor.
Trk::TriangleBounds::r
virtual double r() const override final
This method returns the maximal extension on the local plane, i.e.
Trk::TriangleBounds::BoundValues
BoundValues
for readability
Definition
TriangleBounds.h:44
Trk::TriangleBounds::bv_y1
@ bv_y1
Definition
TriangleBounds.h:46
Trk::TriangleBounds::bv_length
@ bv_length
Definition
TriangleBounds.h:51
Trk::TriangleBounds::bv_x2
@ bv_x2
Definition
TriangleBounds.h:47
Trk::TriangleBounds::bv_x3
@ bv_x3
Definition
TriangleBounds.h:49
Trk::TriangleBounds::bv_x1
@ bv_x1
Definition
TriangleBounds.h:45
Trk::TriangleBounds::bv_y2
@ bv_y2
Definition
TriangleBounds.h:48
Trk::TriangleBounds::bv_y3
@ bv_y3
Definition
TriangleBounds.h:50
Trk::TriangleBounds::insideLoc2
virtual bool insideLoc2(const Amg::Vector2D &locpo, double tol2=0.) const override final
This method checks inside bounds in loc2.
Trk::TriangleBounds::operator==
virtual bool operator==(const SurfaceBounds &sbo) const override
Equality operator.
Definition
TriangleBounds.cxx:66
Trk::TriangleBounds::insideLoc1
virtual bool insideLoc1(const Amg::Vector2D &locpo, double tol1=0.) const override final
This method checks inside bounds in loc1.
Trk::TriangleBounds::clone
virtual TriangleBounds * clone() const override
Virtual constructor.
Trk::TriangleBounds::operator=
TriangleBounds & operator=(const TriangleBounds &recbo)=default
Assignment Operator.
Trk::TriangleBounds::~TriangleBounds
virtual ~TriangleBounds()=default
Destructor.
Trk::TriangleBounds::operator=
TriangleBounds & operator=(TriangleBounds &&recbo) noexcept=default
Move Assignment Operator.
Trk::TriangleBounds::type
virtual BoundsType type() const override final
Return the type of the bounds for persistency.
Definition
TriangleBounds.h:88
Trk::TriangleBounds::m_boundValues
std::vector< TDD_real_t > m_boundValues
Definition
TriangleBounds.h:118
Trk::TriangleBounds::vertices
std::vector< std::pair< TDD_real_t, TDD_real_t > > vertices() const
This method returns the coordinates of vertices.
Trk::TriangleBounds::minDistance
virtual double minDistance(const Amg::Vector2D &pos) const override final
Minimal distance to boundary ( > 0 if outside and <=0 if inside).
Definition
TriangleBounds.cxx:179
ostream
STL class.
pair
STL class.
vector
Definition
MultiHisto.h:13
const
Amg
Definition of ATLAS Math & Geometry primitives (Amg).
Definition
AmgStringHelpers.h:19
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition
GeoPrimitives.h:48
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::inside
@ inside
Definition
PropDirection.h:29
dump
-event-from-file
std
STL namespace.
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0