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

#include <CylinderVolumeBounds.h>

Inheritance diagram for Trk::CylinderVolumeBounds:
Collaboration diagram for Trk::CylinderVolumeBounds:

Public Member Functions

 CylinderVolumeBounds ()
 Default Constructor. More...
 
 CylinderVolumeBounds (double radius, double halez)
 Constructor - full cylinder. More...
 
 CylinderVolumeBounds (double rinner, double router, double halez)
 Constructor - extruded cylinder. More...
 
 CylinderVolumeBounds (double rinner, double router, double halfPhiSector, double halez)
 Constructor - extruded cylinder segment. More...
 
 CylinderVolumeBounds (const CylinderVolumeBounds &cylbo)
 Copy Constructor. More...
 
virtual ~CylinderVolumeBounds ()
 Destructor. More...
 
CylinderVolumeBoundsoperator= (const CylinderVolumeBounds &cylbo)
 Assignment operator. More...
 
CylinderVolumeBoundsclone () const override
 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 boundarySurfaces. More...
 
ObjectAccessor boundarySurfaceAccessor (const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override final
 Provide accessor for BoundarySurfaces. More...
 
double innerRadius () const
 This method returns the inner radius. More...
 
double outerRadius () const
 This method returns the outer radius. More...
 
double mediumRadius () const
 This method returns the medium radius. More...
 
double deltaRadius () const
 This method returns the delta radius. More...
 
double halfPhiSector () const
 This method returns the halfPhiSector angle. More...
 
double halflengthZ () const
 This method returns the halflengthZ. 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

CylinderBoundsinnerCylinderBounds () const
 This method returns the associated CylinderBounds of the inner CylinderSurfaces. More...
 
CylinderBoundsouterCylinderBounds () const
 This method returns the associated CylinderBounds of the outer CylinderSurfaces. More...
 
DiscBoundsbottomDiscBounds () const
 This method returns the associated DiscBounds for the bottom/top DiscSurface. More...
 
DiscBoundstopDiscBounds () const
 This method returns the associated DiscBounds for the bottom/top DiscSurface. More...
 
RectangleBoundssectorPlaneBounds () const
 This method returns the associated PlaneBounds limiting a sectoral CylinderVolume. More...
 
void createBoundarySurfaceAccessors ()
 Private method to construct the accessors. More...
 

Private Attributes

double m_innerRadius
 
double m_outerRadius
 
double m_halfPhiSector
 
double m_halfZ
 
CylinderVolumeBoundaryAccessors m_boundaryAccessors
 Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () with TrkMagFieldUtils. More...
 

Static Private Attributes

static const double s_numericalStable
 numerical stability More...
 

Detailed Description

Bounds for a cylindrical Volume, the decomposeToSurfaces method creates a vector of up to 6 surfaces:

case A) 3 Surfaces (full cylindrical tube): BoundarySurfaceFace [index]:

case B) 4 Surfaces (tube with inner and outer radius): BoundarySurfaceFace [index]:

case C) 6 Surfaces (sectoral tube with inner and outer radius): BoundarySurfaceFace [index]:

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch
Christos Anastopoulos (Athena MT modifications)

Definition at line 70 of file CylinderVolumeBounds.h.

Constructor & Destructor Documentation

◆ CylinderVolumeBounds() [1/5]

Trk::CylinderVolumeBounds::CylinderVolumeBounds ( )

Default Constructor.

Definition at line 30 of file CylinderVolumeBounds.cxx.

31  : VolumeBounds()
32  , m_innerRadius(0.)
33  , m_outerRadius(0.)
34  , m_halfPhiSector(0.)
35  , m_halfZ(0.)
37 {}

◆ CylinderVolumeBounds() [2/5]

Trk::CylinderVolumeBounds::CylinderVolumeBounds ( double  radius,
double  halez 
)

Constructor - full cylinder.

Definition at line 39 of file CylinderVolumeBounds.cxx.

40  : VolumeBounds()
41  , m_innerRadius(0.)
42  , m_outerRadius(std::abs(radius))
44  , m_halfZ(std::abs(halez))
46 {}

◆ CylinderVolumeBounds() [3/5]

Trk::CylinderVolumeBounds::CylinderVolumeBounds ( double  rinner,
double  router,
double  halez 
)

Constructor - extruded cylinder.

Definition at line 48 of file CylinderVolumeBounds.cxx.

52  : VolumeBounds()
53  , m_innerRadius(std::abs(rinner))
54  , m_outerRadius(std::abs(router))
56  , m_halfZ(std::abs(halez))
58 {}

◆ CylinderVolumeBounds() [4/5]

Trk::CylinderVolumeBounds::CylinderVolumeBounds ( double  rinner,
double  router,
double  halfPhiSector,
double  halez 
)

Constructor - extruded cylinder segment.

Definition at line 60 of file CylinderVolumeBounds.cxx.

65  : VolumeBounds()
66  , m_innerRadius(std::abs(rinner))
67  , m_outerRadius(std::abs(router))
68  , m_halfPhiSector(haphi)
69  , m_halfZ(std::abs(halez))
71 {}

◆ CylinderVolumeBounds() [5/5]

Trk::CylinderVolumeBounds::CylinderVolumeBounds ( const CylinderVolumeBounds cylbo)

Copy Constructor.

Definition at line 73 of file CylinderVolumeBounds.cxx.

75  : VolumeBounds()
76  , m_innerRadius(cylbo.m_innerRadius)
77  , m_outerRadius(cylbo.m_outerRadius)
78  , m_halfPhiSector(cylbo.m_halfPhiSector)
79  , m_halfZ(cylbo.m_halfZ)
81 {}

◆ ~CylinderVolumeBounds()

Trk::CylinderVolumeBounds::~CylinderVolumeBounds ( )
virtualdefault

Destructor.

Member Function Documentation

◆ bottomDiscBounds()

Trk::DiscBounds * Trk::CylinderVolumeBounds::bottomDiscBounds ( ) const
private

This method returns the associated DiscBounds for the bottom/top DiscSurface.

Definition at line 365 of file CylinderVolumeBounds.cxx.

366 {
368 }

◆ boundarySurfaceAccessor()

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

Provide accessor for BoundarySurfaces.

Implements Trk::VolumeBounds.

Definition at line 164 of file CylinderVolumeBounds.cxx.

168 {
169  // the tube case - most likely
170  if (
172  std::abs(m_halfPhiSector - M_PI) < s_numericalStable) {
173  // prepare the data
174  double posZ = gp.z();
175  double posR = gp.perp();
176  // difference Vector
177  Amg::Vector3D diff(gp + dir);
178  // differences
179  double deltaZ = diff.z() - posZ;
180  double deltaR = diff.perp() - posR;
181 
182  // the isOnSurface cases + switchers (that change with the cases)
183  bool isOnFace = false;
184  bool intersectionIndicator = (deltaR > 0.);
185  bool choiceIndicator = false;
186 
187  // on surface or look-a-likes
188  // on zMin or slightly outside
189  if (
190  std::abs(posZ + m_halfZ) < s_numericalStable ||
191  (posZ < (-m_halfZ) && deltaZ > 0.)) {
192  isOnFace = true;
193  } else if (
194  std::abs(posZ - m_halfZ) < s_numericalStable ||
195  (posZ > m_halfZ && deltaZ < 0.)) {
196  // on zMax or slighly outside
197  isOnFace = true;
198  } else if (
199  std::abs(posR - m_innerRadius) < s_numericalStable ||
200  (posR < m_innerRadius && deltaR > 0.)) {
201  // on innerRadius or slightly outside
202  isOnFace = true;
203  choiceIndicator =
204  (deltaZ > 0.); // the side choice indicator <========== WRONG ==========
205  } else if (
206  std::abs(posR - m_outerRadius) < s_numericalStable ||
207  (posR > m_outerRadius && deltaR < 0.)) {
208  // on outRadius or slightly outside
209  isOnFace = true;
210  choiceIndicator =
211  (deltaZ > 0.); // the side choice indicator <========== WRONG ==========
212  }
213 
214  // the onSurface case
215  // =================================================================================
216  if (isOnFace) {
217  if (intersectionIndicator) {
218  // intersect the Rmax / with floatint point exception check
219  Trk::CylinderIntersector intersectRmax(
220  posR, posZ, deltaR != 0 ? deltaZ / deltaR : 0, m_outerRadius);
221  double zOfIntersect = intersectRmax.yOfX;
222  // now check if the intersect is inside m_halfZ
223  if (std::abs(zOfIntersect) <= m_halfZ)
224  return {(choiceIndicator || zOfIntersect > 0.)
229  // if the intersect is outside
230  return {
231  (choiceIndicator || zOfIntersect > 0.)
235  }
236  // intersect the Rmin
237  Trk::CylinderIntersector intersectRmin(
238  posR, posZ, deltaR != 0 ? deltaZ / deltaR : 0, m_innerRadius);
239  double zOfIntersect = intersectRmin.yOfX;
240  // now check if the intersect is inside m_halfZ
241  if (std::abs(zOfIntersect) <= m_halfZ)
242  return {
243  (choiceIndicator || zOfIntersect > 0.)
247  // if the intersect is outside
248  return {
249  (choiceIndicator || zOfIntersect > 0.)
252  }
253  // =================================================================================================
254 
255  // ======================= the inside/outside part remains
256  // =========================================
257  // (a) outside cases
258  if (posR < m_innerRadius && deltaR < 0.)
260  if (posR > m_outerRadius && deltaR > 0.)
262  if (posZ < -m_halfZ && deltaZ < 0.)
264  if (posZ > m_halfZ && deltaZ > 0.)
266  // (b) inside cases
267  // the increase R case
268  if (deltaR > 0.) {
269  // solve the linear equation for the outer Radius - with floating point
270  // exception check
271  Trk::CylinderIntersector intersectRmax(
272  posR, posZ, deltaR != 0 ? deltaZ / deltaR : 0, m_outerRadius);
273  double zOfIntersect = intersectRmax.yOfX;
274 
275  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect > 0.)
277  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect < 0.)
279  if (std::abs(zOfIntersect) > m_halfZ && zOfIntersect < 0.)
281  if (std::abs(zOfIntersect) > m_halfZ && zOfIntersect > 0.)
283 
284  } else {
285  // solve the linear equation for the inner Radius with floating point
286  // exceptin check
287  Trk::CylinderIntersector intersectRmin(
288  posR, posZ, deltaR != 0 ? deltaZ / deltaR : 0, m_innerRadius);
289  double zOfIntersect = intersectRmin.yOfX;
290 
291  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect > 0.)
293  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect < 0.)
295  if (std::abs(zOfIntersect) > m_halfZ && zOfIntersect > 0.)
298  }
299  }
300  // the cylinder case
301  if (
303  std::abs(m_halfPhiSector - M_PI) < s_numericalStable) {
304 
305  // ----------------------------- z / r information
306  double posZ = gp.z();
307  double posR = gp.perp();
308 
309  // is on R case
310  bool isOnCylinder = (std::abs(posR - m_outerRadius) < s_numericalStable);
311 
312  // difference Vector
313  Amg::Vector3D diff(gp + dir);
314  // differences
315  double deltaZ = diff.z() - posZ;
316  double deltaR = diff.perp() - posR;
317  // take the sign of the intersect
318  int radiusSign = deltaR > 0. ? 1 : -1;
319 
320  // solve the linear equation for the cylinder Radius / with floating point
321  // exceptin check
322  Trk::CylinderIntersector intersectR(
323  posR,
324  posZ,
325  deltaR != 0 ? deltaZ / deltaR : 0,
326  radiusSign * m_outerRadius);
327 
328  // the intersection point - a little trick for the OnFace cases
329  double zOfIntersect = intersectR.yOfX;
330  // check if intersection exists
331  bool intersectsCylinder =
332  !isOnCylinder ? (zOfIntersect * zOfIntersect <= m_halfZ * m_halfZ)
333  : false;
334 
335  // return the cases for going through the cylinder
336  if (intersectsCylinder && zOfIntersect > 0.)
338  if (intersectsCylinder && zOfIntersect <= 0.)
340  if (deltaZ > 0.)
343  }
344  // the sectoral cylinder case
345  if (m_innerRadius != 0. && std::abs(m_halfPhiSector - M_PI) > 10e-3)
348  // it remains the sectoral tube case
350 }

◆ clone()

CylinderVolumeBounds * Trk::CylinderVolumeBounds::clone ( ) const
inlineoverridevirtual

Virtual constructor.

Implements Trk::VolumeBounds.

Definition at line 171 of file CylinderVolumeBounds.h.

171  {
172  return new CylinderVolumeBounds(*this);
173 }

◆ createBoundarySurfaceAccessors()

void Trk::CylinderVolumeBounds::createBoundarySurfaceAccessors ( )
private

Private method to construct the accessors.

◆ decomposeToSurfaces()

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

Method to decompose the Bounds into boundarySurfaces.

Implements Trk::VolumeBounds.

Definition at line 98 of file CylinderVolumeBounds.cxx.

100 {
101  std::vector<const Trk::Surface*>* retsf =
102  new std::vector<const Trk::Surface*>;
103  // memory optimisation --- reserve the maximum
104  retsf->reserve(6);
105 
106  // check if the transform is approximatively the identity
107  bool isConcentric = transform.isApprox(Amg::Transform3D::Identity());
108 
109  Amg::RotationMatrix3D discRot = transform.linear();
110  Amg::Vector3D cylCenter(transform.translation());
111 
112  // bottom Disc (negative z)
113  Amg::RotationMatrix3D bottomDiscRot;
114  bottomDiscRot.col(0) = discRot.col(1);
115  bottomDiscRot.col(1) = discRot.col(0);
116  bottomDiscRot.col(2) = -discRot.col(2);
117  retsf->push_back(new Trk::DiscSurface(
119  transform * Amg::AngleAxis3D(M_PI, Amg::Vector3D(1., 0., 0.)) *
121  bottomDiscBounds()));
122  // top Disc (positive z)
123  retsf->push_back(new Trk::DiscSurface(
125  topDiscBounds()));
126  // outer Cylinder
127  if (!isConcentric)
128  retsf->push_back(new Trk::CylinderSurface(
130  else
131  retsf->push_back(new Trk::CylinderSurface(outerCylinderBounds()));
132 
133  // innermost Cylinder
134  if (innerRadius() > s_numericalStable) {
135  if (!isConcentric)
136  retsf->push_back(new Trk::CylinderSurface(
138  else
139  retsf->push_back(new Trk::CylinderSurface(innerCylinderBounds()));
140  }
141 
142  if (std::abs(halfPhiSector() - M_PI) > s_numericalStable) {
143  // sectorPlane 1 (negative phi)
144  retsf->push_back(new Trk::PlaneSurface(
146  transform *
147  Amg::AngleAxis3D(-halfPhiSector(), Amg::Vector3D(0., 0., 1.)) *
149  Amg::AngleAxis3D(M_PI / 2, Amg::Vector3D(1., 0., 0.))),
150  sectorPlaneBounds()));
151  // sectorPlane 2 (positive phi)
152  retsf->push_back(new Trk::PlaneSurface(
154  transform *
157  Amg::AngleAxis3D(-M_PI / 2, Amg::Vector3D(1., 0., 0.))),
158  sectorPlaneBounds()));
159  }
160  return retsf;
161 }

◆ deltaRadius()

double Trk::CylinderVolumeBounds::deltaRadius ( ) const
inline

This method returns the delta radius.

Definition at line 199 of file CylinderVolumeBounds.h.

199  {
200  return (m_outerRadius - m_innerRadius);
201 }

◆ dump() [1/2]

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

Output Method for MsgStream.

Implements Trk::VolumeBounds.

Definition at line 380 of file CylinderVolumeBounds.cxx.

381 {
382  std::stringstream temp_sl;
383  temp_sl << std::setiosflags(std::ios::fixed);
384  temp_sl << std::setprecision(2);
385  temp_sl << "Trk::CylinderVolumeBounds: (rMin, rMax, halfPhi, halfZ) = ";
386  temp_sl << m_innerRadius << ", " << m_outerRadius << ", " << m_halfPhiSector
387  << ", " << m_halfZ;
388  sl << temp_sl.str();
389  return sl;
390 }

◆ dump() [2/2]

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

Output Method for std::ostream.

Implements Trk::VolumeBounds.

Definition at line 393 of file CylinderVolumeBounds.cxx.

394 {
395  std::stringstream temp_sl;
396  temp_sl << std::setiosflags(std::ios::fixed);
397  temp_sl << std::setprecision(2);
398  temp_sl << "Trk::CylinderVolumeBounds: (rMin, rMax, halfPhi, halfZ) = ";
399  temp_sl << m_innerRadius << ", " << m_outerRadius << ", " << m_halfPhiSector
400  << ", " << m_halfZ;
401  sl << temp_sl.str();
402  return sl;
403 }

◆ halflengthZ()

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

This method returns the halflengthZ.

Definition at line 207 of file CylinderVolumeBounds.h.

207 { return m_halfZ; }

◆ halfPhiSector()

double Trk::CylinderVolumeBounds::halfPhiSector ( ) const
inline

This method returns the halfPhiSector angle.

Definition at line 203 of file CylinderVolumeBounds.h.

203  {
204  return m_halfPhiSector;
205 }

◆ innerCylinderBounds()

Trk::CylinderBounds * Trk::CylinderVolumeBounds::innerCylinderBounds ( ) const
private

This method returns the associated CylinderBounds of the inner CylinderSurfaces.

Definition at line 353 of file CylinderVolumeBounds.cxx.

354 {
356 }

◆ innerRadius()

double Trk::CylinderVolumeBounds::innerRadius ( ) const
inline

This method returns the inner radius.

Definition at line 187 of file CylinderVolumeBounds.h.

187  {
188  return m_innerRadius;
189 }

◆ inside()

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

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

Implements Trk::VolumeBounds.

Definition at line 175 of file CylinderVolumeBounds.h.

176  {
177  double ros = pos.perp();
178  // bool insidePhi = fabs(pos.phi()) <= m_halfPhiSector + tol;
179  bool insidePhi = cos(pos.phi()) >= cos(m_halfPhiSector) - tol;
180  bool insideR =
181  insidePhi ? ((ros >= m_innerRadius - tol) && (ros <= m_outerRadius + tol))
182  : false;
183  bool insideZ = insideR ? (fabs(pos.z()) <= m_halfZ + tol) : false;
184  return (insideZ && insideR && insidePhi);
185 }

◆ mediumRadius()

double Trk::CylinderVolumeBounds::mediumRadius ( ) const
inline

This method returns the medium radius.

Definition at line 195 of file CylinderVolumeBounds.h.

195  {
196  return 0.5 * (m_innerRadius + m_outerRadius);
197 }

◆ operator=()

Trk::CylinderVolumeBounds & Trk::CylinderVolumeBounds::operator= ( const CylinderVolumeBounds cylbo)

Assignment operator.

Definition at line 86 of file CylinderVolumeBounds.cxx.

87 {
88  if (this != &cylbo) {
89  m_innerRadius = cylbo.m_innerRadius;
90  m_outerRadius = cylbo.m_outerRadius;
91  m_halfPhiSector = cylbo.m_halfPhiSector;
92  m_halfZ = cylbo.m_halfZ;
93  }
94  return *this;
95 }

◆ outerCylinderBounds()

Trk::CylinderBounds * Trk::CylinderVolumeBounds::outerCylinderBounds ( ) const
private

This method returns the associated CylinderBounds of the outer CylinderSurfaces.

Definition at line 359 of file CylinderVolumeBounds.cxx.

360 {
362 }

◆ outerRadius()

double Trk::CylinderVolumeBounds::outerRadius ( ) const
inline

This method returns the outer radius.

Definition at line 191 of file CylinderVolumeBounds.h.

191  {
192  return m_outerRadius;
193 }

◆ sectorPlaneBounds()

Trk::RectangleBounds * Trk::CylinderVolumeBounds::sectorPlaneBounds ( ) const
private

This method returns the associated PlaneBounds limiting a sectoral CylinderVolume.

Definition at line 371 of file CylinderVolumeBounds.cxx.

372 {
373  return new Trk::RectangleBounds(
374  0.5 * (m_outerRadius - m_innerRadius), m_halfZ);
375 }

◆ topDiscBounds()

DiscBounds * Trk::CylinderVolumeBounds::topDiscBounds ( ) const
inlineprivate

This method returns the associated DiscBounds for the bottom/top DiscSurface.

Definition at line 209 of file CylinderVolumeBounds.h.

209  {
210  return this->bottomDiscBounds();
211 }

Member Data Documentation

◆ m_boundaryAccessors

CylinderVolumeBoundaryAccessors Trk::CylinderVolumeBounds::m_boundaryAccessors
private

Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () with TrkMagFieldUtils.

Definition at line 165 of file CylinderVolumeBounds.h.

◆ m_halfPhiSector

double Trk::CylinderVolumeBounds::m_halfPhiSector
private

Definition at line 159 of file CylinderVolumeBounds.h.

◆ m_halfZ

double Trk::CylinderVolumeBounds::m_halfZ
private

Definition at line 160 of file CylinderVolumeBounds.h.

◆ m_innerRadius

double Trk::CylinderVolumeBounds::m_innerRadius
private

Definition at line 157 of file CylinderVolumeBounds.h.

◆ m_outerRadius

double Trk::CylinderVolumeBounds::m_outerRadius
private

Definition at line 158 of file CylinderVolumeBounds.h.

◆ s_numericalStable

const double Trk::CylinderVolumeBounds::s_numericalStable
staticprivate
Initial value:

numerical stability

Definition at line 168 of file CylinderVolumeBounds.h.


The documentation for this class was generated from the following files:
Trk::TubeRdecreaseZdecrease
@ TubeRdecreaseZdecrease
Accessor type [ 3,0,1,2 ].
Definition: CylinderVolumeBoundaryAccessors.h:33
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Trk::RectangleBounds
Definition: RectangleBounds.h:38
Trk::TubeOutsideRmaxRincrease
@ TubeOutsideRmaxRincrease
Accessor type [ 2,1,0,3 ] - inverse case.
Definition: CylinderVolumeBoundaryAccessors.h:37
Trk::CylinderVolumeBoundaryAccessors::tubeAccessor
const FourObjectsAccessor & tubeAccessor(TubeAccessorType tat) const
Return the accessor for the tube case.
Definition: CylinderVolumeBoundaryAccessors.h:97
Trk::TubeZdecreaseRdecrease
@ TubeZdecreaseRdecrease
Accessor type [ 0,3,1,2 ].
Definition: CylinderVolumeBoundaryAccessors.h:35
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Trk::CylinderVolumeBounds::m_halfZ
double m_halfZ
Definition: CylinderVolumeBounds.h:160
mc.diff
diff
Definition: mc.SFGenPy8_MuMu_DD.py:14
Trk::DiscSurface
Definition: DiscSurface.h:54
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
Trk::CylinderVolumeBounds::topDiscBounds
DiscBounds * topDiscBounds() const
This method returns the associated DiscBounds for the bottom/top DiscSurface.
Definition: CylinderVolumeBounds.h:209
Trk::TubeOutsideZmaxZincrease
@ TubeOutsideZmaxZincrease
Accessor type [ 1,3,2,0 ] - inverse case.
Definition: CylinderVolumeBoundaryAccessors.h:39
Trk::CylinderVolumeBounds::m_halfPhiSector
double m_halfPhiSector
Definition: CylinderVolumeBounds.h:159
Trk::TubeRincreaseZdecrease
@ TubeRincreaseZdecrease
Accessor type [ 2,0,1,3 ].
Definition: CylinderVolumeBoundaryAccessors.h:29
Trk::CylinderVolumeBounds::CylinderVolumeBounds
CylinderVolumeBounds()
Default Constructor.
Definition: CylinderVolumeBounds.cxx:30
Trk::StandardSectoralCylinder
@ StandardSectoralCylinder
Definition: CylinderVolumeBoundaryAccessors.h:46
Trk::CylinderVolumeBounds::m_outerRadius
double m_outerRadius
Definition: CylinderVolumeBounds.h:158
Trk::CylinderIntersector
Definition: CylinderIntersector.h:20
beamspotman.posZ
posZ
Definition: beamspotman.py:1624
Trk::CylinderVolumeBoundaryAccessors::cylinderAccessor
const ThreeObjectsAccessor & cylinderAccessor(CylinderAccessorType cat) const
Return the accessor for the cylindrical case.
Definition: CylinderVolumeBoundaryAccessors.h:92
Trk::CylinderSurface
Definition: CylinderSurface.h:55
Trk::CylinderBounds
Definition: CylinderBounds.h:46
Trk::CylinderVolumeBounds::m_boundaryAccessors
CylinderVolumeBoundaryAccessors m_boundaryAccessors
Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () w...
Definition: CylinderVolumeBounds.h:165
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::CylinderVolumeBounds::halflengthZ
double halflengthZ() const
This method returns the halflengthZ.
Definition: CylinderVolumeBounds.h:207
Trk::TubeZdecreaseRincrease
@ TubeZdecreaseRincrease
Accessor type [ 0,2,1,3 ].
Definition: CylinderVolumeBoundaryAccessors.h:31
Trk::CylinderVolumeBounds::bottomDiscBounds
DiscBounds * bottomDiscBounds() const
This method returns the associated DiscBounds for the bottom/top DiscSurface.
Definition: CylinderVolumeBounds.cxx:365
Trk::CylinderZdecrease
@ CylinderZdecrease
Cylinder hit, the neg.
Definition: CylinderVolumeBoundaryAccessors.h:19
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
Trk::TubeRdecreaseZincrease
@ TubeRdecreaseZincrease
Accessor type [ 3,1,0,2 ].
Definition: CylinderVolumeBoundaryAccessors.h:32
Trk::CylinderVolumeBounds::m_innerRadius
double m_innerRadius
Definition: CylinderVolumeBounds.h:157
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::CylinderNegativeFace
@ CylinderNegativeFace
Neg.
Definition: CylinderVolumeBoundaryAccessors.h:21
Trk::StandardSectoralTube
@ StandardSectoralTube
Definition: CylinderVolumeBoundaryAccessors.h:51
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::TubeRincreaseZincrease
@ TubeRincreaseZincrease
Accessor type [ 2,1,0,3 ].
Definition: CylinderVolumeBoundaryAccessors.h:28
Trk::CylinderVolumeBounds::outerCylinderBounds
CylinderBounds * outerCylinderBounds() const
This method returns the associated CylinderBounds of the outer CylinderSurfaces.
Definition: CylinderVolumeBounds.cxx:359
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
Trk::CylinderVolumeBounds::halfPhiSector
double halfPhiSector() const
This method returns the halfPhiSector angle.
Definition: CylinderVolumeBounds.h:203
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
Trk::PlaneSurface
Definition: PlaneSurface.h:64
Trk::CylinderVolumeBounds::innerRadius
double innerRadius() const
This method returns the inner radius.
Definition: CylinderVolumeBounds.h:187
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::CylinderVolumeBoundaryAccessors::sectoralTubeAccessor
const SixObjectsAccessor & sectoralTubeAccessor(SectoralTubeAccessorType stat) const
Return the accessor for the sectoral tube case.
Definition: CylinderVolumeBoundaryAccessors.h:109
Trk::TubeZincreaseRdecrease
@ TubeZincreaseRdecrease
Accessor type [ 1,3,0,2 ].
Definition: CylinderVolumeBoundaryAccessors.h:34
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
Trk::CylinderVolumeBoundaryAccessors::sectoralCylinderAccessor
const FiveObjectsAccessor & sectoralCylinderAccessor(SectoralCylinderAccessorType scat) const
Return the accessor for the sectoral cylinciracl case.
Definition: CylinderVolumeBoundaryAccessors.h:103
Trk::CylinderVolumeBounds::innerCylinderBounds
CylinderBounds * innerCylinderBounds() const
This method returns the associated CylinderBounds of the inner CylinderSurfaces.
Definition: CylinderVolumeBounds.cxx:353
Trk::CylinderPositiveFace
@ CylinderPositiveFace
Pos.
Definition: CylinderVolumeBoundaryAccessors.h:20
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
Trk::CylinderZincrease
@ CylinderZincrease
Cylinder hit, then pos.
Definition: CylinderVolumeBoundaryAccessors.h:18
Trk::CylinderVolumeBounds::s_numericalStable
static const double s_numericalStable
numerical stability
Definition: CylinderVolumeBounds.h:168
Trk::CylinderVolumeBounds::sectorPlaneBounds
RectangleBounds * sectorPlaneBounds() const
This method returns the associated PlaneBounds limiting a sectoral CylinderVolume.
Definition: CylinderVolumeBounds.cxx:371
Trk::TubeOutsideRminRdecrease
@ TubeOutsideRminRdecrease
Accessor type [ 3,1,0,2] - inverse case.
Definition: CylinderVolumeBoundaryAccessors.h:36
makeComparison.deltaZ
int deltaZ
Definition: makeComparison.py:46
Trk::TubeOutsideZminZdecrease
@ TubeOutsideZminZdecrease
Accessor type [ 0,3,2,1 ] - inverse case.
Definition: CylinderVolumeBoundaryAccessors.h:38
makeComparison.deltaR
float deltaR
Definition: makeComparison.py:36
Trk::VolumeBounds::VolumeBounds
VolumeBounds()
Default Constructor.
Definition: VolumeBounds.h:48
Trk::CylinderVolumeBounds::mediumRadius
double mediumRadius() const
This method returns the medium radius.
Definition: CylinderVolumeBounds.h:195
Trk::DiscBounds
Definition: DiscBounds.h:44
Trk::TubeZincreaseRincrease
@ TubeZincreaseRincrease
Accessor type [ 1,2,0,3 ].
Definition: CylinderVolumeBoundaryAccessors.h:30