51 double maxR,
double avgPhi =
M_PI_2,
69 std::vector<
double>
values() const final;
87 std::ostream&
toStream(std::ostream& sl) const final;
94 double rMin() const final;
97 double rMax() const final;
170 return std::max(minHalfPhi, maxHalfPhi);
174 double rmin =
get(
eMinR);
178 auto hmin = std::sqrt(rmin * rmin - hxmin * hxmin);
179 auto hmax = std::sqrt(rmax * rmax - hxmax * hxmax);
180 return 0.5 * (hmin + hmax);
184 double rmin =
get(
eMinR);
188 auto hmin = std::sqrt(rmin * rmin - hxmin * hxmin);
189 auto hmax = std::sqrt(rmax * rmax - hxmax * hxmax);
190 return 0.5 * (hmax - hmin);
198 double tolerance)
const {
199 return (R + tolerance >
get(
eMinR) and R - tolerance <
get(
eMaxR));
211 std::vector<double> valvector;
218 throw std::invalid_argument(
"DiscTrapezoidBounds: invalid radial setup.");
221 throw std::invalid_argument(
"DiscTrapezoidBounds: negative length given.");
224 throw std::invalid_argument(
225 "DiscTrapezoidBounds: invalid phi positioning.");