34 const std::string& name,
double hz, std::vector<VGM::TwoVector> vertices)
59 fArb8->SetName(name.c_str());
62 for (
unsigned int i = 0; i < vertices.size(); ++i) {
87 :
VGM::ISolid(rhs),
VGM::IArb8(rhs),
BaseVGM::VArb8(rhs), fArb8(0)
107 if (index < 0 || index >= fgkNofVertices) {
108 std::cerr <<
"+++ Error +++" << std::endl;
109 std::cerr <<
" Wrong vertex index: " << index << std::endl;
113 Double_t* xy = fArb8->GetVertices();
127 if (index < 0 || index >= 4) {
128 std::cerr <<
"+++ Error +++" << std::endl;
129 std::cerr <<
" Wrong twist angle index: " << index << std::endl;
133 Double_t twistAngle = TMath::ATan(fArb8->GetTwist(index)) * TMath::RadToDeg();
VGM implementation for Root Arb8 solid.
virtual double ZHalfLength() const
Return the half-length along the z axis in mm.
virtual VGM::TwoVector Vertex(int index) const
Return the index-th vertex.
virtual std::string Name() const
Return the name of this solid.
virtual int NofVertices() const
Return the number of vertices.
virtual double TwistAngle(int index) const
Return the index-th twist angle.
static const int fgkNofVertices
void AddSolid(VGM::ISolid *, TGeoShape *)
static SolidMap * Instance()
static double Length()
Return Root length unit in VGM units.
static double Angle()
Return Root angle unit in VGM units.
std::pair< double, double > TwoVector