Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-28 08:26:33

0001 #!/bin/python
0002 # ==========================================================================
0003 #  AIDA Detector description implementation
0004 # --------------------------------------------------------------------------
0005 # Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0006 # All rights reserved.
0007 #
0008 # For the licensing terms see $DD4hepINSTALL/LICENSE.
0009 # For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
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 # ------ loop over detectors and print their detector data objects
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)