diff --git a/DDG4/src/Geant4ShapeConverter.cpp b/DDG4/src/Geant4ShapeConverter.cpp index b7b35a31ecd54b90409de08672c277b1d1bf8b62..81e87147416939ead2dc7199153d51ba47a740af 100644 --- a/DDG4/src/Geant4ShapeConverter.cpp +++ b/DDG4/src/Geant4ShapeConverter.cpp @@ -106,10 +106,18 @@ namespace dd4hep { template <> G4VSolid* convertShape<TwistedTubeObject>(const TGeoShape* shape) { const TwistedTubeObject* sh = (const TwistedTubeObject*) shape; + if ( std::fabs(std::fabs(sh->GetNegativeEndZ()) - std::fabs(sh->GetPositiveEndZ())) < 1e-10 ) { + return new G4TwistedTubs(sh->GetName(),sh->GetPhiTwist() * DEGREE_2_RAD, + sh->GetRmin() * CM_2_MM, sh->GetRmax() * CM_2_MM, + sh->GetNegativeEndZ() * CM_2_MM, + sh->GetNsegments(), + (sh->GetPhi2()-sh->GetPhi1()) * DEGREE_2_RAD); + } return new G4TwistedTubs(sh->GetName(),sh->GetPhiTwist() * DEGREE_2_RAD, sh->GetRmin() * CM_2_MM, sh->GetRmax() * CM_2_MM, sh->GetNegativeEndZ() * CM_2_MM, sh->GetPositiveEndZ() * CM_2_MM, - sh->GetNsegments(), (sh->GetPhi2()-sh->GetPhi1()) * DEGREE_2_RAD); + sh->GetNsegments(), + (sh->GetPhi2()-sh->GetPhi1()) * DEGREE_2_RAD); } template <> G4VSolid* convertShape<TGeoTrd1>(const TGeoShape* shape) {