ATLAS Offline Software
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
Trk::TrapezoidBounds Class Referencefinal

#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 }
 
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
}
 

Public Member Functions

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

Protected Member Functions

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

Private Member Functions

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

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 More...
 

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.

59  {
60  Cone = 0,
61  Cylinder = 1,
62  Diamond = 2,
63  Disc = 3,
64  Ellipse = 5,
65  Rectangle = 6,
66  RotatedTrapezoid = 7,
67  Trapezoid = 8,
68  Triangle = 9,
69  DiscTrapezoidal = 10,
70  Annulus = 11,
71  Other = 12
72 
73  };

◆ BoundValues

  • for readability
Enumerator
bv_minHalfX 
bv_maxHalfX 
bv_halfY 
bv_length 

Definition at line 47 of file TrapezoidBounds.h.

48  {
49  bv_minHalfX = 0,
50  bv_maxHalfX = 1,
51  bv_halfY = 2,
52  bv_length = 3
53  };

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 {}

◆ 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 
)

◆ 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);
48  m_boundValues[TrapezoidBounds::bv_halfY] = std::abs(haley);
49 }

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::RotatedTrapezoidBounds, Trk::ConeBounds, Trk::RotatedDiamondBounds, and Trk::DiamondBounds.

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);
77  return false;
78  // a fast FALSE
79  double fabsX = std::abs(locpo[Trk::locX]);
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);
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
110  elementP[0] = (rotMatrix * (p - locpo));
113  elementP[1] = (rotMatrix * (p - locpo));
114  scResult = bchk.FastSinCos(m_beta);
117  (scResult.sinC / scResult.cosC),
119  elementP[2] = (rotMatrix * (p - locpo));
120  scResult = bchk.FastSinCos(m_alpha);
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 }

◆ 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 }

◆ 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 }

◆ 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 */
166  double k = 2.0 * m_boundValues[TrapezoidBounds::bv_halfY] /
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  }
212  double Y[4] = { -m_boundValues[TrapezoidBounds::bv_halfY],
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 }

◆ 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.

84 { return SurfaceBounds::Trapezoid; }

Friends And Related Function Documentation

◆ ::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:
Trk::TrapezoidBounds::insideFull
bool insideFull(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
inside() method for a full symmetric trapezoid
Definition: TrapezoidBounds.cxx:148
Trk::y
@ y
Definition: ParamDefs.h:56
Trk::TrapezoidBounds::alpha
double alpha() const
This method returns the opening angle alpha in point A (negative local phi)
Trk::TrapezoidBounds::m_boundValues
std::vector< TDD_real_t > m_boundValues
Definition: TrapezoidBounds.h:177
Trk::AmgMatrix
AmgMatrix(3, 3) NeutralParticleParameterCalculator
Definition: NeutralParticleParameterCalculator.cxx:233
Trk::SurfaceBounds::DiscTrapezoidal
@ DiscTrapezoidal
Definition: SurfaceBounds.h:69
Trk::TrapezoidBounds::bv_minHalfX
@ bv_minHalfX
Definition: TrapezoidBounds.h:49
Trk::SurfaceBounds::Cone
@ Cone
Definition: SurfaceBounds.h:60
Trk::locX
@ locX
Definition: ParamDefs.h:37
Trk::locY
@ locY
local cartesian
Definition: ParamDefs.h:38
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Trk::SurfaceBounds::Rectangle
@ Rectangle
Definition: SurfaceBounds.h:65
Trk::TrapezoidBounds::m_beta
TDD_real_t m_beta
Definition: TrapezoidBounds.h:179
hist_file_dump.d
d
Definition: hist_file_dump.py:137
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:43
Trk::SurfaceBounds::swap
void swap(double &b1, double &b2)
Swap method to be called from DiscBounds or TrapezoidalBounds.
Definition: SurfaceBounds.h:133
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Trk::SurfaceBounds::Annulus
@ Annulus
Definition: SurfaceBounds.h:70
Trk::TrapezoidBounds::inside
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...
Definition: TrapezoidBounds.cxx:139
Trk::SurfaceBounds::Diamond
@ Diamond
Definition: SurfaceBounds.h:62
Trk::TrapezoidBounds::bv_halfY
@ bv_halfY
Definition: TrapezoidBounds.h:51
JetTiledMap::S
@ S
Definition: TiledEtaPhiMap.h:44
Monitored::X
@ X
Definition: HistogramFillerUtils.h:24
A
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
TrigVtx::gamma
@ gamma
Definition: TrigParticleTable.h:26
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::theta
@ theta
Definition: ParamDefs.h:66
Trk::TrapezoidBounds::isAbove
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
Definition: TrapezoidBounds.cxx:192
vector
Definition: MultiHisto.h:13
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:107
Trk::TrapezoidBounds::bv_maxHalfX
@ bv_maxHalfX
Definition: TrapezoidBounds.h:50
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
ReadCellNoiseFromCool.dm
dm
Definition: ReadCellNoiseFromCool.py:235
Monitored::Y
@ Y
Definition: HistogramFillerUtils.h:24
keylayer_zslicemap.sb
sb
Definition: keylayer_zslicemap.py:192
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Trk::TrapezoidBounds::TrapezoidBounds
TrapezoidBounds()
Default Constructor, needed for persistency.
Definition: TrapezoidBounds.cxx:19
Trk::SurfaceBounds::Trapezoid
@ Trapezoid
Definition: SurfaceBounds.h:67
Trk::TrapezoidBounds
Definition: TrapezoidBounds.h:43
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Trk::TrapezoidBounds::m_alpha
TDD_real_t m_alpha
Definition: TrapezoidBounds.h:178
makeTRTBarrelCans.dy
tuple dy
Definition: makeTRTBarrelCans.py:21
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::SurfaceBounds::Disc
@ Disc
Definition: SurfaceBounds.h:63
makeTRTBarrelCans.dx
tuple dx
Definition: makeTRTBarrelCans.py:20
Trk::TrapezoidBounds::beta
double beta() const
This method returns the opening angle beta in point B (positive local phi)
Trk::TrapezoidBounds::insideExclude
bool insideExclude(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
inside() method for the triangular exclude area for an arbitrary trapezoid
Definition: TrapezoidBounds.cxx:176
Trk::SurfaceBounds::RotatedTrapezoid
@ RotatedTrapezoid
Definition: SurfaceBounds.h:66
Trk::SurfaceBounds::Other
@ Other
Definition: SurfaceBounds.h:71
Trk::TrapezoidBounds::bv_length
@ bv_length
Definition: TrapezoidBounds.h:52
Trk::x
@ x
Definition: ParamDefs.h:55
Trk::SurfaceBounds::Triangle
@ Triangle
Definition: SurfaceBounds.h:68
updateCoolNtuple.limit
int limit
Definition: updateCoolNtuple.py:45
Trk::SurfaceBounds::Ellipse
@ Ellipse
Definition: SurfaceBounds.h:64
fitman.k
k
Definition: fitman.py:528
Trk::SurfaceBounds::Cylinder
@ Cylinder
Definition: SurfaceBounds.h:61