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::AngleAxis3D(180 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
111  Amg::Translation3D(Amg::Vector3D(0., 0., this->halflengthZ()))),
112  this->faceXYDiamondBounds()));
113  // (2) - at positive local z
114  retsf->push_back(new Trk::PlaneSurface(
116  transform *
117  Amg::Translation3D(Amg::Vector3D(0., 0., this->halflengthZ()))),
118  this->faceXYDiamondBounds()));
119  // face surfaces yz
120  // transmute cyclical
121  // (3) - at point A, attached to alpha opening angle
123  diamondCenter - this->minHalflengthX() * diamondX -
124  2 * this->halflengthY1() * diamondY);
125  Amg::AngleAxis3D alpha1ZRotation(this->alpha1(), Amg::Vector3D(0., 0., 1.));
126  Amg::RotationMatrix3D alpha1Rotation(
127  diamondRotation * alpha1ZRotation *
128  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
130  RectangleBounds* faceAlpha1Bounds = this->faceAlpha1RectangleBounds();
131  Amg::Vector3D faceAlpha1Position(
132  A + alpha1Rotation.col(0) * faceAlpha1Bounds->halflengthX());
133  retsf->push_back(new Trk::PlaneSurface(
135  alpha1Rotation * Amg::Translation3D(faceAlpha1Position)),
136  faceAlpha1Bounds));
137  // (4) - at point B, attached to beta opening angle
139  diamondCenter + this->minHalflengthX() * diamondX -
140  2 * this->halflengthY1() * diamondY);
141  Amg::AngleAxis3D beta1ZRotation(-this->alpha1(), Amg::Vector3D(0., 0., 1.));
142  Amg::RotationMatrix3D beta1Rotation(
143  diamondRotation * beta1ZRotation *
146  RectangleBounds* faceBeta1Bounds = this->faceBeta1RectangleBounds();
147  Amg::Vector3D faceBeta1Position(
148  B + beta1Rotation.col(0) * faceBeta1Bounds->halflengthX());
149  retsf->push_back(new Trk::PlaneSurface(
150  Amg::Transform3D(beta1Rotation * Amg::Translation3D(faceBeta1Position)),
151  faceBeta1Bounds));
152  // face surfaces yz
153  // transmute cyclical
154  // (5) - at point A', attached to alpha opening angle
155  Amg::Vector3D AA(
156  diamondCenter - this->maxHalflengthX() * diamondX +
157  2 * this->halflengthY2() * diamondY);
158  Amg::AngleAxis3D alpha2ZRotation(-this->alpha2(), Amg::Vector3D(0., 0., 1.));
159  Amg::RotationMatrix3D alpha2Rotation(
160  diamondRotation * 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 + alpha2Rotation.col(0) * faceAlpha2Bounds->halflengthX());
166  retsf->push_back(new Trk::PlaneSurface(
168  alpha2Rotation * Amg::Translation3D(faceAlpha2Position)),
169  faceAlpha2Bounds));
170  // (6) - at point B', attached to beta opening angle
171  Amg::Vector3D BB(
172  diamondCenter + this->maxHalflengthX() * diamondX +
173  2 * this->halflengthY2() * diamondY);
174  Amg::AngleAxis3D beta2ZRotation(this->alpha2(), Amg::Vector3D(0., 0., 1.));
175  Amg::RotationMatrix3D beta2Rotation(
176  diamondRotation * beta2ZRotation *
178  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 0., 1.)));
179  RectangleBounds* faceBeta2Bounds = this->faceBeta2RectangleBounds();
180  Amg::Vector3D faceBeta2Position(
181  BB + beta2Rotation.col(0) * faceBeta2Bounds->halflengthX());
182  retsf->push_back(new Trk::PlaneSurface(
183  Amg::Transform3D(beta2Rotation * Amg::Translation3D(faceBeta2Position)),
184  faceBeta2Bounds));
185  // face surfaces zx
186  // (7) - at negative local y
187  retsf->push_back(new Trk::PlaneSurface(
189  transform *
190  Amg::AngleAxis3D(180. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.)) *
191  Amg::Translation3D(Amg::Vector3D(0., 2 * this->halflengthY1(), 0.)) *
192  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
193  Amg::AngleAxis3D(-90. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.))),
194  this->faceZXRectangleBoundsBottom()));
195  // (8) - at positive local y
196  retsf->push_back(new Trk::PlaneSurface(
198  transform *
199  Amg::Translation3D(Amg::Vector3D(0., this->halflengthY2(), 0.)) *
200  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 1., 0.)) *
201  Amg::AngleAxis3D(-90. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.))),
202  this->faceZXRectangleBoundsTop()));
203 
204  return retsf;
205 }

◆ dump() [1/2]

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

Output Method for MsgStream.

Implements Trk::VolumeBounds.

Definition at line 278 of file DoubleTrapezoidVolumeBounds.cxx.

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

◆ dump() [2/2]

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

Output Method for std::ostream.

Implements Trk::VolumeBounds.

Definition at line 292 of file DoubleTrapezoidVolumeBounds.cxx.

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

◆ 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 216 of file DoubleTrapezoidVolumeBounds.cxx.

217 {
219 }

◆ faceAlpha2RectangleBounds()

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

Definition at line 222 of file DoubleTrapezoidVolumeBounds.cxx.

223 {
225 }

◆ 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 228 of file DoubleTrapezoidVolumeBounds.cxx.

229 {
231 }

◆ faceBeta2RectangleBounds()

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

Definition at line 234 of file DoubleTrapezoidVolumeBounds.cxx.

235 {
237 }

◆ 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 209 of file DoubleTrapezoidVolumeBounds.cxx.

210 {
211  return new Trk::DiamondBounds(
213 }

◆ 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 240 of file DoubleTrapezoidVolumeBounds.cxx.

241 {
243 }

◆ 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 246 of file DoubleTrapezoidVolumeBounds.cxx.

247 {
249 }

◆ 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 260 of file DoubleTrapezoidVolumeBounds.cxx.

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

◆ 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:209
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:260
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:222
Trk::DoubleTrapezoidVolumeBounds::maxHalflengthX
double maxHalflengthX() const
This method returns the X halflength at maximal Y (local coordinates)
Definition: DoubleTrapezoidVolumeBounds.h:188
dqt_zlumi_alleff_HIST.A
A
Definition: dqt_zlumi_alleff_HIST.py:110
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:234
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:246
Trk::DoubleTrapezoidVolumeBounds::faceAlpha1RectangleBounds
RectangleBounds * faceAlpha1RectangleBounds() const
This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negativ...
Definition: DoubleTrapezoidVolumeBounds.cxx:216
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:240
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:228
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