Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:26

0001 #include "DetectorDescription/Core/interface/EllipticalTube.h"
0002 #include "DataFormats/Math/interface/GeantUnits.h"
0003 
0004 #include <ostream>
0005 
0006 using namespace geant_units::operators;
0007 
0008 void DDI::EllipticalTube::stream(std::ostream& os) const {
0009   os << " xSemiAxis[cm]=" << convertMmToCm(p_[0]) << " ySemiAxis[cm]=" << convertMmToCm(p_[1])
0010      << " zHeight[cm]=" << convertMmToCm(p_[2]);
0011 }
0012 
0013 double DDI::EllipticalTube::volume() const {
0014   double volume(0.);
0015   // who cares major or minor axis? pi * a * b == pi * xhalf * yhalf
0016   // area of a slice.
0017   // we KNOW they are all cm... CMS uses cm
0018   double area(1_pi * p_[0] * p_[1]);
0019   //volume is z * area.  I'm pretty sure :)
0020   volume = area * p_[2] * 2;
0021   return volume;
0022 }