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

#include <DoubleTrapezoidVolumeBounds.h>

Inheritance diagram for Trk::DoubleTrapezoidVolumeBounds:
Collaboration diagram for Trk::DoubleTrapezoidVolumeBounds:

Public Member Functions

 DoubleTrapezoidVolumeBounds ()
 Default Constructor. More...
 
 DoubleTrapezoidVolumeBounds (double minhlenghtx, double medhlengthx, double maxhlengthx, double hlenghty1, double hlenghty2, double hlengthz)
 Constructor - the double trapezoid boundaries (symmetric trapezoid/diamond) More...
 
 DoubleTrapezoidVolumeBounds (const DoubleTrapezoidVolumeBounds &bobo)
 Copy Constructor. More...
 
virtual ~DoubleTrapezoidVolumeBounds ()
 Destructor. More...
 
DoubleTrapezoidVolumeBoundsoperator= (const DoubleTrapezoidVolumeBounds &bobo)
 Assignment operator. More...
 
DoubleTrapezoidVolumeBoundsclone () 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 final
 Provide accessor for BoundarySurfaces. More...
 
double minHalflengthX () const
 This method returns the X halflength at minimal Y. More...
 
double medHalflengthX () const
 This method returns the (maximal) halflength in local x. More...
 
double maxHalflengthX () const
 This method returns the X halflength at maximal Y (local coordinates) More...
 
double halflengthY1 () const
 This method returns the halflength1 in local y. More...
 
double halflengthY2 () const
 This method returns the halflength2 in local y. More...
 
double halflengthZ () const
 This method returns the halflength in local z. More...
 
double alpha1 () const
 This method returns the opening angle in point A (negative local x) More...
 
double alpha2 () const
 This method returns the opening angle in point A' (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

DiamondBoundsfaceXYDiamondBounds () const
 This method returns the associated DoubleTrapezoidBounds of the face PlaneSurface parallel to local xy plane. More...
 
RectangleBoundsfaceAlpha1RectangleBounds () const
 This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negative local x) More...
 
RectangleBoundsfaceAlpha2RectangleBounds () const
 
RectangleBoundsfaceBeta1RectangleBounds () const
 This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive local x) More...
 
RectangleBoundsfaceBeta2RectangleBounds () const
 
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 Y halflength in x More...
 
double m_medHalfX
 maximal halflength in x More...
 
double m_maxHalfX
 maximal Y halflength in x More...
 
double m_halfY1
 halflength in y More...
 
double m_halfY2
 halflength in y More...
 
double m_halfZ
 halflength in z More...
 
double m_alpha1
 opening angle alpha (in point A) More...
 
double m_alpha2
 opening angle alpha (in point A') More...
 
Trk::EightObjectsAccessor 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 double trapezoidal shaped Volume, the decomposeToSurfaces method creates a vector of 8 surfaces:

BoundarySurfaceFace [index]:

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

\( - positiveFaceXY [1] : Diamond Trk::PlaneSurface, parallel to \) xy \( plane at positive \) z \( - trapezoidFaceAlpha1 [2] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at negative \) x \( (associated to alpha1) - trapezoidFaceBeta1 [3] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at positive \) x \( (associated to beta1) - trapezoidFaceAlpha2 [5] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at negative \) x \( (associated to alpha2) - trapezoidFaceBeta2 [6] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at positive \) x \( (associated to beta2) - 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 66 of file DoubleTrapezoidVolumeBounds.h.

Constructor & Destructor Documentation

◆ DoubleTrapezoidVolumeBounds() [1/3]

Trk::DoubleTrapezoidVolumeBounds::DoubleTrapezoidVolumeBounds ( )

Default Constructor.

Definition at line 23 of file DoubleTrapezoidVolumeBounds.cxx.

24  : VolumeBounds()
25  , m_minHalfX(0.)
26  , m_medHalfX(0.)
27  , m_maxHalfX(0.)
28  , m_halfY1(0.)
29  , m_halfY2(0.)
30  , m_halfZ(0.)
31  , m_alpha1(0.)
32  , m_alpha2(0.)
34 {}

◆ DoubleTrapezoidVolumeBounds() [2/3]

Trk::DoubleTrapezoidVolumeBounds::DoubleTrapezoidVolumeBounds ( double  minhlenghtx,
double  medhlengthx,
double  maxhlengthx,
double  hlenghty1,
double  hlenghty2,
double  hlengthz 
)

Constructor - the double trapezoid boundaries (symmetric trapezoid/diamond)

Definition at line 36 of file DoubleTrapezoidVolumeBounds.cxx.

43  : VolumeBounds()
44  , m_minHalfX(minhalex)
45  , m_medHalfX(medhalex)
46  , m_maxHalfX(maxhalex)
47  , m_halfY1(haley1)
48  , m_halfY2(haley2)
49  , m_halfZ(halez)
50  , m_alpha1(0.)
51  , m_alpha2(0.)
53 {
54  m_alpha1 = atan2(m_medHalfX - m_minHalfX, 2. * m_halfY1);
55  m_alpha2 = atan2(m_medHalfX - m_maxHalfX, 2. * m_halfY2);
56 }

◆ DoubleTrapezoidVolumeBounds() [3/3]

Trk::DoubleTrapezoidVolumeBounds::DoubleTrapezoidVolumeBounds ( const DoubleTrapezoidVolumeBounds bobo)

Copy Constructor.

Definition at line 58 of file DoubleTrapezoidVolumeBounds.cxx.

60  : VolumeBounds()
61  , m_minHalfX(trabo.m_minHalfX)
62  , m_medHalfX(trabo.m_medHalfX)
63  , m_maxHalfX(trabo.m_maxHalfX)
64  , m_halfY1(trabo.m_halfY1)
65  , m_halfY2(trabo.m_halfY2)
66  , m_halfZ(trabo.m_halfZ)
67  , m_alpha1(trabo.m_alpha1)
68  , m_alpha2(trabo.m_alpha2)
69  , m_objectAccessor(trabo.m_objectAccessor)
70 {}

◆ ~DoubleTrapezoidVolumeBounds()

Trk::DoubleTrapezoidVolumeBounds::~DoubleTrapezoidVolumeBounds ( )
virtualdefault

Destructor.

Member Function Documentation

◆ alpha1()

double Trk::DoubleTrapezoidVolumeBounds::alpha1 ( ) const
inline

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

Definition at line 204 of file DoubleTrapezoidVolumeBounds.h.

204 { return m_alpha1; }

◆ alpha2()

double Trk::DoubleTrapezoidVolumeBounds::alpha2 ( ) const
inline

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

Definition at line 206 of file DoubleTrapezoidVolumeBounds.h.

206 { return m_alpha2; }

◆ boundarySurfaceAccessor()

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

Provide accessor for BoundarySurfaces.

Implements Trk::VolumeBounds.

Definition at line 208 of file DoubleTrapezoidVolumeBounds.h.

209  {
211 }

◆ clone()

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

Virtual constructor.

Implements Trk::VolumeBounds.

Definition at line 176 of file DoubleTrapezoidVolumeBounds.h.

176  {
177  return new DoubleTrapezoidVolumeBounds(*this);
178 }

◆ decomposeToSurfaces()

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

Method to decompose the Bounds into Surfaces.

Implements Trk::VolumeBounds.

Definition at line 93 of file DoubleTrapezoidVolumeBounds.cxx.

95 {
96  std::vector<const Trk::Surface*>* retsf =
97  new std::vector<const Trk::Surface*>;
98 
99  // face surfaces xy
100  Amg::RotationMatrix3D diamondRotation(transform.rotation());
101  Amg::Vector3D diamondX(diamondRotation.col(0));
102  Amg::Vector3D diamondY(diamondRotation.col(1));
103  Amg::Vector3D diamondZ(diamondRotation.col(2));
104  Amg::Vector3D diamondCenter(transform.translation());
105 
106  // (1) - at negative local z
107  retsf->push_back(new Trk::PlaneSurface(
109  transform *
110  Amg::Translation3D(Amg::Vector3D(0., 0., -this->halflengthZ())) *
112  ),
113  this->faceXYDiamondBounds()));
114  // (2) - at positive local z
115  retsf->push_back(new Trk::PlaneSurface(
117  transform *
118  Amg::Translation3D(Amg::Vector3D(0., 0., this->halflengthZ()))),
119  this->faceXYDiamondBounds()));
120  // face surfaces yz
121  // transmute cyclical
122  // (3) - at point A, attached to alpha opening angle
123  // in the local diamond coordinate system the center of the bottom left yz face plane is:
124  Amg::Vector3D A(- this->minHalflengthX(), -this->halflengthY1(), 0.);
125  Amg::AngleAxis3D alpha1ZRotation(this->alpha1(), Amg::Vector3D(0., 0., 1.));
126  // the face plane has to be rotated first by 90 degrees around the z-axis
127  // because the x-axis should point into ~y direction
128  // then it has to be rotated around the y-axis by 90 degrees to become a yz plane
129  // finally it is rotated by alpha1 around the z-axis
130  Amg::RotationMatrix3D alpha1Rotation(
131  alpha1ZRotation *
132  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
134  RectangleBounds* faceAlpha1Bounds = this->faceAlpha1RectangleBounds();
135  Amg::Vector3D faceAlpha1Position(A);
136  retsf->push_back(new Trk::PlaneSurface(
138  transform * Amg::Translation3D(faceAlpha1Position) * Amg::Transform3D(alpha1Rotation) ),
139  faceAlpha1Bounds));
140  // (4) - at point B, attached to beta opening angle
141  // in the local diamond coordinate system the center of the bottom right yz face plane is:
142  Amg::Vector3D B(this->minHalflengthX(), -this->halflengthY1(), 0.);
143  Amg::AngleAxis3D beta1ZRotation(-this->alpha1(), Amg::Vector3D(0., 0., 1.));
144  Amg::RotationMatrix3D beta1Rotation(
145  beta1ZRotation *
148  RectangleBounds* faceBeta1Bounds = this->faceBeta1RectangleBounds();
149  Amg::Vector3D faceBeta1Position(B);
150  retsf->push_back(new Trk::PlaneSurface(
151  transform * Amg::Translation3D(faceBeta1Position) * Amg::Transform3D(beta1Rotation) ,
152  faceBeta1Bounds));
153  // face surfaces yz
154  // transmute cyclical
155  // (5) - at point A', attached to alpha opening angle
156  // center of the left top yz face plate;
157  Amg::Vector3D AA(- this->maxHalflengthX(), this->halflengthY2(), 0.);
158  Amg::AngleAxis3D alpha2ZRotation(-this->alpha2(), Amg::Vector3D(0., 0., 1.));
159  Amg::RotationMatrix3D alpha2Rotation(
160  alpha2ZRotation *
161  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
162  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 0., 1.)));
163  RectangleBounds* faceAlpha2Bounds = this->faceAlpha2RectangleBounds();
164  Amg::Vector3D faceAlpha2Position(
165  AA);
166  retsf->push_back(new Trk::PlaneSurface(
168  transform * Amg::Translation3D(faceAlpha2Position) * Amg::Transform3D(alpha2Rotation)),
169  faceAlpha2Bounds));
170  // (6) - at point B', attached to beta opening angle
171  // center of the right top yz face plate;
172  Amg::Vector3D BB( this->maxHalflengthX(),this->halflengthY2(), 0.);
173  Amg::AngleAxis3D beta2ZRotation(this->alpha2(), Amg::Vector3D(0., 0., 1.));
174  Amg::RotationMatrix3D beta2Rotation(
175  beta2ZRotation *
177  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 0., 1.)));
178  RectangleBounds* faceBeta2Bounds = this->faceBeta2RectangleBounds();
179  Amg::Vector3D faceBeta2Position(BB);
180  retsf->push_back(new Trk::PlaneSurface(
181  transform * Amg::Translation3D(faceBeta2Position) * Amg::Transform3D(beta2Rotation),
182  faceBeta2Bounds));
183  // face surfaces zx
184  // (7) - at negative local y
185  retsf->push_back(new Trk::PlaneSurface(
187  transform *
188  Amg::Translation3D(Amg::Vector3D(0., -2 * this->halflengthY1(), 0.)) *
189  Amg::AngleAxis3D(180. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.)) *
190  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
191  Amg::AngleAxis3D(-90. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.))),
192  this->faceZXRectangleBoundsBottom()));
193  // (8) - at positive local y
194  retsf->push_back(new Trk::PlaneSurface(
196  transform *
197  Amg::Translation3D(Amg::Vector3D(0., 2*this->halflengthY2(), 0.)) *
198  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
199  Amg::AngleAxis3D(-90. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.))),
200  this->faceZXRectangleBoundsTop()));
201 
202  return retsf;
203 }

◆ dump() [1/2]

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

Output Method for MsgStream.

Implements Trk::VolumeBounds.

Definition at line 276 of file DoubleTrapezoidVolumeBounds.cxx.

277 {
278  std::stringstream temp_sl;
279  temp_sl << std::setiosflags(std::ios::fixed);
280  temp_sl << std::setprecision(7);
281  temp_sl << "Trk::DoubleTrapezoidVolumeBounds: (minhalfX, medhalfX, maxhalfX, "
282  "halfY1, halfY2, halfZ) = ";
283  temp_sl << "(" << m_minHalfX << ", " << m_medHalfX << ", " << m_maxHalfX;
284  temp_sl << ", " << m_halfY1 << ", " << m_halfY2 << ", " << m_halfZ << ")";
285  sl << temp_sl.str();
286  return sl;
287 }

◆ dump() [2/2]

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

Output Method for std::ostream.

Implements Trk::VolumeBounds.

Definition at line 290 of file DoubleTrapezoidVolumeBounds.cxx.

291 {
292  std::stringstream temp_sl;
293  temp_sl << std::setiosflags(std::ios::fixed);
294  temp_sl << std::setprecision(7);
295  temp_sl << "Trk::DoubleTrapezoidVolumeBounds: ) =(minhalfX, medhalfX, "
296  "maxhalfX, halfY1, halfY2, halfZ) ";
297  temp_sl << "(" << m_minHalfX << ", " << m_medHalfX << ", " << m_maxHalfX;
298  temp_sl << ", " << m_halfY1 << ", " << m_halfY2 << ", " << m_halfZ << ")";
299  sl << temp_sl.str();
300  return sl;
301 }

◆ faceAlpha1RectangleBounds()

Trk::RectangleBounds * Trk::DoubleTrapezoidVolumeBounds::faceAlpha1RectangleBounds ( ) const
private

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

Definition at line 214 of file DoubleTrapezoidVolumeBounds.cxx.

215 {
217 }

◆ faceAlpha2RectangleBounds()

Trk::RectangleBounds * Trk::DoubleTrapezoidVolumeBounds::faceAlpha2RectangleBounds ( ) const
private

Definition at line 220 of file DoubleTrapezoidVolumeBounds.cxx.

221 {
223 }

◆ faceBeta1RectangleBounds()

Trk::RectangleBounds * Trk::DoubleTrapezoidVolumeBounds::faceBeta1RectangleBounds ( ) const
private

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

Definition at line 226 of file DoubleTrapezoidVolumeBounds.cxx.

227 {
229 }

◆ faceBeta2RectangleBounds()

Trk::RectangleBounds * Trk::DoubleTrapezoidVolumeBounds::faceBeta2RectangleBounds ( ) const
private

Definition at line 232 of file DoubleTrapezoidVolumeBounds.cxx.

233 {
235 }

◆ faceXYDiamondBounds()

Trk::DiamondBounds * Trk::DoubleTrapezoidVolumeBounds::faceXYDiamondBounds ( ) const
private

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

Definition at line 207 of file DoubleTrapezoidVolumeBounds.cxx.

208 {
209  return new Trk::DiamondBounds(
211 }

◆ faceZXRectangleBoundsBottom()

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

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

Definition at line 238 of file DoubleTrapezoidVolumeBounds.cxx.

239 {
241 }

◆ faceZXRectangleBoundsTop()

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

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

Definition at line 244 of file DoubleTrapezoidVolumeBounds.cxx.

245 {
247 }

◆ halflengthY1()

double Trk::DoubleTrapezoidVolumeBounds::halflengthY1 ( ) const
inline

This method returns the halflength1 in local y.

Definition at line 192 of file DoubleTrapezoidVolumeBounds.h.

192  {
193  return m_halfY1;
194 }

◆ halflengthY2()

double Trk::DoubleTrapezoidVolumeBounds::halflengthY2 ( ) const
inline

This method returns the halflength2 in local y.

Definition at line 196 of file DoubleTrapezoidVolumeBounds.h.

196  {
197  return m_halfY2;
198 }

◆ halflengthZ()

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

This method returns the halflength in local z.

Definition at line 200 of file DoubleTrapezoidVolumeBounds.h.

200  {
201  return m_halfZ;
202 }

◆ inside()

bool Trk::DoubleTrapezoidVolumeBounds::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 258 of file DoubleTrapezoidVolumeBounds.cxx.

260 {
261  if (std::abs(pos.z()) > m_halfZ + tol)
262  return false;
263  if (pos.y() < -2 * m_halfY1 - tol)
264  return false;
265  if (pos.y() > 2 * m_halfY2 + tol)
266  return false;
267  Trk::DiamondBounds* faceXYBounds = this->faceXYDiamondBounds();
268  Amg::Vector2D locp(pos.x(), pos.y());
269  bool inside(faceXYBounds->inside(locp, tol, tol));
270  delete faceXYBounds;
271  return inside;
272 }

◆ maxHalflengthX()

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

This method returns the X halflength at maximal Y (local coordinates)

Definition at line 188 of file DoubleTrapezoidVolumeBounds.h.

188  {
189  return m_maxHalfX;
190 }

◆ medHalflengthX()

double Trk::DoubleTrapezoidVolumeBounds::medHalflengthX ( ) const
inline

This method returns the (maximal) halflength in local x.

Definition at line 184 of file DoubleTrapezoidVolumeBounds.h.

184  {
185  return m_medHalfX;
186 }

◆ minHalflengthX()

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

This method returns the X halflength at minimal Y.

Definition at line 180 of file DoubleTrapezoidVolumeBounds.h.

180  {
181  return m_minHalfX;
182 }

◆ operator=()

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

Assignment operator.

Definition at line 75 of file DoubleTrapezoidVolumeBounds.cxx.

77 {
78  if (this != &trabo) {
79  m_minHalfX = trabo.m_minHalfX;
80  m_medHalfX = trabo.m_medHalfX;
81  m_maxHalfX = trabo.m_maxHalfX;
82  m_halfY1 = trabo.m_halfY1;
83  m_halfY2 = trabo.m_halfY2;
84  m_halfZ = trabo.m_halfZ;
85  m_alpha1 = trabo.m_alpha1;
86  m_alpha2 = trabo.m_alpha2;
87  m_objectAccessor = trabo.m_objectAccessor;
88  }
89  return *this;
90 }

Member Data Documentation

◆ m_alpha1

double Trk::DoubleTrapezoidVolumeBounds::m_alpha1
private

opening angle alpha (in point A)

Definition at line 165 of file DoubleTrapezoidVolumeBounds.h.

◆ m_alpha2

double Trk::DoubleTrapezoidVolumeBounds::m_alpha2
private

opening angle alpha (in point A')

Definition at line 166 of file DoubleTrapezoidVolumeBounds.h.

◆ m_halfY1

double Trk::DoubleTrapezoidVolumeBounds::m_halfY1
private

halflength in y

Definition at line 161 of file DoubleTrapezoidVolumeBounds.h.

◆ m_halfY2

double Trk::DoubleTrapezoidVolumeBounds::m_halfY2
private

halflength in y

Definition at line 162 of file DoubleTrapezoidVolumeBounds.h.

◆ m_halfZ

double Trk::DoubleTrapezoidVolumeBounds::m_halfZ
private

halflength in z

Definition at line 163 of file DoubleTrapezoidVolumeBounds.h.

◆ m_maxHalfX

double Trk::DoubleTrapezoidVolumeBounds::m_maxHalfX
private

maximal Y halflength in x

Definition at line 160 of file DoubleTrapezoidVolumeBounds.h.

◆ m_medHalfX

double Trk::DoubleTrapezoidVolumeBounds::m_medHalfX
private

maximal halflength in x

Definition at line 159 of file DoubleTrapezoidVolumeBounds.h.

◆ m_minHalfX

double Trk::DoubleTrapezoidVolumeBounds::m_minHalfX
private

minimal Y halflength in x

Definition at line 158 of file DoubleTrapezoidVolumeBounds.h.

◆ m_objectAccessor

Trk::EightObjectsAccessor Trk::DoubleTrapezoidVolumeBounds::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 173 of file DoubleTrapezoidVolumeBounds.h.


The documentation for this class was generated from the following files:
Trk::DoubleTrapezoidVolumeBounds::m_alpha2
double m_alpha2
opening angle alpha (in point A')
Definition: DoubleTrapezoidVolumeBounds.h:166
Trk::RectangleBounds
Definition: RectangleBounds.h:38
Trk::DoubleTrapezoidVolumeBounds::m_halfY1
double m_halfY1
halflength in y
Definition: DoubleTrapezoidVolumeBounds.h:161
Trk::DoubleTrapezoidVolumeBounds::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: DoubleTrapezoidVolumeBounds.h:173
Trk::DoubleTrapezoidVolumeBounds::m_halfZ
double m_halfZ
halflength in z
Definition: DoubleTrapezoidVolumeBounds.h:163
Trk::DoubleTrapezoidVolumeBounds::m_minHalfX
double m_minHalfX
minimal Y halflength in x
Definition: DoubleTrapezoidVolumeBounds.h:158
Trk::DoubleTrapezoidVolumeBounds::faceXYDiamondBounds
DiamondBounds * faceXYDiamondBounds() const
This method returns the associated DoubleTrapezoidBounds of the face PlaneSurface parallel to local x...
Definition: DoubleTrapezoidVolumeBounds.cxx:207
Trk::DoubleTrapezoidVolumeBounds::m_alpha1
double m_alpha1
opening angle alpha (in point A)
Definition: DoubleTrapezoidVolumeBounds.h:165
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Trk::DoubleTrapezoidVolumeBounds::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: DoubleTrapezoidVolumeBounds.cxx:258
deg
#define deg
Definition: SbPolyhedron.cxx:17
Trk::DoubleTrapezoidVolumeBounds::DoubleTrapezoidVolumeBounds
DoubleTrapezoidVolumeBounds()
Default Constructor.
Definition: DoubleTrapezoidVolumeBounds.cxx:23
Trk::DoubleTrapezoidVolumeBounds::m_halfY2
double m_halfY2
halflength in y
Definition: DoubleTrapezoidVolumeBounds.h:162
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
Trk::DiamondBounds::inside
virtual bool inside(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const override final
The orientation of the Diamond is according to the figure.
Definition: DiamondBounds.cxx:61
Trk::DoubleTrapezoidVolumeBounds::halflengthZ
double halflengthZ() const
This method returns the halflength in local z.
Definition: DoubleTrapezoidVolumeBounds.h:200
Trk::DoubleTrapezoidVolumeBounds::faceAlpha2RectangleBounds
RectangleBounds * faceAlpha2RectangleBounds() const
Definition: DoubleTrapezoidVolumeBounds.cxx:220
Trk::DoubleTrapezoidVolumeBounds::maxHalflengthX
double maxHalflengthX() const
This method returns the X halflength at maximal Y (local coordinates)
Definition: DoubleTrapezoidVolumeBounds.h:188
A
Trk::DiamondBounds
Definition: DiamondBounds.h:37
Trk::DoubleTrapezoidVolumeBounds::halflengthY1
double halflengthY1() const
This method returns the halflength1 in local y.
Definition: DoubleTrapezoidVolumeBounds.h:192
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::DoubleTrapezoidVolumeBounds::faceBeta2RectangleBounds
RectangleBounds * faceBeta2RectangleBounds() const
Definition: DoubleTrapezoidVolumeBounds.cxx:232
Trk::DoubleTrapezoidVolumeBounds::halflengthY2
double halflengthY2() const
This method returns the halflength2 in local y.
Definition: DoubleTrapezoidVolumeBounds.h:196
Trk::DoubleTrapezoidVolumeBounds::alpha1
double alpha1() const
This method returns the opening angle in point A (negative local x)
Definition: DoubleTrapezoidVolumeBounds.h:204
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
Trk::DoubleTrapezoidVolumeBounds::alpha2
double alpha2() const
This method returns the opening angle in point A' (negative local x)
Definition: DoubleTrapezoidVolumeBounds.h:206
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Trk::ObjectAccessor
Definition: ObjectAccessor.h:15
Trk::DoubleTrapezoidVolumeBounds::faceZXRectangleBoundsTop
RectangleBounds * faceZXRectangleBoundsTop() const
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane...
Definition: DoubleTrapezoidVolumeBounds.cxx:244
Trk::DoubleTrapezoidVolumeBounds::faceAlpha1RectangleBounds
RectangleBounds * faceAlpha1RectangleBounds() const
This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negativ...
Definition: DoubleTrapezoidVolumeBounds.cxx:214
Trk::DoubleTrapezoidVolumeBounds::minHalflengthX
double minHalflengthX() const
This method returns the X halflength at minimal Y.
Definition: DoubleTrapezoidVolumeBounds.h:180
Trk::PlaneSurface
Definition: PlaneSurface.h:64
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
Trk::DoubleTrapezoidVolumeBounds::faceZXRectangleBoundsBottom
RectangleBounds * faceZXRectangleBoundsBottom() const
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane...
Definition: DoubleTrapezoidVolumeBounds.cxx:238
Trk::DoubleTrapezoidVolumeBounds::m_maxHalfX
double m_maxHalfX
maximal Y halflength in x
Definition: DoubleTrapezoidVolumeBounds.h:160
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
Trk::DoubleTrapezoidVolumeBounds::faceBeta1RectangleBounds
RectangleBounds * faceBeta1RectangleBounds() const
This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive...
Definition: DoubleTrapezoidVolumeBounds.cxx:226
Trk::DoubleTrapezoidVolumeBounds::m_medHalfX
double m_medHalfX
maximal halflength in x
Definition: DoubleTrapezoidVolumeBounds.h:159
Trk::VolumeBounds::VolumeBounds
VolumeBounds()
Default Constructor.
Definition: VolumeBounds.h:48