Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-15 08:22:50

0001 #!/usr/bin/env 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 parser = optparse.OptionParser()
0022 parser.description = "TGeo Geometry checking."
0023 parser.formatter.width = 132
0024 parser.add_option("-c", "--compact", dest="compact", default=None,
0025                   help="Define LCCDD style compact xml input",
0026                   metavar="<FILE>")
0027 
0028 parser.add_option("-f", "--full",
0029                   dest="full", default=False,
0030                   help="Full geometry checking",
0031                   metavar="<boolean>")
0032 
0033 parser.add_option("-n", "--ntracks",
0034                   dest="num_tracks", default=1000000,
0035                   help="Number of tracks [requires '--full']",
0036                   metavar="<integer>")
0037 
0038 parser.add_option("-x", "--vx",
0039                   dest="vx", default=0.0,
0040                   help="X-position of track origin vertex [requires '--full']",
0041                   metavar="<double>")
0042 
0043 parser.add_option("-y", "--vy",
0044                   dest="vy", default=0.0,
0045                   help="Y-position of track origin vertex [requires '--full']",
0046                   metavar="<double>")
0047 
0048 parser.add_option("-z", "--vz",
0049                   dest="vz", default=0.0,
0050                   help="Z-position of track origin vertex [requires '--full']",
0051                   metavar="<double>")
0052 
0053 parser.add_option("-o", "--option", dest="option", default='ob',
0054                   help="TGeoManager geometry check option default:ob",
0055                   metavar="<string>")
0056 
0057 (opts, args) = parser.parse_args()
0058 
0059 if opts.compact is None:
0060   logger.info("   %s", parser.format_help())
0061   sys.exit(1)
0062 
0063 try:
0064   from ROOT import gROOT
0065   gROOT.SetBatch(1)
0066 except ImportError as X:
0067   logger.error('PyROOT interface not accessible: %s', str(X))
0068   sys.exit(errno.ENOENT)
0069 
0070 try:
0071   import dd4hep
0072 except ImportError as X:
0073   logger.error('dd4hep python interface not accessible: %s', str(X))
0074   sys.exit(errno.ENOENT)
0075 
0076 dd4hep.setPrintLevel(dd4hep.OutputLevel.ERROR)
0077 logger.info('+++%s\n+++ Loading compact geometry:%s\n+++%s', 120 * '=', opts.compact, 120 * '=')
0078 description = dd4hep.Detector.getInstance()
0079 description.fromXML(opts.compact)
0080 opts.num_tracks = int(opts.num_tracks)
0081 opts.vx = float(opts.vx)
0082 opts.vy = float(opts.vy)
0083 opts.vz = float(opts.vz)
0084 logger.info('+++%s\n+++ Checking geometry:%s full-check:%s\n+++%s', 120 * '=', opts.compact, opts.full, 120 * '=')
0085 if opts.full:
0086   logger.info('+++ # tracks:%d vertex:(%7.3f, %7.3f, %7.3f) [cm]', opts.num_tracks, opts.vx, opts.vy, opts.vz)
0087   description.manager().CheckGeometryFull(opts.num_tracks, opts.vx, opts.vy, opts.vz, opts.option)
0088 else:
0089   description.manager().CheckGeometry()
0090 #
0091 #
0092 logger.info('+++ Execution finished...')
0093 sys.exit(0)