11 using namespace geant_units;
12 using namespace geant_units::operators;
22 p_.emplace_back(zhalf);
23 p_.emplace_back(rInMinusZ);
24 p_.emplace_back(rOutMinusZ);
25 p_.emplace_back(rInPlusZ);
26 p_.emplace_back(rOutPlusZ);
27 p_.emplace_back(startPhi);
28 p_.emplace_back(deltaPhi);
57 double rInMinusZ = p_[1];
58 double rOutMinusZ = p_[2];
59 double rInPlusZ = p_[3];
60 double rOutPlusZ = p_[4];
65 double volume1 = 1_pi * (rInPlusZ * rInPlusZ + rInMinusZ * rInMinusZ + rInMinusZ * rInPlusZ) * z / 3;
67 double volume2 = 1_pi * (rOutPlusZ * rOutPlusZ + rOutMinusZ * rOutMinusZ + rOutMinusZ * rOutPlusZ) * z / 3;
69 double slice = deltaPhi / (2_pi);
70 double volume = slice * (volume2 - volume1);
void stream(std::ostream &) const override
constexpr NumType convertRadToDeg(NumType radians)
Cons(double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double startPhi, double deltaPhi)
Abs< T >::type abs(const T &t)
double volume() const override
constexpr NumType convertMmToCm(NumType millimeters)