From 2e1d21c9b9c8669412bd2a83d7b82ee311c089b9 Mon Sep 17 00:00:00 2001 From: Markus FRANK <Markus.Frank@cern.ch> Date: Wed, 18 Nov 2020 16:23:34 +0100 Subject: [PATCH] Undo error introduced in ConeSegement shape plugin --- DDCore/src/plugins/ShapePlugins.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DDCore/src/plugins/ShapePlugins.cpp b/DDCore/src/plugins/ShapePlugins.cpp index 923447904..29dd992f6 100644 --- a/DDCore/src/plugins/ShapePlugins.cpp +++ b/DDCore/src/plugins/ShapePlugins.cpp @@ -62,7 +62,7 @@ static Handle<TObject> create_Polycone(Detector&, xml_h element) { double start = e.startphi(0e0), deltaphi = e.deltaphi(2*M_PI); for(xml_coll_t c(e,_U(zplane)); c; ++c, ++num) { xml_comp_t plane(c); - rmin.emplace_back(plane.rmin()); + rmin.emplace_back(plane.rmin(0.0)); rmax.emplace_back(plane.rmax()); z.emplace_back(plane.z()); } @@ -82,7 +82,7 @@ static Handle<TObject> create_ConeSegment(Detector&, xml_h element) { xml_attr_t bphi = element.attr_nothrow(_U(phi2)); if ( aphi || bphi ) { double phi1 = e.phi1(0.0); - double phi2 = e.phi2(2*M_PI) - phi1; + double phi2 = e.phi2(2*M_PI); /// Old naming: angles from [phi1,phi2] solid = ConeSegment(e.dz(),e.rmin1(0.0),e.rmax1(),e.rmin2(0.0),e.rmax2(),phi1,phi2); } @@ -90,7 +90,7 @@ static Handle<TObject> create_ConeSegment(Detector&, xml_h element) { double start_phi = e.startphi(0.0); double delta_phi = e.deltaphi(2*M_PI); /// New naming: angles from [startphi,startphi+deltaphi] - solid = ConeSegment(e.dz(),e.rmin1(0.0),e.rmax1(),e.rmin2(0.0),e.rmax2(),start_phi,delta_phi); + solid = ConeSegment(e.dz(),e.rmin1(0.0),e.rmax1(),e.rmin2(0.0),e.rmax2(),start_phi,start_phi+delta_phi); } if ( e.hasAttr(_U(name)) ) solid->SetName(e.attr<string>(_U(name)).c_str()); return solid; @@ -231,7 +231,8 @@ DECLARE_XML_SHAPE(Trd2__shape_constructor,create_Trd2) static Handle<TObject> create_Torus(Detector&, xml_h element) { xml_dim_t e(element); - Solid solid = Torus(e.r(),e.rmin(),e.rmax(),e.phi(M_PI),e.deltaphi(2.*M_PI)); + double startphi = e.hasAttr(_U(phi)) ? e.phi() : e.startphi(M_PI); + Solid solid = Torus(e.r(), e.rmin(), e.rmax(), phi, e.deltaphi(2.*M_PI)); if ( e.hasAttr(_U(name)) ) solid->SetName(e.attr<string>(_U(name)).c_str()); return solid; } -- GitLab