16 #include "GaudiKernel/MsgStream.h"
17 #include "GaudiKernel/SystemOfUnits.h"
44 , m_minHalfX(minhalex)
45 , m_medHalfX(medhalex)
46 , m_maxHalfX(maxhalex)
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)
92 const std::vector<const Trk::Surface*>*
96 std::vector<const Trk::Surface*>* retsf =
97 new std::vector<const Trk::Surface*>;
112 this->faceXYDiamondBounds()));
118 this->faceXYDiamondBounds()));
123 diamondCenter - this->minHalflengthX() * diamondX -
124 2 * this->halflengthY1() * diamondY);
127 diamondRotation * alpha1ZRotation *
132 A + alpha1Rotation.col(0) * faceAlpha1Bounds->
halflengthX());
139 diamondCenter + this->minHalflengthX() * diamondX -
140 2 * this->halflengthY1() * diamondY);
143 diamondRotation * beta1ZRotation *
148 B + beta1Rotation.col(0) * faceBeta1Bounds->
halflengthX());
156 diamondCenter - this->maxHalflengthX() * diamondX +
157 2 * this->halflengthY2() * diamondY);
160 diamondRotation * alpha2ZRotation *
165 AA + alpha2Rotation.col(0) * faceAlpha2Bounds->
halflengthX());
172 diamondCenter + this->maxHalflengthX() * diamondX +
173 2 * this->halflengthY2() * diamondY);
176 diamondRotation * beta2ZRotation *
181 BB + beta2Rotation.col(0) * faceBeta2Bounds->
halflengthX());
194 this->faceZXRectangleBoundsBottom()));
202 this->faceZXRectangleBoundsTop()));
212 m_minHalfX, m_medHalfX, m_maxHalfX, m_halfY1, m_halfY2);
263 if (std::abs(
pos.z()) > m_halfZ + tol)
265 if (
pos.y() < -2 * m_halfY1 - tol)
267 if (
pos.y() > 2 * m_halfY2 - tol)
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 <<
")";
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 <<
")";