ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Trk::TrapezoidVolumeBounds Class Referencefinal

#include <TrapezoidVolumeBounds.h>

Inheritance diagram for Trk::TrapezoidVolumeBounds:
Collaboration diagram for Trk::TrapezoidVolumeBounds:

Public Member Functions

 TrapezoidVolumeBounds ()
 Default Constructor. More...
 
 TrapezoidVolumeBounds (double minhlenghtx, double maxhlengthx, double hlenghty, double hlengthz)
 Constructor - the trapezoid boundaries (symmetric trapezoid) More...
 
 TrapezoidVolumeBounds (double minhlenghtx, double hlenghty, double hlengthz, double alpha, double beta)
 Constructor - the trapezoid boundaries (arbitrary trapezoid) More...
 
 TrapezoidVolumeBounds (const TrapezoidVolumeBounds &bobo)
 Copy Constructor. More...
 
virtual ~TrapezoidVolumeBounds ()
 Destructor. More...
 
TrapezoidVolumeBoundsoperator= (const TrapezoidVolumeBounds &bobo)
 Assignment operator. More...
 
TrapezoidVolumeBoundsclone () const override final
 Virtual constructor. More...
 
bool inside (const Amg::Vector3D &, double tol=0.) const override final
 This method checks if position in the 3D volume frame is inside the cylinder. More...
 
const std::vector< const Trk::Surface * > * decomposeToSurfaces (const Amg::Transform3D &transform) override final
 Method to decompose the Bounds into Surfaces. More...
 
ObjectAccessor boundarySurfaceAccessor (const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override
 Provide accessor for BoundarySurfaces. More...
 
double minHalflengthX () const
 This method returns the minimal halflength in local x. More...
 
double maxHalflengthX () const
 This method returns the maximal halflength in local x. More...
 
double halflengthY () const
 This method returns the halflength in local y. More...
 
double halflengthZ () const
 This method returns the halflength in local z. More...
 
double alpha () const
 This method returns the opening angle in point A (negative local x) More...
 
double beta () const
 This method returns the opening angle in point B (negative local x) More...
 
MsgStream & dump (MsgStream &sl) const override final
 Output Method for MsgStream. More...
 
std::ostream & dump (std::ostream &sl) const override final
 Output Method for std::ostream. More...
 

Private Member Functions

TrapezoidBoundsfaceXYTrapezoidBounds () const
 This method returns the associated TrapezoidBounds of the face PlaneSurface parallel to local xy plane. More...
 
RectangleBoundsfaceAlphaRectangleBounds () const
 This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negative local x) More...
 
RectangleBoundsfaceBetaRectangleBounds () const
 This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive local x) More...
 
RectangleBoundsfaceZXRectangleBoundsBottom () const
 This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, negative local y. More...
 
RectangleBoundsfaceZXRectangleBoundsTop () const
 This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, positive local y. More...
 

Private Attributes

double m_minHalfX
 minimal halflength in x More...
 
double m_maxHalfX
 maximal halflength in x More...
 
double m_halfY
 halflength in y More...
 
double m_halfZ
 halflength in z More...
 
double m_alpha
 opening angle alpha (in point A) More...
 
double m_beta
 opening angle beta (in point B) More...
 
SixObjectsAccessor m_objectAccessor
 There's only one single object Acessor for the moment has to be implemented if Cuboids are used more widely. More...
 

Detailed Description

Bounds for a trapezoidal shaped Volume, the decomposeToSurfaces method creates a vector of 6 surfaces:

BoundarySurfaceFace [index]:

- negativeFaceXY     [0] : Trazpezoidal Trk::PlaneSurface,
                           parallel to \f$ xy \f$ plane at negative \f$ z

\( - positiveFaceXY [1] : Trazpezoidal Trk::PlaneSurface, parallel to \) xy \( plane at positive \) z \( - trapezoidFaceAlpha [2] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at negative \) x \( (associated to alpha) - trapezoidFaceBeta [3] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at positive \) x \( (associated to beta) - negativeFaceZX [4] : Rectangular Trk::PlaneSurface, parallel to \) zx \( plane at negative \) y \( - positiveFaceZX [5] : Rectangular Trk::PlaneSurface, parallel to \) zx \( plane at positive \) y

Definition at line 57 of file TrapezoidVolumeBounds.h.

Constructor & Destructor Documentation

◆ TrapezoidVolumeBounds() [1/4]

Trk::TrapezoidVolumeBounds::TrapezoidVolumeBounds ( )

Default Constructor.

Definition at line 26 of file TrapezoidVolumeBounds.cxx.

27  : VolumeBounds()
28  , m_minHalfX(0.)
29  , m_maxHalfX(0.)
30  , m_halfY(0.)
31  , m_halfZ(0.)
32  , m_alpha(0.)
33  , m_beta(0.)
35 {}

◆ TrapezoidVolumeBounds() [2/4]

Trk::TrapezoidVolumeBounds::TrapezoidVolumeBounds ( double  minhlenghtx,
double  maxhlengthx,
double  hlenghty,
double  hlengthz 
)

Constructor - the trapezoid boundaries (symmetric trapezoid)

Definition at line 37 of file TrapezoidVolumeBounds.cxx.

42  : VolumeBounds()
43  , m_minHalfX(minhalex)
44  , m_maxHalfX(maxhalex)
45  , m_halfY(haley)
46  , m_halfZ(halez)
47  , m_alpha(0.)
48  , m_beta(0.)
50 {
51  m_alpha = atan((m_maxHalfX - m_minHalfX) / 2 / m_halfY) + 0.5 * M_PI;
52  m_beta = m_alpha;
53 }

◆ TrapezoidVolumeBounds() [3/4]

Trk::TrapezoidVolumeBounds::TrapezoidVolumeBounds ( double  minhlenghtx,
double  hlenghty,
double  hlengthz,
double  alpha,
double  beta 
)

Constructor - the trapezoid boundaries (arbitrary trapezoid)

Definition at line 55 of file TrapezoidVolumeBounds.cxx.

61  : VolumeBounds()
62  , m_minHalfX(minhalex)
63  , m_maxHalfX(0.)
64  , m_halfY(haley)
65  , m_halfZ(halez)
66  , m_alpha(alpha)
67  , m_beta(beta)
69 {
70  double gamma = (alpha > beta) ? (alpha - 0.5 * M_PI) : (beta - 0.5 * M_PI);
71  m_maxHalfX = m_minHalfX + (2. * m_halfY) * tan(gamma);
72 }

◆ TrapezoidVolumeBounds() [4/4]

Trk::TrapezoidVolumeBounds::TrapezoidVolumeBounds ( const TrapezoidVolumeBounds bobo)

Copy Constructor.

Definition at line 74 of file TrapezoidVolumeBounds.cxx.

76  : VolumeBounds()
77  , m_minHalfX(trabo.m_minHalfX)
78  , m_maxHalfX(trabo.m_maxHalfX)
79  , m_halfY(trabo.m_halfY)
80  , m_halfZ(trabo.m_halfZ)
81  , m_alpha(trabo.m_alpha)
82  , m_beta(trabo.m_beta)
83  , m_objectAccessor(trabo.m_objectAccessor)
84 {}

◆ ~TrapezoidVolumeBounds()

Trk::TrapezoidVolumeBounds::~TrapezoidVolumeBounds ( )
virtualdefault

Destructor.

Member Function Documentation

◆ alpha()

double Trk::TrapezoidVolumeBounds::alpha ( ) const
inline

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

Definition at line 165 of file TrapezoidVolumeBounds.h.

165 { return m_alpha; }

◆ beta()

double Trk::TrapezoidVolumeBounds::beta ( ) const
inline

This method returns the opening angle in point B (negative local x)

Definition at line 166 of file TrapezoidVolumeBounds.h.

166 { return m_beta; }

◆ boundarySurfaceAccessor()

ObjectAccessor Trk::TrapezoidVolumeBounds::boundarySurfaceAccessor ( const Amg::Vector3D gp,
const Amg::Vector3D dir,
bool  forceInside = false 
) const
inlineoverridevirtual

Provide accessor for BoundarySurfaces.

Implements Trk::VolumeBounds.

Definition at line 168 of file TrapezoidVolumeBounds.h.

169  {
171 }

◆ clone()

TrapezoidVolumeBounds * Trk::TrapezoidVolumeBounds::clone ( ) const
inlinefinaloverridevirtual

Virtual constructor.

Implements Trk::VolumeBounds.

Definition at line 153 of file TrapezoidVolumeBounds.h.

153  {
154  return new TrapezoidVolumeBounds(*this);
155 }

◆ decomposeToSurfaces()

const std::vector< const Trk::Surface * > * Trk::TrapezoidVolumeBounds::decomposeToSurfaces ( const Amg::Transform3D transform)
finaloverridevirtual

Method to decompose the Bounds into Surfaces.

Implements Trk::VolumeBounds.

Definition at line 104 of file TrapezoidVolumeBounds.cxx.

106 {
107  std::vector<const Trk::Surface*>* retsf =
108  new std::vector<const Trk::Surface*>;
109 
110  // face surfaces xy
111  Amg::RotationMatrix3D trapezoidRotation(transform.rotation());
112  Amg::Vector3D trapezoidX(trapezoidRotation.col(0));
113  Amg::Vector3D trapezoidY(trapezoidRotation.col(1));
114  Amg::Vector3D trapezoidZ(trapezoidRotation.col(2));
115  Amg::Vector3D trapezoidCenter(transform.translation());
116 
117  // (1) - at negative local z
118  retsf->push_back(new Trk::PlaneSurface(
120  transform *
121  Amg::AngleAxis3D(180 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
122  Amg::Translation3D(Amg::Vector3D(0., 0., this->halflengthZ()))),
123  this->faceXYTrapezoidBounds()));
124  // (2) - at positive local z
125  retsf->push_back(new Trk::PlaneSurface(
127  transform *
128  Amg::Translation3D(Amg::Vector3D(0., 0., this->halflengthZ()))),
129  this->faceXYTrapezoidBounds()));
130  // face surfaces yz
131  // transmute cyclical
132  // (3) - at point A, attached to alpha opening angle
133  // the yz bound are created in such a way that the surface y-direction has to
134  // become the z-direction. The resulting surface normal has to point in
135  // y-direction. This is achieved by rotating the plane surface by -90
136  // degrees around the x-axis.
137  // Then, the plane has to be rotated around the z-axis by alpha.
138  //
139  // double c=cos(M_PI/2);
140  // double s=sin(M_PI/2);
141  // Amg::RotationMatrix3D rotate_to_xz;
142  // rotate_to_xz << 1.f, 0.f, 0.f, // 1 0 0
143  // 0.f, c, -s, // 0 0 -1
144  // 0.f, s, c; // 0 1 0
145  //
146  // s=sin(-alpha());
147  // c=cos(-alpha());
148  // Amg::RotationMatrix3D rotate_left;
149  // rotate_left << c, s, 0.f,
150  // -s, c, 0.f,
151  // 0.f, 0.f, 1.f;
152  //
153  // Amg::RotationMatrix3D rotateToFaceAlpha( rotate_left * rotate_to_xz);
154  Amg::RotationMatrix3D rotateToFaceAlpha;
155  {
156  double s=sin(-alpha());
157  double c=cos(-alpha());
158  rotateToFaceAlpha << c, 0.f, s,
159  -s, 0.f, c,
160  0.f, -1.f, 0.f;
161  }
162 
163  RectangleBounds* faceAlphaBounds = this->faceAlphaRectangleBounds();
164  Amg::Vector3D faceAlphaPosition0(
165  -0.5 * (this->minHalflengthX() + this->maxHalflengthX()), 0., 0.);
166  Amg::Vector3D faceAlphaPosition = transform * faceAlphaPosition0;
167  retsf->push_back(new Trk::PlaneSurface( Amg::Translation3D(faceAlphaPosition)
168  * Amg::Transform3D(trapezoidRotation * rotateToFaceAlpha),
169  faceAlphaBounds));
170  // (4) - at point B, attached to beta opening angle
171  // same as above but rotate to the right by beta
172  Amg::RotationMatrix3D rotateToFaceBeta;
173  {
174  double s=sin(beta());
175  double c=cos(beta());
176  rotateToFaceBeta << c, 0.f, s,
177  -s, 0.f, c,
178  0.f, -1.f, 0.f;
179  }
180 
181  RectangleBounds* faceBetaBounds = this->faceBetaRectangleBounds();
182  // Amg::Vector3D
183  // faceBetaPosition(B+faceBetaRotation.colX()*faceBetaBounds->halflengthX());
184  Amg::Vector3D faceBetaPosition0(
185  0.5 * (this->minHalflengthX() + this->maxHalflengthX()), 0., 0.);
186  Amg::Vector3D faceBetaPosition = transform * faceBetaPosition0;
187  retsf->push_back(new Trk::PlaneSurface( Amg::Translation3D(faceBetaPosition)
188  * Amg::Transform3D(trapezoidRotation * rotateToFaceBeta),
189  faceBetaBounds));
190  retsf->push_back(new Trk::PlaneSurface(
192  transform *
193  Amg::AngleAxis3D(180. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.)) *
194  Amg::Translation3D(Amg::Vector3D(0., this->halflengthY(), 0.)) *
195  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
196  Amg::AngleAxis3D(-90. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.))),
197  this->faceZXRectangleBoundsBottom()));
198  // (6) - at positive local x
199  retsf->push_back(new Trk::PlaneSurface(
201  transform *
202  Amg::Translation3D(Amg::Vector3D(0., this->halflengthY(), 0.)) *
203  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
204  Amg::AngleAxis3D(-90. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.))),
205  this->faceZXRectangleBoundsTop()));
206 
207  return retsf;
208 }

◆ dump() [1/2]

MsgStream & Trk::TrapezoidVolumeBounds::dump ( MsgStream &  sl) const
finaloverridevirtual

Output Method for MsgStream.

Implements Trk::VolumeBounds.

Definition at line 261 of file TrapezoidVolumeBounds.cxx.

262 {
263  std::stringstream temp_sl;
264  temp_sl << std::setiosflags(std::ios::fixed);
265  temp_sl << std::setprecision(7);
266  temp_sl
267  << "Trk::TrapezoidVolumeBounds: (minhalfX, halfY, halfZ, alpha, beta) = ";
268  temp_sl << "(" << m_minHalfX << ", " << m_halfY << ", " << m_halfZ;
269  temp_sl << ", " << m_alpha << ", " << m_beta << ")";
270  sl << temp_sl.str();
271  return sl;
272 }

◆ dump() [2/2]

std::ostream & Trk::TrapezoidVolumeBounds::dump ( std::ostream &  sl) const
finaloverridevirtual

Output Method for std::ostream.

Implements Trk::VolumeBounds.

Definition at line 275 of file TrapezoidVolumeBounds.cxx.

276 {
277  std::stringstream temp_sl;
278  temp_sl << std::setiosflags(std::ios::fixed);
279  temp_sl << std::setprecision(7);
280  temp_sl
281  << "Trk::TrapezoidVolumeBounds: (minhalfX, halfY, halfZ, alpha, beta) = ";
282  temp_sl << "(" << m_minHalfX << ", " << m_halfY << ", " << m_halfZ;
283  temp_sl << ", " << m_alpha << ", " << m_beta << ")";
284  sl << temp_sl.str();
285  return sl;
286 }

◆ faceAlphaRectangleBounds()

Trk::RectangleBounds * Trk::TrapezoidVolumeBounds::faceAlphaRectangleBounds ( ) const
private

This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negative local x)

Definition at line 219 of file TrapezoidVolumeBounds.cxx.

220 {
221  return new Trk::RectangleBounds(m_halfY / cos(m_alpha - 0.5 * M_PI), m_halfZ);
222 }

◆ faceBetaRectangleBounds()

Trk::RectangleBounds * Trk::TrapezoidVolumeBounds::faceBetaRectangleBounds ( ) const
private

This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive local x)

Definition at line 225 of file TrapezoidVolumeBounds.cxx.

226 {
227  return new Trk::RectangleBounds(m_halfY / cos(m_beta - 0.5 * M_PI), m_halfZ);
228 }

◆ faceXYTrapezoidBounds()

Trk::TrapezoidBounds * Trk::TrapezoidVolumeBounds::faceXYTrapezoidBounds ( ) const
private

This method returns the associated TrapezoidBounds of the face PlaneSurface parallel to local xy plane.

Definition at line 212 of file TrapezoidVolumeBounds.cxx.

213 {
214  // return new Trk::TrapezoidBounds(m_minHalfX,m_halfY, m_alpha, m_beta);
216 }

◆ faceZXRectangleBoundsBottom()

Trk::RectangleBounds * Trk::TrapezoidVolumeBounds::faceZXRectangleBoundsBottom ( ) const
private

This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, negative local y.

Definition at line 231 of file TrapezoidVolumeBounds.cxx.

232 {
234 }

◆ faceZXRectangleBoundsTop()

Trk::RectangleBounds * Trk::TrapezoidVolumeBounds::faceZXRectangleBoundsTop ( ) const
private

This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, positive local y.

Definition at line 237 of file TrapezoidVolumeBounds.cxx.

238 {
239  // double delta = (m_alpha < m_beta) ? m_alpha - M_PI/2. : m_beta - M_PI/2.;
240  // return new Trk::RectangleBounds(m_halfZ,
241  // 0.5*(m_minHalfX+m_minHalfX+2.*m_halfY/cos(delta)));
243 }

◆ halflengthY()

double Trk::TrapezoidVolumeBounds::halflengthY ( ) const
inline

This method returns the halflength in local y.

Definition at line 163 of file TrapezoidVolumeBounds.h.

163 { return m_halfY; }

◆ halflengthZ()

double Trk::TrapezoidVolumeBounds::halflengthZ ( ) const
inline

This method returns the halflength in local z.

Definition at line 164 of file TrapezoidVolumeBounds.h.

164 { return m_halfZ; }

◆ inside()

bool Trk::TrapezoidVolumeBounds::inside ( const Amg::Vector3D pos,
double  tol = 0. 
) const
finaloverridevirtual

This method checks if position in the 3D volume frame is inside the cylinder.

Implements Trk::VolumeBounds.

Definition at line 246 of file TrapezoidVolumeBounds.cxx.

247 {
248  if (std::abs(pos.z()) > m_halfZ + tol)
249  return false;
250  if (std::abs(pos.y()) > m_halfY + tol)
251  return false;
252  Trk::TrapezoidBounds* faceXYBounds = this->faceXYTrapezoidBounds();
253  Amg::Vector2D locp(pos.x(), pos.y());
254  bool inside(faceXYBounds->inside(locp, tol, tol));
255  delete faceXYBounds;
256  return inside;
257 }

◆ maxHalflengthX()

double Trk::TrapezoidVolumeBounds::maxHalflengthX ( ) const
inline

This method returns the maximal halflength in local x.

Definition at line 160 of file TrapezoidVolumeBounds.h.

160  {
161  return m_maxHalfX;
162 }

◆ minHalflengthX()

double Trk::TrapezoidVolumeBounds::minHalflengthX ( ) const
inline

This method returns the minimal halflength in local x.

Definition at line 157 of file TrapezoidVolumeBounds.h.

157  {
158  return m_minHalfX;
159 }

◆ operator=()

Trk::TrapezoidVolumeBounds & Trk::TrapezoidVolumeBounds::operator= ( const TrapezoidVolumeBounds bobo)

Assignment operator.

Definition at line 89 of file TrapezoidVolumeBounds.cxx.

90 {
91  if (this != &trabo) {
92  m_minHalfX = trabo.m_minHalfX;
93  m_maxHalfX = trabo.m_maxHalfX;
94  m_halfY = trabo.m_halfY;
95  m_halfZ = trabo.m_halfZ;
96  m_alpha = trabo.m_alpha;
97  m_beta = trabo.m_beta;
98  m_objectAccessor = trabo.m_objectAccessor;
99  }
100  return *this;
101 }

Member Data Documentation

◆ m_alpha

double Trk::TrapezoidVolumeBounds::m_alpha
private

opening angle alpha (in point A)

Definition at line 145 of file TrapezoidVolumeBounds.h.

◆ m_beta

double Trk::TrapezoidVolumeBounds::m_beta
private

opening angle beta (in point B)

Definition at line 146 of file TrapezoidVolumeBounds.h.

◆ m_halfY

double Trk::TrapezoidVolumeBounds::m_halfY
private

halflength in y

Definition at line 142 of file TrapezoidVolumeBounds.h.

◆ m_halfZ

double Trk::TrapezoidVolumeBounds::m_halfZ
private

halflength in z

Definition at line 143 of file TrapezoidVolumeBounds.h.

◆ m_maxHalfX

double Trk::TrapezoidVolumeBounds::m_maxHalfX
private

maximal halflength in x

Definition at line 141 of file TrapezoidVolumeBounds.h.

◆ m_minHalfX

double Trk::TrapezoidVolumeBounds::m_minHalfX
private

minimal halflength in x

Definition at line 140 of file TrapezoidVolumeBounds.h.

◆ m_objectAccessor

SixObjectsAccessor Trk::TrapezoidVolumeBounds::m_objectAccessor
private

There's only one single object Acessor for the moment has to be implemented if Cuboids are used more widely.

Definition at line 150 of file TrapezoidVolumeBounds.h.


The documentation for this class was generated from the following files:
Trk::TrapezoidVolumeBounds::maxHalflengthX
double maxHalflengthX() const
This method returns the maximal halflength in local x.
Definition: TrapezoidVolumeBounds.h:160
Trk::RectangleBounds
Definition: RectangleBounds.h:38
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
Trk::TrapezoidVolumeBounds::minHalflengthX
double minHalflengthX() const
This method returns the minimal halflength in local x.
Definition: TrapezoidVolumeBounds.h:157
Trk::TrapezoidVolumeBounds::m_alpha
double m_alpha
opening angle alpha (in point A)
Definition: TrapezoidVolumeBounds.h:145
Trk::TrapezoidVolumeBounds::faceBetaRectangleBounds
RectangleBounds * faceBetaRectangleBounds() const
This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive...
Definition: TrapezoidVolumeBounds.cxx:225
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Trk::TrapezoidVolumeBounds::m_objectAccessor
SixObjectsAccessor m_objectAccessor
There's only one single object Acessor for the moment has to be implemented if Cuboids are used more ...
Definition: TrapezoidVolumeBounds.h:150
M_PI
#define M_PI
Definition: ActiveFraction.h:11
deg
#define deg
Definition: SbPolyhedron.cxx:17
Trk::TrapezoidVolumeBounds::faceAlphaRectangleBounds
RectangleBounds * faceAlphaRectangleBounds() const
This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negativ...
Definition: TrapezoidVolumeBounds.cxx:219
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
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
Trk::TrapezoidVolumeBounds::faceZXRectangleBoundsBottom
RectangleBounds * faceZXRectangleBoundsBottom() const
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane...
Definition: TrapezoidVolumeBounds.cxx:231
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
Trk::TrapezoidVolumeBounds::halflengthY
double halflengthY() const
This method returns the halflength in local y.
Definition: TrapezoidVolumeBounds.h:163
Trk::TrapezoidVolumeBounds::m_beta
double m_beta
opening angle beta (in point B)
Definition: TrapezoidVolumeBounds.h:146
TrigVtx::gamma
@ gamma
Definition: TrigParticleTable.h:26
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
Trk::TrapezoidVolumeBounds::TrapezoidVolumeBounds
TrapezoidVolumeBounds()
Default Constructor.
Definition: TrapezoidVolumeBounds.cxx:26
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
Trk::TrapezoidVolumeBounds::m_halfY
double m_halfY
halflength in y
Definition: TrapezoidVolumeBounds.h:142
Trk::TrapezoidVolumeBounds::m_minHalfX
double m_minHalfX
minimal halflength in x
Definition: TrapezoidVolumeBounds.h:140
Trk::TrapezoidVolumeBounds::inside
bool inside(const Amg::Vector3D &, double tol=0.) const override final
This method checks if position in the 3D volume frame is inside the cylinder.
Definition: TrapezoidVolumeBounds.cxx:246
Trk::TrapezoidVolumeBounds::faceZXRectangleBoundsTop
RectangleBounds * faceZXRectangleBoundsTop() const
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane...
Definition: TrapezoidVolumeBounds.cxx:237
Trk::TrapezoidVolumeBounds::faceXYTrapezoidBounds
TrapezoidBounds * faceXYTrapezoidBounds() const
This method returns the associated TrapezoidBounds of the face PlaneSurface parallel to local xy plan...
Definition: TrapezoidVolumeBounds.cxx:212
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::TrapezoidBounds
Definition: TrapezoidBounds.h:43
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Trk::TrapezoidVolumeBounds::alpha
double alpha() const
This method returns the opening angle in point A (negative local x)
Definition: TrapezoidVolumeBounds.h:165
Trk::ObjectAccessor
Definition: ObjectAccessor.h:15
Trk::TrapezoidVolumeBounds::m_maxHalfX
double m_maxHalfX
maximal halflength in x
Definition: TrapezoidVolumeBounds.h:141
Trk::PlaneSurface
Definition: PlaneSurface.h:64
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::TrapezoidVolumeBounds::beta
double beta() const
This method returns the opening angle in point B (negative local x)
Definition: TrapezoidVolumeBounds.h:166
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
Trk::TrapezoidVolumeBounds::halflengthZ
double halflengthZ() const
This method returns the halflength in local z.
Definition: TrapezoidVolumeBounds.h:164
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
python.compressB64.c
def c
Definition: compressB64.py:93
Trk::TrapezoidVolumeBounds::m_halfZ
double m_halfZ
halflength in z
Definition: TrapezoidVolumeBounds.h:143
Trk::VolumeBounds::VolumeBounds
VolumeBounds()
Default Constructor.
Definition: VolumeBounds.h:48