From fa32308c68fcae409a0c4bd592fb0a2e4252bb2e Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Thu, 5 Apr 2018 23:22:59 +0200 Subject: [PATCH] Fix dd4hep units as discussed in the meeting. If I only could get it right... --- DDCore/python/dd4hep.py | 3 ++- DDCore/python/dd4hep_base.py | 32 ++++++++++++++++++++++++-------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/DDCore/python/dd4hep.py b/DDCore/python/dd4hep.py index 43d853450..e8fd67cc7 100644 --- a/DDCore/python/dd4hep.py +++ b/DDCore/python/dd4hep.py @@ -9,4 +9,5 @@ # #========================================================================== from dd4hep_base import * -import_units() +self = __import__(__name__) +import_units(self) diff --git a/DDCore/python/dd4hep_base.py b/DDCore/python/dd4hep_base.py index aab3df4eb..995610fb0 100644 --- a/DDCore/python/dd4hep_base.py +++ b/DDCore/python/dd4hep_base.py @@ -158,17 +158,27 @@ def import_geometry(): import_namespace_item('core','PlacedVolume') #// Shapes.h + import_namespace_item('core','Solid') + import_namespace_item('core','Box') + import_namespace_item('core','HalfSpace') import_namespace_item('core','Polycone') import_namespace_item('core','ConeSegment') - import_namespace_item('core','Box') - import_namespace_item('core','Torus') - import_namespace_item('core','Cone') import_namespace_item('core','Tube') + import_namespace_item('core','CutTube') + import_namespace_item('core','TruncatedTube') + import_namespace_item('core','EllipticalTube') + import_namespace_item('core','Cone') import_namespace_item('core','Trap') + import_namespace_item('core','PseudoTrap') import_namespace_item('core','Trapezoid') + import_namespace_item('core','Torus') import_namespace_item('core','Sphere') import_namespace_item('core','Paraboloid') + import_namespace_item('core','Hyperboloid') import_namespace_item('core','PolyhedraRegular') + import_namespace_item('core','Polyhedra') + import_namespace_item('core','ExtrudedPolygon') + import_namespace_item('core','EightPointSolid') import_namespace_item('core','BooleanSolid') import_namespace_item('core','SubtractionSolid') import_namespace_item('core','UnionSolid') @@ -225,16 +235,22 @@ def import_tgeo(): import_tgeo() import_geometry() - +# +# Import units from TGeo. +# Calling import_units makes all the units local to the dd4hep module. +# try: from ROOT import TGeoUnit as TGeoUnits - def import_units(): - def import_unit(nam): - setattr(name_space,nam,getattr(TGeoUnits,nam)) + def import_units(ns): + def import_unit(ns,nam): + setattr(ns,nam,getattr(TGeoUnits,nam)) items = dir(TGeoUnits) + if ns is None: + ns = name_space + print 'Importing TGeoUnits into namespace '+str(ns) for u in items: if u[0] != '_': - import_unit(u) + import_unit(ns, u) return len(items) except: print 'WARNING: No units from TGeoUnit can be imported. This is normal for ROOT < 6.12.0' -- GitLab