From 7374cce8494e0ea4021eea38ead424295b33a4ff Mon Sep 17 00:00:00 2001 From: Frank Gaede <frank.gaede@desy.de> Date: Thu, 1 Mar 2018 19:11:48 +0100 Subject: [PATCH] add example dumpDetectorData.py --- DDRec/python/dumpDetectorData.py | 115 +++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 DDRec/python/dumpDetectorData.py diff --git a/DDRec/python/dumpDetectorData.py b/DDRec/python/dumpDetectorData.py new file mode 100644 index 000000000..25b5af6dc --- /dev/null +++ b/DDRec/python/dumpDetectorData.py @@ -0,0 +1,115 @@ +#!/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. +# +#========================================================================== + +import sys, errno, optparse, logging + + +def dumpData( det ): + try: + dat = DDRec.FixedPadSizeTPCData(det) + print dat.toString() + except: + pass + try: + dat = DDRec.ZPlanarData(det) + print dat.toString() + except: + pass + try: + dat = DDRec.ZDiskPetalsData(det) + print dat.toString() + except: + pass + try: + dat = DDRec.ConicalSupportData(det) + print dat.toString() + except: + pass + try: + dat = DDRec.LayeredCalorimeterData(det) + print dat.toString() + except: + pass + try: + dat = DDRec.NeighbourSurfacesStruct(det) + print dat.toString() + except: + pass + + + + + +logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) +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: + logging.info(" %s",parser.format_help()) + sys.exit(1) + +try: + import ROOT + from ROOT import gROOT + gROOT.SetBatch(1) +except ImportError,X: + logging.error('PyROOT interface not accessible: %s',str(X)) + logging.error("%s",parser.format_help()) + sys.exit(errno.ENOENT) + +try: + import DD4hep +except ImportError,X: + logging.error('dd4hep python interface not accessible: %s',str(X)) + logging.error("%s",parser.format_help()) + sys.exit(errno.ENOENT) +# +try: + import DDRec +except ImportError,X: + logging.error('ddrec python interface not accessible: %s',str(X)) + logging.error("%s",parser.format_help()) + sys.exit(errno.ENOENT) +# + +DD4hep.setPrintLevel(DD4hep.OutputLevel.ERROR) +logging.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(): + + print + print " ------------- detector : " , d.name() + print + + det = description.detector( n ) + + dumpData(det) + +##----------------------------------------------------------------- + + +logging.info('+++ Execution finished...') +sys.exit(0) -- GitLab