File indexing completed on 2026-09-28 08:26:33
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 import sys
0014 import errno
0015 import optparse
0016 import logging
0017
0018 logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
0019 logger = logging.getLogger(__name__)
0020
0021
0022 def dumpData(det):
0023 try:
0024 dat = DDRec.FixedPadSizeTPCData(det)
0025 logger.info(dat.toString())
0026 except Exception:
0027 pass
0028 try:
0029 dat = DDRec.ZPlanarData(det)
0030 logger.info(dat.toString())
0031 except Exception:
0032 pass
0033 try:
0034 dat = DDRec.ZDiskPetalsData(det)
0035 logger.info(dat.toString())
0036 except Exception:
0037 pass
0038 try:
0039 dat = DDRec.ConicalSupportData(det)
0040 logger.info(dat.toString())
0041 except Exception:
0042 pass
0043 try:
0044 dat = DDRec.LayeredCalorimeterData(det)
0045 logger.info(dat.toString())
0046 except Exception:
0047 pass
0048 try:
0049 dat = DDRec.NeighbourSurfacesStruct(det)
0050 logger.info(dat.toString())
0051 except Exception:
0052 pass
0053
0054
0055 parser = optparse.OptionParser()
0056 parser.formatter.width = 132
0057 parser.description = "Dump detector data objects from DDRec"
0058 parser.add_option("-c", "--compact", dest="compact", default=None,
0059 help="Define LCCDD style compact xml input",
0060 metavar="<FILE>")
0061
0062 (opts, args) = parser.parse_args()
0063
0064 if opts.compact is None:
0065 logger.info(" %s", parser.format_help())
0066 sys.exit(1)
0067
0068 try:
0069 from ROOT import gROOT
0070 gROOT.SetBatch(1)
0071 except ImportError as X:
0072 logger.error('PyROOT interface not accessible: %s', str(X))
0073 logger.error("%s", parser.format_help())
0074 sys.exit(errno.ENOENT)
0075
0076 try:
0077 import dd4hep
0078 except ImportError as X:
0079 logger.error('dd4hep python interface not accessible: %s', str(X))
0080 logger.error("%s", parser.format_help())
0081 sys.exit(errno.ENOENT)
0082
0083 try:
0084 import DDRec
0085 except ImportError as X:
0086 logger.error('ddrec python interface not accessible: %s', str(X))
0087 logger.error("%s", parser.format_help())
0088 sys.exit(errno.ENOENT)
0089
0090
0091 dd4hep.setPrintLevel(dd4hep.OutputLevel.ERROR)
0092 logger.info('+++%s\n+++ Loading compact geometry:%s\n+++%s', 120 * '=', opts.compact, 120 * '=')
0093
0094
0095 description = dd4hep.Detector.getInstance()
0096 description.fromXML(opts.compact)
0097
0098
0099
0100
0101 for n, d in description.detectors():
0102
0103 logger.info("")
0104 logger.info(" ------------- detector : %s", d.name())
0105 logger.info("")
0106
0107 det = description.detector(n)
0108
0109 dumpData(det)
0110
0111
0112
0113
0114 logger.info('+++ Execution finished...')
0115 sys.exit(0)