55 double maxR,
double avgPhi = M_PI_2,
73 std::vector<
double>
values() const final;
85 std::ostream&
toStream(std::ostream& sl) const final;
92 double rMin() const final;
95 double rMax() const final;
171 return std::max(minHalfPhi, maxHalfPhi);
175 double rmin =
get(
eMinR);
176 double rmax =
get(
eMaxR);
179 auto hmin = std::sqrt(rmin * rmin - hxmin * hxmin);
180 auto hmax = std::sqrt(rmax * rmax - hxmax * hxmax);
181 return 0.5 * (hmin + hmax);
185 double rmin =
get(
eMinR);
186 double rmax =
get(
eMaxR);
189 auto hmin = std::sqrt(rmin * rmin - hxmin * hxmin);
190 auto hmax = std::sqrt(rmax * rmax - hxmax * hxmax);
191 return 0.5 * (hmax - hmin);
200 return (R + tolerance >
get(
eMinR) and R - tolerance <
get(
eMaxR));
212 std::vector<double> valvector;
219 throw std::invalid_argument(
"DiscTrapezoidBounds: invalid radial setup.");
222 throw std::invalid_argument(
"DiscTrapezoidBounds: negative length given.");
225 throw std::invalid_argument(
226 "DiscTrapezoidBounds: invalid phi positioning.");