DD4hep  01.18
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
DDRec.py
Go to the documentation of this file.
1 # ==========================================================================
2 # AIDA Detector description implementation
3 # --------------------------------------------------------------------------
4 # Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 # All rights reserved.
6 #
7 # For the licensing terms see $DD4hepINSTALL/LICENSE.
8 # For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 #
10 # ==========================================================================
11 from __future__ import absolute_import, unicode_literals
12 import dd4hep as core
13 import logging
14 
15 logger = logging.getLogger(__name__)
16 
17 
18 def loadDDRec():
19  from ROOT import gSystem
20  result = gSystem.Load("libDDRec")
21  if result < 0:
22  raise Exception('DDG4.py: Failed to load the DDG4 library libDDRec: ' + gSystem.GetErrorStr())
23  from ROOT import dd4hep as module
24  core.rec = module.rec
25  return module.rec
26 
27 
28 # We are nearly there ....
29 name_space = __import__(__name__)
30 
31 
32 def import_namespace_item(ns, nam):
33  scope = getattr(name_space, ns)
34  attr = getattr(scope, nam)
35  setattr(name_space, nam, attr)
36  return attr
37 
38 
39 # ---------------------------------------------------------------------------
40 #
41 try:
42  rec = loadDDRec()
43 except Exception as X:
44  logger.error('+--%-100s--+', 100 * '-')
45  logger.error('| %-100s |', 'Failed to load DDRec library:')
46  logger.error('| %-100s |', str(X))
47  logger.error('+--%-100s--+', 100 * '-')
48  exit(1)
49 
50 
51 def import_rec():
52  import_namespace_item('rec', 'CellIDPositionConverter')
53 
54  import_namespace_item('rec', 'FixedPadSizeTPCStruct')
55 
56  import_namespace_item('rec', 'ZPlanarStruct')
57  import_namespace_item('rec', 'ZPlanarStruct::LayerLayout')
58 
59  import_namespace_item('rec', 'ZDiskPetalsStruct')
60  import_namespace_item('rec', 'ZDiskPetalsStruct::LayerLayout')
61 
62  import_namespace_item('rec', 'ConicalSupportStruct')
63 
64  import_namespace_item('rec', 'LayeredCalorimeterStruct')
65  import_namespace_item('rec', 'LayeredCalorimeterStruct::Layer')
66 
67  import_namespace_item('rec', 'NeighbourSurfacesStruct')
68  import_namespace_item('rec', 'DetectorSurfaces')
69 
70  import_namespace_item('rec', 'IMaterial')
71  import_namespace_item('rec', 'ISurface')
72  import_namespace_item('rec', 'ICylinder')
73  import_namespace_item('rec', 'ICone')
74  import_namespace_item('rec', 'SurfaceType')
75  import_namespace_item('rec', 'MaterialData')
76  import_namespace_item('rec', 'MaterialManager')
77  import_namespace_item('rec', 'VolSurfaceBase')
78  import_namespace_item('rec', 'VolSurface')
79  import_namespace_item('rec', 'VolSurfaceList')
80  import_namespace_item('rec', 'VolPlaneImpl')
81  import_namespace_item('rec', 'VolCylinderImpl')
82  import_namespace_item('rec', 'VolConeImpl')
83  import_namespace_item('rec', 'Surface')
84  import_namespace_item('rec', 'CylinderSurface')
85  import_namespace_item('rec', 'ConeSurface')
86  import_namespace_item('rec', 'SurfaceList')
87  import_namespace_item('rec', 'Vector2D')
88  import_namespace_item('rec', 'Vector3D')
89  import_namespace_item('rec', 'SurfaceManager')
90 
91  import_namespace_item('rec', 'FixedPadSizeTPCData')
92  import_namespace_item('rec', 'ZPlanarData')
93  import_namespace_item('rec', 'ZDiskPetalsData')
94  import_namespace_item('rec', 'ConicalSupportData')
95  import_namespace_item('rec', 'LayeredCalorimeterData')
96  import_namespace_item('rec', 'NeighbourSurfacesData')
97 
98 
99 # Now instantiate the entire thing
100 import_rec()
101 std_list_ISurface = core.std_list(str('ISurface*'))
102 std_list_VolSurface = core.std_list(str('VolSurface'))
def import_namespace_item
Definition: DDRec.py:32
def loadDDRec
Definition: DDRec.py:18
def import_rec
Definition: DDRec.py:51