From 4db360e82ee16b5c822b7a3332e01ff225e5268f Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Mon, 19 Feb 2024 16:47:16 +0100 Subject: [PATCH] Correct the behaviour of (fake) TwistedTube object when converted to Geant4 --- DDG4/src/Geant4ShapeConverter.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/DDG4/src/Geant4ShapeConverter.cpp b/DDG4/src/Geant4ShapeConverter.cpp index b7b35a31e..81e871474 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) { -- GitLab