diff --git a/DDCore/include/DD4hep/Shapes.h b/DDCore/include/DD4hep/Shapes.h index 54aa7a7efd1de634d5fe0299235df70bf179522f..b919b1f01e2f97e7a1c329051fa61a2f084a012c 100644 --- a/DDCore/include/DD4hep/Shapes.h +++ b/DDCore/include/DD4hep/Shapes.h @@ -588,13 +588,13 @@ namespace dd4hep { TruncatedTube& operator=(const TruncatedTube& copy) = default; }; - /// Class describing a elliptical tube shape + /// Class describing a twisted tube shape /** - * This is actually no TGeo shape. This implementation is a placeholder - * for the Geant4 implementation G4TwistedTube. - * In root it is implemented by a simple tube segment. - * When converted to geant4 it will become a G4TwistedTube. + * TGeoEltu - cylindrical tube class. It takes 3 parameters : + * Semi axis of ellipsis in x and y and half-length dz. * + * For any further documentation please see the following ROOT documentation: + * \see http://root.cern.ch/root/html/TGeoElTu.html * * \author M.Frank * \version 1.0 @@ -640,13 +640,13 @@ namespace dd4hep { EllipticalTube& setDimensions(double a, double b, double dz); }; - /// Class describing a twisted tube shape + /// Class describing a elliptical tube shape /** - * TGeoEltu - cylindrical tube class. It takes 3 parameters : - * Semi axis of ellipsis in x and y and half-length dz. + * This is actually no TGeo shape. This implementation is a placeholder + * for the Geant4 implementation G4TwistedTube. + * In root it is implemented by a simple tube segment. + * When converted to geant4 it will become a G4TwistedTube. * - * For any further documentation please see the following ROOT documentation: - * \see http://root.cern.ch/root/html/TGeoElTu.html * * \author M.Frank * \version 1.0 diff --git a/DDCore/include/DD4hep/detail/ShapesInterna.h b/DDCore/include/DD4hep/detail/ShapesInterna.h index 55ace57241c0f526c3c7a50efac55a44bcf4d12b..6e885ee3a64f6df4e0a761688fd71d9dc5d8759c 100644 --- a/DDCore/include/DD4hep/detail/ShapesInterna.h +++ b/DDCore/include/DD4hep/detail/ShapesInterna.h @@ -37,10 +37,10 @@ namespace dd4hep { /// Inhibit copy assignment TwistedTubeObject& operator=(const TwistedTubeObject&) = delete; public: - double fPhiTwist {0}; // Twist angle from -fZHalfLength to fZHalfLength - double fNegativeEndz {0}; // -ve z endplate - double fPositiveEndz {0}; // +ve z endplate - int fNsegments {0}; // Number of segments in totalPhi + double fPhiTwist {0.0}; // Twist angle from -fZHalfLength to fZHalfLength + double fNegativeEndz {0.0}; // -ve z endplate + double fPositiveEndz {0.0}; // +ve z endplate + int fNsegments {0}; // Number of segments in totalPhi public: /// Standard constructor @@ -66,7 +66,7 @@ namespace dd4hep { int GetNsegments() const { return fNsegments; } /// in case shape has some negative parameters, these has to be computed in order to fit the mother - virtual TGeoShape *GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix * /*mat*/) const override; + virtual TGeoShape *GetMakeRuntimeShape(TGeoShape* mother, TGeoMatrix* mat) const override; /// print shape parameters virtual void InspectShape() const override; diff --git a/DDCore/src/ShapeUtilities.cpp b/DDCore/src/ShapeUtilities.cpp index bf0569bad716ae41559e708cdcfadb29a3766c06..88462e0f24888ea573e4e883d159b42419e170b1 100644 --- a/DDCore/src/ShapeUtilities.cpp +++ b/DDCore/src/ShapeUtilities.cpp @@ -737,7 +737,7 @@ namespace dd4hep { template <> void set_dimensions(CutTube shape, const std::vector<double>& params) { set_dimensions(shape.ptr(), params); } template <> void set_dimensions(TwistedTube shape, const std::vector<double>& params) - { set_dimensions(shape.ptr(), params); } + { set_dimensions((TwistedTubeObject*)shape.ptr(), params); } template <> void set_dimensions(EllipticalTube shape, const std::vector<double>& params) { set_dimensions(shape.ptr(), params); } template <> void set_dimensions(Trap shape, const std::vector<double>& params) diff --git a/DDCore/src/plugins/ShapePlugins.cpp b/DDCore/src/plugins/ShapePlugins.cpp index 25976c16c626e47c4fe7512a74b762cc3f25b7c8..0d4f629ad34c1501f34e0f270cfe986c7a8b5275 100644 --- a/DDCore/src/plugins/ShapePlugins.cpp +++ b/DDCore/src/plugins/ShapePlugins.cpp @@ -117,7 +117,7 @@ static Handle<TObject> create_TwistedTube(Detector&, xml_h element) { zpos = e.zpos(); zneg = e.zneg(); } - solid = TwistedTube(e.twist(0.0), e.rmin(0.0),e.rmax(),zpos, zneg, nseg, e.deltaphi(2*M_PI)); + solid = TwistedTube(e.twist(0.0), e.rmin(0.0),e.rmax(),zneg, zpos, nseg, e.deltaphi(2*M_PI)); if ( e.hasAttr(_U(name)) ) solid->SetName(e.attr<string>(_U(name)).c_str()); return solid; diff --git a/DDG4/plugins/Geant4DetectorGeometryConstruction.cpp b/DDG4/plugins/Geant4DetectorGeometryConstruction.cpp index 3666b6b376c637216148368fd0624c2185405bd6..2fe2312e8901d2564e9f1cc10911dff926fb4a60 100644 --- a/DDG4/plugins/Geant4DetectorGeometryConstruction.cpp +++ b/DDG4/plugins/Geant4DetectorGeometryConstruction.cpp @@ -74,7 +74,7 @@ namespace dd4hep { /// Default destructor virtual ~Geant4DetectorGeometryConstruction(); /// Geometry construction callback. Called at "Construct()" - void constructGeo(Geant4DetectorConstructionContext* ctxt); + void constructGeo(Geant4DetectorConstructionContext* ctxt) override; /// Install command control messenger to write GDML file from command prompt. virtual void installCommandMessenger() override; }; diff --git a/examples/ClientTests/compact/Check_Shape_TwistedTube.xml b/examples/ClientTests/compact/Check_Shape_TwistedTube.xml index 56431eacb08d11598baa8ee9bb1e382c91ea6001..d2b795a3859497f4e6a276a7337ee8f9ff401d6b 100644 --- a/examples/ClientTests/compact/Check_Shape_TwistedTube.xml +++ b/examples/ClientTests/compact/Check_Shape_TwistedTube.xml @@ -10,11 +10,7 @@ <position x="30" y="30" z="30"/> <rotation x="0" y="0" z="0"/> </check> -<a> <test type="DD4hep_Mesh_Verifier" ref="${DD4hepExamplesINSTALL}/examples/ClientTests/ref/Ref_TwistedTube.txt" create="CheckShape_create"/> -</a> - <test type="DD4hep_Mesh_Verifier" ref="${DD4hepExamplesINSTALL}/examples/ClientTests/ref/Ref_TwistedTube.txt" create="1"/> - </detector> </detectors> </lccdd> diff --git a/examples/ClientTests/ref/Ref_TwistedTube.txt b/examples/ClientTests/ref/Ref_TwistedTube.txt new file mode 100644 index 0000000000000000000000000000000000000000..3dc484c646bf65b414a5c49f86194913e5b0905b --- /dev/null +++ b/examples/ClientTests/ref/Ref_TwistedTube.txt @@ -0,0 +1,87 @@ +ShapeCheck[0] dd4hep::TwistedTubeObject 84 Mesh-points: +dd4hep::TwistedTubeObject TwistedTube N(mesh)=84 N(vert)=84 N(seg)=168 N(pols)=82 +dd4hep::TwistedTubeObject 0 Local ( 10.00, 0.00, 40.00) Global ( 40.00, 30.00, 70.00) +dd4hep::TwistedTubeObject 1 Local ( 9.99, 0.39, 40.00) Global ( 39.99, 30.39, 70.00) +dd4hep::TwistedTubeObject 2 Local ( 9.97, 0.78, 40.00) Global ( 39.97, 30.78, 70.00) +dd4hep::TwistedTubeObject 3 Local ( 9.93, 1.18, 40.00) Global ( 39.93, 31.18, 70.00) +dd4hep::TwistedTubeObject 4 Local ( 9.88, 1.56, 40.00) Global ( 39.88, 31.56, 70.00) +dd4hep::TwistedTubeObject 5 Local ( 9.81, 1.95, 40.00) Global ( 39.81, 31.95, 70.00) +dd4hep::TwistedTubeObject 6 Local ( 9.72, 2.33, 40.00) Global ( 39.72, 32.33, 70.00) +dd4hep::TwistedTubeObject 7 Local ( 9.62, 2.71, 40.00) Global ( 39.62, 32.71, 70.00) +dd4hep::TwistedTubeObject 8 Local ( 9.51, 3.09, 40.00) Global ( 39.51, 33.09, 70.00) +dd4hep::TwistedTubeObject 9 Local ( 9.38, 3.46, 40.00) Global ( 39.38, 33.46, 70.00) +dd4hep::TwistedTubeObject 10 Local ( 9.24, 3.83, 40.00) Global ( 39.24, 33.83, 70.00) +dd4hep::TwistedTubeObject 11 Local ( 9.08, 4.19, 40.00) Global ( 39.08, 34.19, 70.00) +dd4hep::TwistedTubeObject 12 Local ( 8.91, 4.54, 40.00) Global ( 38.91, 34.54, 70.00) +dd4hep::TwistedTubeObject 13 Local ( 8.72, 4.89, 40.00) Global ( 38.72, 34.89, 70.00) +dd4hep::TwistedTubeObject 14 Local ( 8.53, 5.22, 40.00) Global ( 38.53, 35.22, 70.00) +dd4hep::TwistedTubeObject 15 Local ( 8.31, 5.56, 40.00) Global ( 38.31, 35.56, 70.00) +dd4hep::TwistedTubeObject 16 Local ( 8.09, 5.88, 40.00) Global ( 38.09, 35.88, 70.00) +dd4hep::TwistedTubeObject 17 Local ( 7.85, 6.19, 40.00) Global ( 37.85, 36.19, 70.00) +dd4hep::TwistedTubeObject 18 Local ( 7.60, 6.49, 40.00) Global ( 37.60, 36.49, 70.00) +dd4hep::TwistedTubeObject 19 Local ( 7.34, 6.79, 40.00) Global ( 37.34, 36.79, 70.00) +dd4hep::TwistedTubeObject 20 Local ( 7.07, 7.07, 40.00) Global ( 37.07, 37.07, 70.00) +dd4hep::TwistedTubeObject 21 Local ( 30.00, 0.00, 40.00) Global ( 60.00, 30.00, 70.00) +dd4hep::TwistedTubeObject 22 Local ( 29.98, 1.18, 40.00) Global ( 59.98, 31.18, 70.00) +dd4hep::TwistedTubeObject 23 Local ( 29.91, 2.35, 40.00) Global ( 59.91, 32.35, 70.00) +dd4hep::TwistedTubeObject 24 Local ( 29.79, 3.53, 40.00) Global ( 59.79, 33.53, 70.00) +dd4hep::TwistedTubeObject 25 Local ( 29.63, 4.69, 40.00) Global ( 59.63, 34.69, 70.00) +dd4hep::TwistedTubeObject 26 Local ( 29.42, 5.85, 40.00) Global ( 59.42, 35.85, 70.00) +dd4hep::TwistedTubeObject 27 Local ( 29.17, 7.00, 40.00) Global ( 59.17, 37.00, 70.00) +dd4hep::TwistedTubeObject 28 Local ( 28.87, 8.14, 40.00) Global ( 58.87, 38.14, 70.00) +dd4hep::TwistedTubeObject 29 Local ( 28.53, 9.27, 40.00) Global ( 58.53, 39.27, 70.00) +dd4hep::TwistedTubeObject 30 Local ( 28.15, 10.38, 40.00) Global ( 58.15, 40.38, 70.00) +dd4hep::TwistedTubeObject 31 Local ( 27.72, 11.48, 40.00) Global ( 57.72, 41.48, 70.00) +dd4hep::TwistedTubeObject 32 Local ( 27.24, 12.56, 40.00) Global ( 57.24, 42.56, 70.00) +dd4hep::TwistedTubeObject 33 Local ( 26.73, 13.62, 40.00) Global ( 56.73, 43.62, 70.00) +dd4hep::TwistedTubeObject 34 Local ( 26.17, 14.66, 40.00) Global ( 56.17, 44.66, 70.00) +dd4hep::TwistedTubeObject 35 Local ( 25.58, 15.67, 40.00) Global ( 55.58, 45.67, 70.00) +dd4hep::TwistedTubeObject 36 Local ( 24.94, 16.67, 40.00) Global ( 54.94, 46.67, 70.00) +dd4hep::TwistedTubeObject 37 Local ( 24.27, 17.63, 40.00) Global ( 54.27, 47.63, 70.00) +dd4hep::TwistedTubeObject 38 Local ( 23.56, 18.57, 40.00) Global ( 53.56, 48.57, 70.00) +dd4hep::TwistedTubeObject 39 Local ( 22.81, 19.48, 40.00) Global ( 52.81, 49.48, 70.00) +dd4hep::TwistedTubeObject 40 Local ( 22.03, 20.36, 40.00) Global ( 52.03, 50.36, 70.00) +dd4hep::TwistedTubeObject 41 Local ( 21.21, 21.21, 40.00) Global ( 51.21, 51.21, 70.00) +dd4hep::TwistedTubeObject 42 Local ( 10.00, 0.00, -40.00) Global ( 40.00, 30.00, -10.00) +dd4hep::TwistedTubeObject 43 Local ( 9.99, 0.39, -40.00) Global ( 39.99, 30.39, -10.00) +dd4hep::TwistedTubeObject 44 Local ( 9.97, 0.78, -40.00) Global ( 39.97, 30.78, -10.00) +dd4hep::TwistedTubeObject 45 Local ( 9.93, 1.18, -40.00) Global ( 39.93, 31.18, -10.00) +dd4hep::TwistedTubeObject 46 Local ( 9.88, 1.56, -40.00) Global ( 39.88, 31.56, -10.00) +dd4hep::TwistedTubeObject 47 Local ( 9.81, 1.95, -40.00) Global ( 39.81, 31.95, -10.00) +dd4hep::TwistedTubeObject 48 Local ( 9.72, 2.33, -40.00) Global ( 39.72, 32.33, -10.00) +dd4hep::TwistedTubeObject 49 Local ( 9.62, 2.71, -40.00) Global ( 39.62, 32.71, -10.00) +dd4hep::TwistedTubeObject 50 Local ( 9.51, 3.09, -40.00) Global ( 39.51, 33.09, -10.00) +dd4hep::TwistedTubeObject 51 Local ( 9.38, 3.46, -40.00) Global ( 39.38, 33.46, -10.00) +dd4hep::TwistedTubeObject 52 Local ( 9.24, 3.83, -40.00) Global ( 39.24, 33.83, -10.00) +dd4hep::TwistedTubeObject 53 Local ( 9.08, 4.19, -40.00) Global ( 39.08, 34.19, -10.00) +dd4hep::TwistedTubeObject 54 Local ( 8.91, 4.54, -40.00) Global ( 38.91, 34.54, -10.00) +dd4hep::TwistedTubeObject 55 Local ( 8.72, 4.89, -40.00) Global ( 38.72, 34.89, -10.00) +dd4hep::TwistedTubeObject 56 Local ( 8.53, 5.22, -40.00) Global ( 38.53, 35.22, -10.00) +dd4hep::TwistedTubeObject 57 Local ( 8.31, 5.56, -40.00) Global ( 38.31, 35.56, -10.00) +dd4hep::TwistedTubeObject 58 Local ( 8.09, 5.88, -40.00) Global ( 38.09, 35.88, -10.00) +dd4hep::TwistedTubeObject 59 Local ( 7.85, 6.19, -40.00) Global ( 37.85, 36.19, -10.00) +dd4hep::TwistedTubeObject 60 Local ( 7.60, 6.49, -40.00) Global ( 37.60, 36.49, -10.00) +dd4hep::TwistedTubeObject 61 Local ( 7.34, 6.79, -40.00) Global ( 37.34, 36.79, -10.00) +dd4hep::TwistedTubeObject 62 Local ( 7.07, 7.07, -40.00) Global ( 37.07, 37.07, -10.00) +dd4hep::TwistedTubeObject 63 Local ( 30.00, 0.00, -40.00) Global ( 60.00, 30.00, -10.00) +dd4hep::TwistedTubeObject 64 Local ( 29.98, 1.18, -40.00) Global ( 59.98, 31.18, -10.00) +dd4hep::TwistedTubeObject 65 Local ( 29.91, 2.35, -40.00) Global ( 59.91, 32.35, -10.00) +dd4hep::TwistedTubeObject 66 Local ( 29.79, 3.53, -40.00) Global ( 59.79, 33.53, -10.00) +dd4hep::TwistedTubeObject 67 Local ( 29.63, 4.69, -40.00) Global ( 59.63, 34.69, -10.00) +dd4hep::TwistedTubeObject 68 Local ( 29.42, 5.85, -40.00) Global ( 59.42, 35.85, -10.00) +dd4hep::TwistedTubeObject 69 Local ( 29.17, 7.00, -40.00) Global ( 59.17, 37.00, -10.00) +dd4hep::TwistedTubeObject 70 Local ( 28.87, 8.14, -40.00) Global ( 58.87, 38.14, -10.00) +dd4hep::TwistedTubeObject 71 Local ( 28.53, 9.27, -40.00) Global ( 58.53, 39.27, -10.00) +dd4hep::TwistedTubeObject 72 Local ( 28.15, 10.38, -40.00) Global ( 58.15, 40.38, -10.00) +dd4hep::TwistedTubeObject 73 Local ( 27.72, 11.48, -40.00) Global ( 57.72, 41.48, -10.00) +dd4hep::TwistedTubeObject 74 Local ( 27.24, 12.56, -40.00) Global ( 57.24, 42.56, -10.00) +dd4hep::TwistedTubeObject 75 Local ( 26.73, 13.62, -40.00) Global ( 56.73, 43.62, -10.00) +dd4hep::TwistedTubeObject 76 Local ( 26.17, 14.66, -40.00) Global ( 56.17, 44.66, -10.00) +dd4hep::TwistedTubeObject 77 Local ( 25.58, 15.67, -40.00) Global ( 55.58, 45.67, -10.00) +dd4hep::TwistedTubeObject 78 Local ( 24.94, 16.67, -40.00) Global ( 54.94, 46.67, -10.00) +dd4hep::TwistedTubeObject 79 Local ( 24.27, 17.63, -40.00) Global ( 54.27, 47.63, -10.00) +dd4hep::TwistedTubeObject 80 Local ( 23.56, 18.57, -40.00) Global ( 53.56, 48.57, -10.00) +dd4hep::TwistedTubeObject 81 Local ( 22.81, 19.48, -40.00) Global ( 52.81, 49.48, -10.00) +dd4hep::TwistedTubeObject 82 Local ( 22.03, 20.36, -40.00) Global ( 52.03, 50.36, -10.00) +dd4hep::TwistedTubeObject 83 Local ( 21.21, 21.21, -40.00) Global ( 51.21, 51.21, -10.00) +dd4hep::TwistedTubeObject Bounding box: dx= 11.46 dy= 10.61 dz= -40.00 Origin: x= 18.54 y= 10.61 z= 0.00 diff --git a/examples/ClientTests/scripts/Check_shape.py b/examples/ClientTests/scripts/Check_shape.py index 1ed692dc62988739482c3fddfb2a0125c2e0882c..48a36d2b69e5699fd726ecaff30b1a97c69ee7df 100644 --- a/examples/ClientTests/scripts/Check_shape.py +++ b/examples/ClientTests/scripts/Check_shape.py @@ -27,7 +27,6 @@ def run(): ui = geant4.setupCshUI(ui=None,vis=vis) if batch: kernel.UI = '' - print('Geometry:'+str(geo)) kernel.loadGeometry(geo) # Configure field geant4.setupTrackingField(prt=True)