ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::TrapezoidBounds Class Referencefinal

Bounds for a trapezoidal, planar Surface. More...

#include <TrapezoidBounds.h>

Inheritance diagram for Trk::TrapezoidBounds:
Collaboration diagram for Trk::TrapezoidBounds:

Public Types

enum  BoundValues { bv_minHalfX = 0 , bv_maxHalfX = 1 , bv_halfY = 2 , bv_length = 3 }
 
  • for readability
More...
enum  BoundsType {
  Cone = 0 , Cylinder = 1 , Diamond = 2 , Disc = 3 ,
  Ellipse = 5 , Rectangle = 6 , RotatedTrapezoid = 7 , Trapezoid = 8 ,
  Triangle = 9 , DiscTrapezoidal = 10 , Annulus = 11 , Other = 12
}
 This enumerator simplifies the persistency, by saving a dynamic_cast to happen. More...

Public Member Functions

 TrapezoidBounds ()
 Default Constructor, needed for persistency.
 TrapezoidBounds (const TrapezoidBounds &trabo)=default
 Copy constructor.
TrapezoidBoundsoperator= (const TrapezoidBounds &sbo)=default
 Assignment operator.
 TrapezoidBounds (TrapezoidBounds &&trabo) noexcept=default
 Move constructor.
TrapezoidBoundsoperator= (TrapezoidBounds &&sbo) noexcept=default
 Move Assignment operator.
virtual ~TrapezoidBounds ()=default
 Destructor.
 TrapezoidBounds (double minhalex, double maxhalex, double haley)
 Constructor for symmetric Trapezoid.
 TrapezoidBounds (double minhalex, double haley, double alpha, double beta)
 Constructor for arbitrary Trapezoid.
virtual TrapezoidBoundsclone () const override
 Virtual constructor.
virtual BoundsType type () const override
 Return the type of the bounds for persistency.
virtual bool operator== (const SurfaceBounds &trabo) const override
 Equality operator.
double minHalflengthPhi () const
 This method returns the minimal halflength in phi (first coordinate of local surface frame)
double maxHalflengthPhi () const
 This method returns the maximal halflength in phi (first coordinate of local surface frame)
double halflengthEta () const
 This method returns the halflength in eta (second coordinate of local surface frame)
double minHalflengthX () const
 This method returns the minimal halflength in X (first coordinate of local surface frame)
double maxHalflengthX () const
 This method returns the maximal halflength in X (first coordinate of local surface frame)
double halflengthY () const
 This method returns the halflength in Y (second coordinate of local surface frame)
virtual double r () const override
 This method returns the maximal extension on the local plane.
double alpha () const
 This method returns the opening angle alpha in point A (negative local phi)
double beta () const
 This method returns the opening angle beta in point B (positive local phi)
virtual bool inside (const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const override
 The orientation of the Trapezoid is according to the figure above, in words: the shorter of the two parallel sides of the trapezoid intersects with the negative \( y \) - axis of the local frame.
virtual bool inside (const Amg::Vector2D &locpo, const BoundaryCheck &bchk) const override
virtual bool insideLoc1 (const Amg::Vector2D &locpo, double tol1=0.) const override
 This method checks inside bounds in loc1.
virtual bool insideLoc2 (const Amg::Vector2D &locpo, double tol2=0.) const override
 This method checks inside bounds in loc2.
virtual double minDistance (const Amg::Vector2D &pos) const override
 Minimal distance to boundary ( > 0 if outside and <=0 if inside)
virtual MsgStream & dump (MsgStream &sl) const override
 Output Method for MsgStream.
virtual std::ostream & dump (std::ostream &sl) const override
 Output Method for std::ostream.
virtual bool operator!= (const SurfaceBounds &sb) const
 Non-Equality operator.

Protected Member Functions

void swap (double &b1, double &b2)
 Swap method to be called from DiscBounds or TrapezoidalBounds.
virtual void initCache ()
 virtual initCache method for object persistency

Private Member Functions

bool insideFull (const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
 inside() method for a full symmetric trapezoid
bool insideExclude (const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
 inside() method for the triangular exclude area for an arbitrary trapezoid

Static Private Member Functions

static bool isAbove (const Amg::Vector2D &locpo, double tol1, double tol2, double k, double d)
 isAbove() method for checking whether a point lies above or under a straight line

Private Attributes

std::vector< TDD_real_tm_boundValues
TDD_real_t m_alpha
TDD_real_t m_beta

Friends

class ::TrapezoidBoundsCnv_p1

Detailed Description

Bounds for a trapezoidal, planar Surface.


Todo
can be speed optimized by calculating kappa/delta and caching it
Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 42 of file TrapezoidBounds.h.

Member Enumeration Documentation

◆ BoundsType

This enumerator simplifies the persistency, by saving a dynamic_cast to happen.

Other is reserved for the GeometrySurfaces implementation.

Enumerator
Cone 
Cylinder 
Diamond 
Disc 
Ellipse 
Rectangle 
RotatedTrapezoid 
Trapezoid 
Triangle 
DiscTrapezoidal 
Annulus 
Other 

Definition at line 58 of file SurfaceBounds.h.

◆ BoundValues

  • for readability

Enumerator
bv_minHalfX 
bv_maxHalfX 
bv_halfY 
bv_length 

Definition at line 47 of file TrapezoidBounds.h.

Constructor & Destructor Documentation

◆ TrapezoidBounds() [1/5]

Trk::TrapezoidBounds::TrapezoidBounds ( )

Default Constructor, needed for persistency.

Definition at line 19 of file TrapezoidBounds.cxx.

21 , m_alpha(0.)
22 , m_beta(0.)
23{}
std::vector< TDD_real_t > m_boundValues

◆ TrapezoidBounds() [2/5]

Trk::TrapezoidBounds::TrapezoidBounds ( const TrapezoidBounds & trabo)
default

Copy constructor.

◆ TrapezoidBounds() [3/5]

Trk::TrapezoidBounds::TrapezoidBounds ( TrapezoidBounds && trabo)
defaultnoexcept

Move constructor.

◆ ~TrapezoidBounds()

virtual Trk::TrapezoidBounds::~TrapezoidBounds ( )
virtualdefault

Destructor.

◆ TrapezoidBounds() [4/5]

Trk::TrapezoidBounds::TrapezoidBounds ( double minhalex,
double maxhalex,
double haley )

Constructor for symmetric Trapezoid.

Definition at line 26 of file TrapezoidBounds.cxx.

28 , m_alpha(0.)
29 , m_beta(0.)
30{
31 m_boundValues[TrapezoidBounds::bv_minHalfX] = std::abs(minhalex);
32 m_boundValues[TrapezoidBounds::bv_maxHalfX] = std::abs(maxhalex);
36}
void swap(double &b1, double &b2)
Swap method to be called from DiscBounds or TrapezoidalBounds.

◆ TrapezoidBounds() [5/5]

Trk::TrapezoidBounds::TrapezoidBounds ( double minhalex,
double haley,
double alpha,
double beta )

Constructor for arbitrary Trapezoid.

Definition at line 39 of file TrapezoidBounds.cxx.

41 , m_alpha(alpha)
42 , m_beta(beta)
43{
44 double gamma = (alpha > beta) ? (alpha - 0.5 * M_PI) : (beta - 0.5 * M_PI);
45 // now fill them
46 m_boundValues[TrapezoidBounds::bv_minHalfX] = std::abs(minhalex);
49}
#define M_PI
double beta() const
This method returns the opening angle beta in point B (positive local phi)
double alpha() const
This method returns the opening angle alpha in point A (negative local phi)

Member Function Documentation

◆ alpha()

double Trk::TrapezoidBounds::alpha ( ) const

This method returns the opening angle alpha in point A (negative local phi)

◆ beta()

double Trk::TrapezoidBounds::beta ( ) const

This method returns the opening angle beta in point B (positive local phi)

◆ clone()

virtual TrapezoidBounds * Trk::TrapezoidBounds::clone ( ) const
overridevirtual

Virtual constructor.

Implements Trk::SurfaceBounds.

◆ dump() [1/2]

MsgStream & Trk::TrapezoidBounds::dump ( MsgStream & sl) const
overridevirtual

Output Method for MsgStream.

Implements Trk::SurfaceBounds.

Definition at line 257 of file TrapezoidBounds.cxx.

258{
259 sl << std::setiosflags(std::ios::fixed);
260 sl << std::setprecision(7);
261 sl << "Trk::TrapezoidBounds: (minHlenghtX, maxHlengthX, hlengthY) = "
263 << ", " << m_boundValues[TrapezoidBounds::bv_halfY] << ")";
264 sl << std::setprecision(-1);
265 return sl;
266}

◆ dump() [2/2]

std::ostream & Trk::TrapezoidBounds::dump ( std::ostream & sl) const
overridevirtual

Output Method for std::ostream.

Implements Trk::SurfaceBounds.

Definition at line 269 of file TrapezoidBounds.cxx.

270{
271 sl << std::setiosflags(std::ios::fixed);
272 sl << std::setprecision(7);
273 sl << "Trk::TrapezoidBounds: (minHlenghtX, maxHlengthX, hlengthY) = "
275 << ", " << m_boundValues[TrapezoidBounds::bv_halfY] << ")";
276 sl << std::setprecision(-1);
277 return sl;
278}

◆ halflengthEta()

double Trk::TrapezoidBounds::halflengthEta ( ) const

This method returns the halflength in eta (second coordinate of local surface frame)

◆ halflengthY()

double Trk::TrapezoidBounds::halflengthY ( ) const

This method returns the halflength in Y (second coordinate of local surface frame)

◆ initCache()

virtual void Trk::SurfaceBounds::initCache ( )
inlineprotectedvirtualinherited

virtual initCache method for object persistency

Reimplemented in Trk::ConeBounds, Trk::DiamondBounds, Trk::RotatedDiamondBounds, and Trk::RotatedTrapezoidBounds.

Definition at line 129 of file SurfaceBounds.h.

129{}

◆ inside() [1/2]

bool Trk::TrapezoidBounds::inside ( const Amg::Vector2D & locpo,
const BoundaryCheck & bchk ) const
overridevirtual

Implements Trk::SurfaceBounds.

Definition at line 63 of file TrapezoidBounds.cxx.

65{
66 if (bchk.bcType == 0)
68 locpo, bchk.toleranceLoc1, bchk.toleranceLoc2);
69
70 // a fast FALSE
71 double fabsY = std::abs(locpo[Trk::locY]);
72 double max_ell = bchk.lCovariance(0, 0) > bchk.lCovariance(1, 1)
73 ? bchk.lCovariance(0, 0)
74 : bchk.lCovariance(1, 1);
75 double limit = bchk.nSigmas * sqrt(max_ell);
76 if (fabsY > (m_boundValues[TrapezoidBounds::bv_halfY] + limit))
77 return false;
78 // a fast FALSE
79 double fabsX = std::abs(locpo[Trk::locX]);
80 if (fabsX > (m_boundValues[TrapezoidBounds::bv_maxHalfX] + limit))
81 return false;
82 // a fast TRUE
83 double min_ell = bchk.lCovariance(0, 0) < bchk.lCovariance(1, 1)
84 ? bchk.lCovariance(0, 0)
85 : bchk.lCovariance(1, 1);
86 limit = bchk.nSigmas * sqrt(min_ell);
87 if (fabsX < (m_boundValues[TrapezoidBounds::bv_minHalfX] + limit) &&
89 return true;
90
91 // compute KDOP and axes for surface polygon
92 std::vector<KDOP> elementKDOP(3);
93 std::vector<Amg::Vector2D> elementP(4);
94 float theta =
95 (bchk.lCovariance(1, 0) != 0 &&
96 (bchk.lCovariance(1, 1) - bchk.lCovariance(0, 0)) != 0)
97 ? .5 * bchk.FastArcTan(2 * bchk.lCovariance(1, 0) /
98 (bchk.lCovariance(1, 1) - bchk.lCovariance(0, 0)))
99 : 0.;
100 sincosCache scResult = bchk.FastSinCos(theta);
101 AmgMatrix(2, 2) rotMatrix;
102 rotMatrix << scResult.cosC, scResult.sinC, -scResult.sinC, scResult.cosC;
103 AmgMatrix(2, 2) normal;
104 // cppcheck-suppress constStatement
105 normal << 0, -1, 1, 0;
106 // ellipse is always at (0,0), surface is moved to ellipse position and then
107 // rotated
108 Amg::Vector2D p = Amg::Vector2D(m_boundValues[TrapezoidBounds::bv_minHalfX],
110 elementP[0] = (rotMatrix * (p - locpo));
111 p = Amg::Vector2D (-m_boundValues[TrapezoidBounds::bv_minHalfX],
113 elementP[1] = (rotMatrix * (p - locpo));
114 scResult = bchk.FastSinCos(m_beta);
115 p = Amg::Vector2D (m_boundValues[TrapezoidBounds::bv_minHalfX] +
117 (scResult.sinC / scResult.cosC),
119 elementP[2] = (rotMatrix * (p - locpo));
120 scResult = bchk.FastSinCos(m_alpha);
121 p = Amg::Vector2D (-(m_boundValues[TrapezoidBounds::bv_minHalfX] +
123 (scResult.sinC / scResult.cosC)),
125 elementP[3] = (rotMatrix * (p - locpo));
126 std::vector<Amg::Vector2D> axis = { normal * (elementP[1] - elementP[0]),
127 normal * (elementP[3] - elementP[1]),
128 normal * (elementP[2] - elementP[0]) };
129 bchk.ComputeKDOP(elementP, axis, elementKDOP);
130 // compute KDOP for error ellipse
131 std::vector<KDOP> errelipseKDOP(3);
132 bchk.ComputeKDOP(bchk.EllipseToPoly(3), axis, errelipseKDOP);
133 // check if KDOPs overlap and return result
134 return bchk.TestKDOPKDOP(elementKDOP, errelipseKDOP);
135}
#define AmgMatrix(rows, cols)
virtual bool inside(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const override
The orientation of the Trapezoid is according to the figure above, in words: the shorter of the two p...
TrapezoidBounds()
Default Constructor, needed for persistency.
@ locY
local cartesian
Definition ParamDefs.h:38
@ locX
Definition ParamDefs.h:37
@ theta
Definition ParamDefs.h:66

◆ inside() [2/2]

bool Trk::TrapezoidBounds::inside ( const Amg::Vector2D & locpo,
double tol1 = 0.,
double tol2 = 0. ) const
overridevirtual

The orientation of the Trapezoid is according to the figure above, in words: the shorter of the two parallel sides of the trapezoid intersects with the negative \( y \) - axis of the local frame.


The cases are:
(0) \( y \) or \( x \) bounds are 0 || 0
(1) LocalPosition is outside \( y \) bounds
(2) LocalPosition is inside \( y \) bounds, but outside maximum \( x \) bounds
(3) LocalPosition is inside \( y \) bounds AND inside minimum \( x \) bounds
(4) LocalPosition is inside \( y \) bounds AND inside maximum \( x \) bounds, so that it depends on the \( eta \) coordinate (5) LocalPosition fails test of (4)

The inside check is done using single equations of straight lines and one has to take care if a point lies on the positive \( x \) half area(I) or the negative one(II). Denoting \( |x_{min}| \) and \( | x_{max} | \) as minHalfX respectively maxHalfX, such as \( | y_{H} | \) as halfY, the equations for the straing lines in (I) and (II) can be written as:

  • (I): \( y = \kappa_{I} x + \delta_{I} \)
  • (II): \( y = \kappa_{II} x + \delta_{II} \) ,

    where \( \kappa_{I} = - \kappa_{II} = 2 \frac{y_{H}}{x_{max} - x_{min}} \)
    and \( \delta_{I} = \delta_{II} = - \frac{1}{2}\kappa_{I}(x_{max} + x_{min}) \)

Implements Trk::SurfaceBounds.

Definition at line 139 of file TrapezoidBounds.cxx.

140{
141 if (m_alpha == 0.)
142 return insideFull(locpo, tol1, tol2);
143 return (insideFull(locpo, tol1, tol2) && !insideExclude(locpo, tol1, tol2));
144}
bool insideFull(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
inside() method for a full symmetric trapezoid
bool insideExclude(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
inside() method for the triangular exclude area for an arbitrary trapezoid

◆ insideExclude()

bool Trk::TrapezoidBounds::insideExclude ( const Amg::Vector2D & locpo,
double tol1 = 0.,
double tol2 = 0. ) const
private

inside() method for the triangular exclude area for an arbitrary trapezoid

Definition at line 176 of file TrapezoidBounds.cxx.

177{
178
179 // line a
180 bool alphaBiggerBeta(m_alpha > m_beta);
181 double ka = alphaBiggerBeta ? tan(M_PI - m_alpha) : tan(m_alpha);
182 double kb = alphaBiggerBeta ? tan(M_PI - m_beta) : tan(m_beta);
183 double sign = alphaBiggerBeta ? -1. : 1.;
186
187 return (isAbove(locpo, tol1, tol2, ka, da) && isAbove(locpo, tol1, tol2, kb, db));
188}
int sign(int a)
static bool isAbove(const Amg::Vector2D &locpo, double tol1, double tol2, double k, double d)
isAbove() method for checking whether a point lies above or under a straight line

◆ insideFull()

bool Trk::TrapezoidBounds::insideFull ( const Amg::Vector2D & locpo,
double tol1 = 0.,
double tol2 = 0. ) const
private

inside() method for a full symmetric trapezoid

Definition at line 148 of file TrapezoidBounds.cxx.

149{
150 // the cases:
151 double fabsX = std::abs(locpo[Trk::locX]);
152 double fabsY = std::abs(locpo[Trk::locY]);
153 // (1) a fast FALSE
154 if (fabsY > (m_boundValues[TrapezoidBounds::bv_halfY] + tol2))
155 return false;
156 // (2) a fast FALSE
157 if (fabsX > (m_boundValues[TrapezoidBounds::bv_maxHalfX] + tol1))
158 return false;
159 // (3) a fast TRUE
160 if (fabsX < (m_boundValues[TrapezoidBounds::bv_minHalfX] + tol1))
161 return true;
162 // (4) particular case - a rectangle
164 return true;
165 // (5) /** use basic calculation of a straight line */
168 ((locpo[Trk::locX] > 0.) ? 1.0 : -1.0);
169 double d =
171 return (isAbove(locpo, tol1, tol2, k, d));
172}

◆ insideLoc1()

virtual bool Trk::TrapezoidBounds::insideLoc1 ( const Amg::Vector2D & locpo,
double tol1 = 0. ) const
overridevirtual

This method checks inside bounds in loc1.

  • loc1/loc2 correspond to the natural coordinates of the surface
  • As loc1/loc2 are correlated the single check doesn't make sense : -> check is done on enclosing Rectangle !

Implements Trk::SurfaceBounds.

◆ insideLoc2()

virtual bool Trk::TrapezoidBounds::insideLoc2 ( const Amg::Vector2D & locpo,
double tol2 = 0. ) const
overridevirtual

This method checks inside bounds in loc2.

  • loc1/loc2 correspond to the natural coordinates of the surface
  • As loc1/loc2 are correlated the single check doesn't make sense : -> check is done on enclosing Rectangle !

Implements Trk::SurfaceBounds.

◆ isAbove()

bool Trk::TrapezoidBounds::isAbove ( const Amg::Vector2D & locpo,
double tol1,
double tol2,
double k,
double d )
staticprivate

isAbove() method for checking whether a point lies above or under a straight line

Definition at line 192 of file TrapezoidBounds.cxx.

193{
194 // the most tolerant approach for tol1 and tol2
195 double sign = k > 0. ? -1. : +1.;
196 return (locpo[Trk::locY] + tol2 > (k * (locpo[Trk::locX] + sign * tol1) + d));
197}

◆ maxHalflengthPhi()

double Trk::TrapezoidBounds::maxHalflengthPhi ( ) const

This method returns the maximal halflength in phi (first coordinate of local surface frame)

◆ maxHalflengthX()

double Trk::TrapezoidBounds::maxHalflengthX ( ) const

This method returns the maximal halflength in X (first coordinate of local surface frame)

◆ minDistance()

double Trk::TrapezoidBounds::minDistance ( const Amg::Vector2D & pos) const
overridevirtual

Minimal distance to boundary ( > 0 if outside and <=0 if inside)

Implements Trk::SurfaceBounds.

Definition at line 200 of file TrapezoidBounds.cxx.

201{
202 const int Np = 4;
203
206 if (m_alpha != 0.) {
208 } else if (m_beta != 0.) {
210 }
216
217 double dm = 1.e+20;
218 double Ao = 0.;
219 bool in = true;
220
221 for (int i = 0; i != Np; ++i) {
222
223 int j = (i == Np-1 ? 0 : i+1);
224
225 double x = X[i] - pos[0];
226 double y = Y[i] - pos[1];
227 double dx = X[j] - X[i];
228 double dy = Y[j] - Y[i];
229 double A = x * dy - y * dx;
230 double S = -(x * dx + y * dy);
231
232 if (S <= 0.) {
233 double d = x * x + y * y;
234 if (d < dm)
235 dm = d;
236 } else {
237 double a = dx * dx + dy * dy;
238 if (S <= a) {
239 double d = (A * A) / a;
240 if (d < dm)
241 dm = d;
242 }
243 }
244 if (i && in && Ao * A < 0.)
245 in = false;
246 Ao = A;
247 }
248 if (in){
249 return -sqrt(dm);
250 }
251 return sqrt(dm);
252}
static Double_t a
@ x
Definition ParamDefs.h:55
@ y
Definition ParamDefs.h:56

◆ minHalflengthPhi()

double Trk::TrapezoidBounds::minHalflengthPhi ( ) const

This method returns the minimal halflength in phi (first coordinate of local surface frame)

◆ minHalflengthX()

double Trk::TrapezoidBounds::minHalflengthX ( ) const

This method returns the minimal halflength in X (first coordinate of local surface frame)

◆ operator!=()

bool Trk::SurfaceBounds::operator!= ( const SurfaceBounds & sb) const
inlinevirtualinherited

Non-Equality operator.

Reimplemented in Trk::InvalidBounds.

Definition at line 141 of file SurfaceBounds.h.

142{
143 return !((*this) == sb);
144}

◆ operator=() [1/2]

TrapezoidBounds & Trk::TrapezoidBounds::operator= ( const TrapezoidBounds & sbo)
default

Assignment operator.

◆ operator=() [2/2]

TrapezoidBounds & Trk::TrapezoidBounds::operator= ( TrapezoidBounds && sbo)
defaultnoexcept

Move Assignment operator.

◆ operator==()

bool Trk::TrapezoidBounds::operator== ( const SurfaceBounds & trabo) const
overridevirtual

Equality operator.

Implements Trk::SurfaceBounds.

Definition at line 53 of file TrapezoidBounds.cxx.

54{
55 // check the type first not to compare apples with oranges
56 const Trk::TrapezoidBounds* trabo = dynamic_cast<const Trk::TrapezoidBounds*>(&sbo);
57 if (!trabo)
58 return false;
59 return (m_boundValues == trabo->m_boundValues);
60}

◆ r()

virtual double Trk::TrapezoidBounds::r ( ) const
overridevirtual

This method returns the maximal extension on the local plane.

Implements Trk::SurfaceBounds.

◆ swap()

void Trk::SurfaceBounds::swap ( double & b1,
double & b2 )
inlineprotectedinherited

Swap method to be called from DiscBounds or TrapezoidalBounds.

Definition at line 133 of file SurfaceBounds.h.

134{
135 double tmp = b1;
136 b1 = b2;
137 b2 = tmp;
138}

◆ type()

virtual BoundsType Trk::TrapezoidBounds::type ( ) const
inlineoverridevirtual

Return the type of the bounds for persistency.

Implements Trk::SurfaceBounds.

Definition at line 84 of file TrapezoidBounds.h.

◆ ::TrapezoidBoundsCnv_p1

friend class ::TrapezoidBoundsCnv_p1
friend

Definition at line 166 of file TrapezoidBounds.h.

Member Data Documentation

◆ m_alpha

TDD_real_t Trk::TrapezoidBounds::m_alpha
private

Definition at line 178 of file TrapezoidBounds.h.

◆ m_beta

TDD_real_t Trk::TrapezoidBounds::m_beta
private

Definition at line 179 of file TrapezoidBounds.h.

◆ m_boundValues

std::vector<TDD_real_t> Trk::TrapezoidBounds::m_boundValues
private

Definition at line 177 of file TrapezoidBounds.h.


The documentation for this class was generated from the following files: