Newer
Older
#!/bin/python
#==========================================================================
# 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, unicode_literals
Marko Petric
committed
logging.basicConfig(format='%(levelname)s: %(message)s')
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
def dumpData( det ):
try:
dat = DDRec.FixedPadSizeTPCData(det)
Marko Petric
committed
logger.info(dat.toString())
except:
pass
try:
dat = DDRec.ZPlanarData(det)
Marko Petric
committed
logger.info(dat.toString())
except:
pass
try:
dat = DDRec.ZDiskPetalsData(det)
Marko Petric
committed
logger.info(dat.toString())
except:
pass
try:
dat = DDRec.ConicalSupportData(det)
Marko Petric
committed
logger.info(dat.toString())
except:
pass
try:
dat = DDRec.LayeredCalorimeterData(det)
Marko Petric
committed
logger.info(dat.toString())
except:
pass
try:
dat = DDRec.NeighbourSurfacesStruct(det)
Marko Petric
committed
logger.info(dat.toString())
except:
pass
parser = optparse.OptionParser()
parser.formatter.width = 132
parser.description = "Dump detector data objects from DDRec"
parser.add_option("-c", "--compact", dest="compact", default=None,
help="Define LCCDD style compact xml input",
metavar="<FILE>")
(opts, args) = parser.parse_args()
if opts.compact is None:
Marko Petric
committed
logger.info(" %s",parser.format_help())
sys.exit(1)
try:
import ROOT
from ROOT import gROOT
gROOT.SetBatch(1)
Marko Petric
committed
logger.error('PyROOT interface not accessible: %s',str(X))
logger.error("%s",parser.format_help())
Marko Petric
committed
logger.error('dd4hep python interface not accessible: %s',str(X))
logger.error("%s",parser.format_help())
sys.exit(errno.ENOENT)
#
try:
import DDRec
Marko Petric
committed
logger.error('ddrec python interface not accessible: %s',str(X))
logger.error("%s",parser.format_help())
dd4hep.setPrintLevel(dd4hep.OutputLevel.ERROR)
Marko Petric
committed
logger.info('+++%s\n+++ Loading compact geometry:%s\n+++%s',120*'=',opts.compact,120*'=')
description = dd4hep.Detector.getInstance()
description.fromXML(opts.compact)
## ------ loop over detectors and print their detector data objects
for n,d in description.detectors():
Marko Petric
committed
logger.info("")
logger.info(" ------------- detector : %s" , d.name())
logger.info("")
det = description.detector( n )
dumpData(det)
##-----------------------------------------------------------------
Marko Petric
committed
logger.info('+++ Execution finished...')