98 double halfphi = M_PI,
double avgphi = 0.,
99 double bevelMinZ = 0.,
100 double bevelMaxZ = 0.) noexcept(
false)
101 :
m_values({rmin, rmax, halfz, halfphi, avgphi, bevelMinZ, bevelMaxZ}) {
144 std::vector<double>
values() const final;
172 const
Vector3& envelope = {0, 0, 0},
173 const Volume* entity =
nullptr)
const final;
186 std::ostream&
toStream(std::ostream& sl)
const override;
214 template <class stream_t>
215 stream_t&
dumpT(stream_t& dt) const;
221 double ros =
perp(pos);
223 bool insideR = insidePhi
224 ? ((ros >=
get(
eMinR) - tol) && (ros <=
get(
eMaxR) + tol))
227 insideR ? (std::abs(pos.z()) <=
get(
eHalfLengthZ) + tol) :
false;
228 return (insideZ && insideR && insidePhi);
249 template <
class stream_t>
251 dt << std::setiosflags(std::ios::fixed);
252 dt << std::setprecision(5);
253 dt <<
"Acts::CylinderVolumeBounds: (rMin, rMax, halfZ, halfPhi, "
254 "averagePhi, minBevelZ, maxBevelZ) = ";
262 std::vector<double> valvector;
269 throw std::invalid_argument(
"CylinderVolumeBounds: invalid radial input.");
272 throw std::invalid_argument(
273 "CylinderVolumeBounds: invalid longitudinal input.");
276 throw std::invalid_argument(
277 "CylinderVolumeBounds: invalid phi sector setup.");
280 throw std::invalid_argument(
281 "CylinderVolumeBounds: invalid phi positioning.");
284 throw std::invalid_argument(
"CylinderBounds: invalid bevel at min Z.");
287 throw std::invalid_argument(
"CylinderBounds: invalid bevel at max Z.");