#==========================================================================
# AIDA Detector description implementation
#--------------------------------------------------------------------------
# Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
# All rights reserved.
#
# For the licensing terms see $DD4hepINSTALL/LICENSE.
# For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
#
#==========================================================================
from __future__ import absolute_import
import logging
import dd4hep as core
def loadDDRec():
from ROOT import gSystem
result = gSystem.Load("libDDRec")
if result < 0:
raise Exception('DDG4.py: Failed to load the DDG4 library libDDRec: '+gSystem.GetErrorStr())
from ROOT import dd4hep as module
core.rec = module.rec
return module.rec
# We are nearly there ....
name_space = __import__(__name__)
def import_namespace_item(ns,nam):
scope = getattr(name_space,ns)
attr = getattr(scope,nam)
setattr(name_space,nam,attr)
return attr
#---------------------------------------------------------------------------
#
try:
rec = loadDDRec()
except Exception as X:
logging.info('+--%-100s--+',100*'-')
logging.info('| %-100s |','Failed to load DDRec library:')
logging.info('| %-100s |',str(X))
logging.info('+--%-100s--+',100*'-')
exit(1)
def import_rec():
import_namespace_item('rec','CellIDPositionConverter')
import_namespace_item('rec','FixedPadSizeTPCStruct')
import_namespace_item('rec','ZPlanarStruct')
import_namespace_item('rec','ZPlanarStruct::LayerLayout')
import_namespace_item('rec','ZDiskPetalsStruct')
import_namespace_item('rec','ZDiskPetalsStruct::LayerLayout')
import_namespace_item('rec','ConicalSupportStruct')
import_namespace_item('rec','LayeredCalorimeterStruct')
import_namespace_item('rec','LayeredCalorimeterStruct::Layer')
import_namespace_item('rec','NeighbourSurfacesStruct')
import_namespace_item('rec','DetectorSurfaces')
import_namespace_item('rec','IMaterial')
import_namespace_item('rec','ISurface')
import_namespace_item('rec','ICylinder')
import_namespace_item('rec','ICone')
import_namespace_item('rec','SurfaceType')
import_namespace_item('rec','MaterialData')
import_namespace_item('rec','MaterialManager')
import_namespace_item('rec','VolSurfaceBase')
import_namespace_item('rec','VolSurface')
import_namespace_item('rec','VolSurfaceList')
import_namespace_item('rec','VolPlaneImpl')
import_namespace_item('rec','VolCylinderImpl')
import_namespace_item('rec','VolConeImpl')
import_namespace_item('rec','Surface')
import_namespace_item('rec','CylinderSurface')
import_namespace_item('rec','ConeSurface')
import_namespace_item('rec','SurfaceList')
import_namespace_item('rec','Vector2D')
import_namespace_item('rec','Vector3D')
import_namespace_item('rec','SurfaceManager')
import_namespace_item('rec','FixedPadSizeTPCData')
import_namespace_item('rec','ZPlanarData')
import_namespace_item('rec','ZDiskPetalsData')
import_namespace_item('rec','ConicalSupportData')
import_namespace_item('rec','LayeredCalorimeterData')
import_namespace_item('rec','NeighbourSurfacesData')
# Now instantiate the entire thing
import_rec()
std_list_ISurface = core.std_list('ISurface*')
std_list_VolSurface = core.std_list('VolSurface')