diff --git a/DDG4/src/Geant4Converter.cpp b/DDG4/src/Geant4Converter.cpp index 17e587311c415848de1df987f57a1ba5a0a9056a..4f9462ecf3ca076dfa5da5085209687edcda1054 100644 --- a/DDG4/src/Geant4Converter.cpp +++ b/DDG4/src/Geant4Converter.cpp @@ -589,8 +589,12 @@ void* Geant4Converter::handleSolid(const string& name, const TGeoShape* shape) c TGeoScaledShape* sh = (TGeoScaledShape*) shape; TGeoShape* sol = sh->GetShape(); const double* vals = sh->GetScale()->GetScale(); + G4Scale3D scal(vals[0], vals[1], vals[2]); G4VSolid* g4solid = (G4VSolid*)handleSolid(sol->GetName(), sol); - solid = new G4ScaledSolid(sh->GetName(), g4solid, {vals[0], vals[1], vals[2]}); + if ( scal.xx()>0e0 && scal.yy()>0e0 && scal.zz()>0e0 ) + solid = new G4ScaledSolid(sh->GetName(), g4solid, scal); + else + solid = new G4ReflectedSolid(sh->GetName(), g4solid, scal); } else if (isa == TGeoCompositeShape::Class()) { const TGeoCompositeShape* sh = (const TGeoCompositeShape*) shape; diff --git a/examples/ClientTests/ref/Ref_Scaled_Cone.txt b/examples/ClientTests/ref/Ref_Scaled_Cone.txt new file mode 100644 index 0000000000000000000000000000000000000000..657f1da39d9c442133a3eb4c95384896a9d430f5 --- /dev/null +++ b/examples/ClientTests/ref/Ref_Scaled_Cone.txt @@ -0,0 +1,166 @@ +ShapeCheck[0] TGeoScaledShape 80 Mesh-points: +TGeoScaledShape Scale N(mesh)=80 N(vert)=80 N(seg)=160 N(pols)=80 +TGeoScaledShape 0 Local ( 5.00, 0.00, -40.00) Global ( 5.00, -3.99, 10.20) +TGeoScaledShape 1 Local ( 4.76, 0.46, -40.00) Global ( 4.76, -3.53, 10.15) +TGeoScaledShape 2 Local ( 4.05, 0.88, -40.00) Global ( 4.05, -3.12, 10.11) +TGeoScaledShape 3 Local ( 2.94, 1.21, -40.00) Global ( 2.94, -2.79, 10.08) +TGeoScaledShape 4 Local ( 1.55, 1.43, -40.00) Global ( 1.55, -2.57, 10.06) +TGeoScaledShape 5 Local ( 0.00, 1.50, -40.00) Global ( 0.00, -2.50, 10.05) +TGeoScaledShape 6 Local ( -1.55, 1.43, -40.00) Global ( -1.55, -2.57, 10.06) +TGeoScaledShape 7 Local ( -2.94, 1.21, -40.00) Global ( -2.94, -2.79, 10.08) +TGeoScaledShape 8 Local ( -4.05, 0.88, -40.00) Global ( -4.05, -3.12, 10.11) +TGeoScaledShape 9 Local ( -4.76, 0.46, -40.00) Global ( -4.76, -3.53, 10.15) +TGeoScaledShape 10 Local ( -5.00, 0.00, -40.00) Global ( -5.00, -3.99, 10.20) +TGeoScaledShape 11 Local ( -4.76, -0.46, -40.00) Global ( -4.76, -4.45, 10.25) +TGeoScaledShape 12 Local ( -4.05, -0.88, -40.00) Global ( -4.05, -4.87, 10.29) +TGeoScaledShape 13 Local ( -2.94, -1.21, -40.00) Global ( -2.94, -5.20, 10.32) +TGeoScaledShape 14 Local ( -1.55, -1.43, -40.00) Global ( -1.55, -5.41, 10.34) +TGeoScaledShape 15 Local ( -0.00, -1.50, -40.00) Global ( -0.00, -5.49, 10.35) +TGeoScaledShape 16 Local ( 1.55, -1.43, -40.00) Global ( 1.55, -5.41, 10.34) +TGeoScaledShape 17 Local ( 2.94, -1.21, -40.00) Global ( 2.94, -5.20, 10.32) +TGeoScaledShape 18 Local ( 4.05, -0.88, -40.00) Global ( 4.05, -4.87, 10.29) +TGeoScaledShape 19 Local ( 4.76, -0.46, -40.00) Global ( 4.76, -4.45, 10.25) +TGeoScaledShape 20 Local ( 30.00, 0.00, -40.00) Global ( 30.00, -3.99, 10.20) +TGeoScaledShape 21 Local ( 28.53, 2.78, -40.00) Global ( 28.53, -1.23, 9.92) +TGeoScaledShape 22 Local ( 24.27, 5.29, -40.00) Global ( 24.27, 1.27, 9.67) +TGeoScaledShape 23 Local ( 17.63, 7.28, -40.00) Global ( 17.63, 3.25, 9.47) +TGeoScaledShape 24 Local ( 9.27, 8.56, -40.00) Global ( 9.27, 4.52, 9.35) +TGeoScaledShape 25 Local ( 0.00, 9.00, -40.00) Global ( 0.00, 4.96, 9.30) +TGeoScaledShape 26 Local ( -9.27, 8.56, -40.00) Global ( -9.27, 4.52, 9.35) +TGeoScaledShape 27 Local ( -17.63, 7.28, -40.00) Global ( -17.63, 3.25, 9.47) +TGeoScaledShape 28 Local ( -24.27, 5.29, -40.00) Global ( -24.27, 1.27, 9.67) +TGeoScaledShape 29 Local ( -28.53, 2.78, -40.00) Global ( -28.53, -1.23, 9.92) +TGeoScaledShape 30 Local ( -30.00, 0.00, -40.00) Global ( -30.00, -3.99, 10.20) +TGeoScaledShape 31 Local ( -28.53, -2.78, -40.00) Global ( -28.53, -6.76, 10.48) +TGeoScaledShape 32 Local ( -24.27, -5.29, -40.00) Global ( -24.27, -9.26, 10.73) +TGeoScaledShape 33 Local ( -17.63, -7.28, -40.00) Global ( -17.63, -11.24, 10.93) +TGeoScaledShape 34 Local ( -9.27, -8.56, -40.00) Global ( -9.27, -12.51, 11.05) +TGeoScaledShape 35 Local ( -0.00, -9.00, -40.00) Global ( -0.00, -12.95, 11.10) +TGeoScaledShape 36 Local ( 9.27, -8.56, -40.00) Global ( 9.27, -12.51, 11.05) +TGeoScaledShape 37 Local ( 17.63, -7.28, -40.00) Global ( 17.63, -11.24, 10.93) +TGeoScaledShape 38 Local ( 24.27, -5.29, -40.00) Global ( 24.27, -9.26, 10.73) +TGeoScaledShape 39 Local ( 28.53, -2.78, -40.00) Global ( 28.53, -6.76, 10.48) +TGeoScaledShape 40 Local ( 20.00, 0.00, 40.00) Global ( 20.00, 3.99, 89.80) +TGeoScaledShape 41 Local ( 19.02, 1.85, 40.00) Global ( 19.02, 5.84, 89.62) +TGeoScaledShape 42 Local ( 16.18, 3.53, 40.00) Global ( 16.18, 7.50, 89.45) +TGeoScaledShape 43 Local ( 11.76, 4.85, 40.00) Global ( 11.76, 8.82, 89.32) +TGeoScaledShape 44 Local ( 6.18, 5.71, 40.00) Global ( 6.18, 9.67, 89.23) +TGeoScaledShape 45 Local ( 0.00, 6.00, 40.00) Global ( 0.00, 9.96, 89.20) +TGeoScaledShape 46 Local ( -6.18, 5.71, 40.00) Global ( -6.18, 9.67, 89.23) +TGeoScaledShape 47 Local ( -11.76, 4.85, 40.00) Global ( -11.76, 8.82, 89.32) +TGeoScaledShape 48 Local ( -16.18, 3.53, 40.00) Global ( -16.18, 7.50, 89.45) +TGeoScaledShape 49 Local ( -19.02, 1.85, 40.00) Global ( -19.02, 5.84, 89.62) +TGeoScaledShape 50 Local ( -20.00, 0.00, 40.00) Global ( -20.00, 3.99, 89.80) +TGeoScaledShape 51 Local ( -19.02, -1.85, 40.00) Global ( -19.02, 2.15, 89.99) +TGeoScaledShape 52 Local ( -16.18, -3.53, 40.00) Global ( -16.18, 0.48, 90.15) +TGeoScaledShape 53 Local ( -11.76, -4.85, 40.00) Global ( -11.76, -0.84, 90.28) +TGeoScaledShape 54 Local ( -6.18, -5.71, 40.00) Global ( -6.18, -1.68, 90.37) +TGeoScaledShape 55 Local ( -0.00, -6.00, 40.00) Global ( -0.00, -1.98, 90.40) +TGeoScaledShape 56 Local ( 6.18, -5.71, 40.00) Global ( 6.18, -1.68, 90.37) +TGeoScaledShape 57 Local ( 11.76, -4.85, 40.00) Global ( 11.76, -0.84, 90.28) +TGeoScaledShape 58 Local ( 16.18, -3.53, 40.00) Global ( 16.18, 0.48, 90.15) +TGeoScaledShape 59 Local ( 19.02, -1.85, 40.00) Global ( 19.02, 2.15, 89.99) +TGeoScaledShape 60 Local ( 90.00, 0.00, 40.00) Global ( 90.00, 3.99, 89.80) +TGeoScaledShape 61 Local ( 85.60, 8.34, 40.00) Global ( 85.60, 12.30, 88.97) +TGeoScaledShape 62 Local ( 72.81, 15.87, 40.00) Global ( 72.81, 19.78, 88.22) +TGeoScaledShape 63 Local ( 52.90, 21.84, 40.00) Global ( 52.90, 25.73, 87.62) +TGeoScaledShape 64 Local ( 27.81, 25.68, 40.00) Global ( 27.81, 29.54, 87.24) +TGeoScaledShape 65 Local ( 0.00, 27.00, 40.00) Global ( 0.00, 30.86, 87.10) +TGeoScaledShape 66 Local ( -27.81, 25.68, 40.00) Global ( -27.81, 29.54, 87.24) +TGeoScaledShape 67 Local ( -52.90, 21.84, 40.00) Global ( -52.90, 25.73, 87.62) +TGeoScaledShape 68 Local ( -72.81, 15.87, 40.00) Global ( -72.81, 19.78, 88.22) +TGeoScaledShape 69 Local ( -85.60, 8.34, 40.00) Global ( -85.60, 12.30, 88.97) +TGeoScaledShape 70 Local ( -90.00, 0.00, 40.00) Global ( -90.00, 3.99, 89.80) +TGeoScaledShape 71 Local ( -85.60, -8.34, 40.00) Global ( -85.60, -4.31, 90.63) +TGeoScaledShape 72 Local ( -72.81, -15.87, 40.00) Global ( -72.81, -11.80, 91.38) +TGeoScaledShape 73 Local ( -52.90, -21.84, 40.00) Global ( -52.90, -17.74, 91.98) +TGeoScaledShape 74 Local ( -27.81, -25.68, 40.00) Global ( -27.81, -21.56, 92.36) +TGeoScaledShape 75 Local ( -0.00, -27.00, 40.00) Global ( -0.00, -22.87, 92.50) +TGeoScaledShape 76 Local ( 27.81, -25.68, 40.00) Global ( 27.81, -21.56, 92.36) +TGeoScaledShape 77 Local ( 52.90, -21.84, 40.00) Global ( 52.90, -17.74, 91.98) +TGeoScaledShape 78 Local ( 72.81, -15.87, 40.00) Global ( 72.81, -11.80, 91.38) +TGeoScaledShape 79 Local ( 85.60, -8.34, 40.00) Global ( 85.60, -4.31, 90.63) +TGeoScaledShape Bounding box: dx= 90.00 dy= 27.00 dz= 40.00 Origin: x= 0.00 y= 0.00 z= 0.00 +ShapeCheck[1] TGeoScaledShape 80 Mesh-points: +TGeoScaledShape Scale N(mesh)=80 N(vert)=80 N(seg)=160 N(pols)=80 +TGeoScaledShape 0 Local ( 3.00, 0.00, -40.00) Global ( 3.00, -16.34, -21.61) +TGeoScaledShape 1 Local ( 2.85, 0.62, -40.00) Global ( 2.85, -16.01, -21.09) +TGeoScaledShape 2 Local ( 2.43, 1.18, -40.00) Global ( 2.43, -15.71, -20.62) +TGeoScaledShape 3 Local ( 1.76, 1.62, -40.00) Global ( 1.76, -15.47, -20.25) +TGeoScaledShape 4 Local ( 0.93, 1.90, -40.00) Global ( 0.93, -15.31, -20.01) +TGeoScaledShape 5 Local ( 0.00, 2.00, -40.00) Global ( 0.00, -15.26, -19.93) +TGeoScaledShape 6 Local ( -0.93, 1.90, -40.00) Global ( -0.93, -15.31, -20.01) +TGeoScaledShape 7 Local ( -1.76, 1.62, -40.00) Global ( -1.76, -15.47, -20.25) +TGeoScaledShape 8 Local ( -2.43, 1.18, -40.00) Global ( -2.43, -15.71, -20.62) +TGeoScaledShape 9 Local ( -2.85, 0.62, -40.00) Global ( -2.85, -16.01, -21.09) +TGeoScaledShape 10 Local ( -3.00, 0.00, -40.00) Global ( -3.00, -16.34, -21.61) +TGeoScaledShape 11 Local ( -2.85, -0.62, -40.00) Global ( -2.85, -16.68, -22.13) +TGeoScaledShape 12 Local ( -2.43, -1.18, -40.00) Global ( -2.43, -16.98, -22.60) +TGeoScaledShape 13 Local ( -1.76, -1.62, -40.00) Global ( -1.76, -17.22, -22.97) +TGeoScaledShape 14 Local ( -0.93, -1.90, -40.00) Global ( -0.93, -17.37, -23.21) +TGeoScaledShape 15 Local ( -0.00, -2.00, -40.00) Global ( -0.00, -17.42, -23.30) +TGeoScaledShape 16 Local ( 0.93, -1.90, -40.00) Global ( 0.93, -17.37, -23.21) +TGeoScaledShape 17 Local ( 1.76, -1.62, -40.00) Global ( 1.76, -17.22, -22.97) +TGeoScaledShape 18 Local ( 2.43, -1.18, -40.00) Global ( 2.43, -16.98, -22.60) +TGeoScaledShape 19 Local ( 2.85, -0.62, -40.00) Global ( 2.85, -16.68, -22.13) +TGeoScaledShape 20 Local ( 18.00, 0.00, -40.00) Global ( 18.00, -16.34, -21.61) +TGeoScaledShape 21 Local ( 17.12, 3.71, -40.00) Global ( 17.12, -14.34, -18.49) +TGeoScaledShape 22 Local ( 14.56, 7.05, -40.00) Global ( 14.56, -12.53, -15.68) +TGeoScaledShape 23 Local ( 10.58, 9.71, -40.00) Global ( 10.58, -11.10, -13.44) +TGeoScaledShape 24 Local ( 5.56, 11.41, -40.00) Global ( 5.56, -10.17, -12.01) +TGeoScaledShape 25 Local ( 0.00, 12.00, -40.00) Global ( 0.00, -9.86, -11.51) +TGeoScaledShape 26 Local ( -5.56, 11.41, -40.00) Global ( -5.56, -10.17, -12.01) +TGeoScaledShape 27 Local ( -10.58, 9.71, -40.00) Global ( -10.58, -11.10, -13.44) +TGeoScaledShape 28 Local ( -14.56, 7.05, -40.00) Global ( -14.56, -12.53, -15.68) +TGeoScaledShape 29 Local ( -17.12, 3.71, -40.00) Global ( -17.12, -14.34, -18.49) +TGeoScaledShape 30 Local ( -18.00, 0.00, -40.00) Global ( -18.00, -16.34, -21.61) +TGeoScaledShape 31 Local ( -17.12, -3.71, -40.00) Global ( -17.12, -18.34, -24.73) +TGeoScaledShape 32 Local ( -14.56, -7.05, -40.00) Global ( -14.56, -20.15, -27.55) +TGeoScaledShape 33 Local ( -10.58, -9.71, -40.00) Global ( -10.58, -21.59, -29.78) +TGeoScaledShape 34 Local ( -5.56, -11.41, -40.00) Global ( -5.56, -22.51, -31.22) +TGeoScaledShape 35 Local ( -0.00, -12.00, -40.00) Global ( -0.00, -22.82, -31.71) +TGeoScaledShape 36 Local ( 5.56, -11.41, -40.00) Global ( 5.56, -22.51, -31.22) +TGeoScaledShape 37 Local ( 10.58, -9.71, -40.00) Global ( 10.58, -21.59, -29.78) +TGeoScaledShape 38 Local ( 14.56, -7.05, -40.00) Global ( 14.56, -20.15, -27.55) +TGeoScaledShape 39 Local ( 17.12, -3.71, -40.00) Global ( 17.12, -18.34, -24.73) +TGeoScaledShape 40 Local ( 12.00, 0.00, 40.00) Global ( 12.00, -83.66, 21.61) +TGeoScaledShape 41 Local ( 11.41, 2.47, 40.00) Global ( 11.41, -82.32, 23.69) +TGeoScaledShape 42 Local ( 9.71, 4.70, 40.00) Global ( 9.71, -81.12, 25.57) +TGeoScaledShape 43 Local ( 7.05, 6.47, 40.00) Global ( 7.05, -80.16, 27.06) +TGeoScaledShape 44 Local ( 3.71, 7.61, 40.00) Global ( 3.71, -79.55, 28.01) +TGeoScaledShape 45 Local ( 0.00, 8.00, 40.00) Global ( 0.00, -79.34, 28.34) +TGeoScaledShape 46 Local ( -3.71, 7.61, 40.00) Global ( -3.71, -79.55, 28.01) +TGeoScaledShape 47 Local ( -7.05, 6.47, 40.00) Global ( -7.05, -80.16, 27.06) +TGeoScaledShape 48 Local ( -9.71, 4.70, 40.00) Global ( -9.71, -81.12, 25.57) +TGeoScaledShape 49 Local ( -11.41, 2.47, 40.00) Global ( -11.41, -82.32, 23.69) +TGeoScaledShape 50 Local ( -12.00, 0.00, 40.00) Global ( -12.00, -83.66, 21.61) +TGeoScaledShape 51 Local ( -11.41, -2.47, 40.00) Global ( -11.41, -84.99, 19.53) +TGeoScaledShape 52 Local ( -9.71, -4.70, 40.00) Global ( -9.71, -86.20, 17.66) +TGeoScaledShape 53 Local ( -7.05, -6.47, 40.00) Global ( -7.05, -87.16, 16.17) +TGeoScaledShape 54 Local ( -3.71, -7.61, 40.00) Global ( -3.71, -87.77, 15.21) +TGeoScaledShape 55 Local ( -0.00, -8.00, 40.00) Global ( -0.00, -87.98, 14.88) +TGeoScaledShape 56 Local ( 3.71, -7.61, 40.00) Global ( 3.71, -87.77, 15.21) +TGeoScaledShape 57 Local ( 7.05, -6.47, 40.00) Global ( 7.05, -87.16, 16.17) +TGeoScaledShape 58 Local ( 9.71, -4.70, 40.00) Global ( 9.71, -86.20, 17.66) +TGeoScaledShape 59 Local ( 11.41, -2.47, 40.00) Global ( 11.41, -84.99, 19.53) +TGeoScaledShape 60 Local ( 54.00, 0.00, 40.00) Global ( 54.00, -83.66, 21.61) +TGeoScaledShape 61 Local ( 51.36, 11.12, 40.00) Global ( 51.36, -77.65, 30.97) +TGeoScaledShape 62 Local ( 43.69, 21.16, 40.00) Global ( 43.69, -72.23, 39.42) +TGeoScaledShape 63 Local ( 31.74, 29.12, 40.00) Global ( 31.74, -67.92, 46.12) +TGeoScaledShape 64 Local ( 16.69, 34.24, 40.00) Global ( 16.69, -65.16, 50.42) +TGeoScaledShape 65 Local ( 0.00, 36.00, 40.00) Global ( 0.00, -64.21, 51.91) +TGeoScaledShape 66 Local ( -16.69, 34.24, 40.00) Global ( -16.69, -65.16, 50.42) +TGeoScaledShape 67 Local ( -31.74, 29.12, 40.00) Global ( -31.74, -67.92, 46.12) +TGeoScaledShape 68 Local ( -43.69, 21.16, 40.00) Global ( -43.69, -72.23, 39.42) +TGeoScaledShape 69 Local ( -51.36, 11.12, 40.00) Global ( -51.36, -77.65, 30.97) +TGeoScaledShape 70 Local ( -54.00, 0.00, 40.00) Global ( -54.00, -83.66, 21.61) +TGeoScaledShape 71 Local ( -51.36, -11.12, 40.00) Global ( -51.36, -89.67, 12.25) +TGeoScaledShape 72 Local ( -43.69, -21.16, 40.00) Global ( -43.69, -95.09, 3.81) +TGeoScaledShape 73 Local ( -31.74, -29.12, 40.00) Global ( -31.74, -99.39, -2.90) +TGeoScaledShape 74 Local ( -16.69, -34.24, 40.00) Global ( -16.69, -102.16, -7.20) +TGeoScaledShape 75 Local ( -0.00, -36.00, 40.00) Global ( -0.00, -103.11, -8.68) +TGeoScaledShape 76 Local ( 16.69, -34.24, 40.00) Global ( 16.69, -102.16, -7.20) +TGeoScaledShape 77 Local ( 31.74, -29.12, 40.00) Global ( 31.74, -99.39, -2.90) +TGeoScaledShape 78 Local ( 43.69, -21.16, 40.00) Global ( 43.69, -95.09, 3.81) +TGeoScaledShape 79 Local ( 51.36, -11.12, 40.00) Global ( 51.36, -89.67, 12.25) +TGeoScaledShape Bounding box: dx= 54.00 dy= 36.00 dz= 40.00 Origin: x= 0.00 y= 0.00 z= 0.00