File indexing completed on 2024-06-01 07:06:21
0001 from __future__ import absolute_import, unicode_literals
0002 import os
0003 import time
0004 import logging
0005
0006 import argparse
0007 parser = argparse.ArgumentParser(
0008 prog='convert_to_gdml.py',
0009 description='''Convert DD4Hep description to GDML''',
0010 epilog='''
0011 This program converts the compact detector file to a single GDML file.
0012 ''')
0013 parser.add_argument("-c", "--compact", help="compact detector file",default="athena.xml")
0014 parser.add_argument("-o", "--output", help="gdml detector file",default="athena.gdml")
0015
0016 args = parser.parse_args()
0017
0018 import DDG4
0019 from g4units import keV, GeV, mm, ns, MeV
0020
0021 def run():
0022 kernel = DDG4.Kernel()
0023 description = kernel.detectorDescription()
0024 kernel.loadGeometry(str("file:" + args.compact))
0025
0026 DDG4.importConstants(description)
0027
0028 geant4 = DDG4.Geant4(kernel)
0029 ui = geant4.setupCshUI(ui=None)
0030
0031
0032 writer = DDG4.Action(kernel, 'Geant4GDMLWriteAction/Writer')
0033 writer.enableUI()
0034 kernel.registerGlobalAction(writer)
0035 ui.Commands = [
0036 '/ddg4/Writer/Output {}'.format(args.output),
0037 '/ddg4/Writer/OverWrite 1',
0038 '/ddg4/Writer/write'
0039 ]
0040 kernel.configure()
0041 kernel.initialize()
0042 kernel.run()
0043 kernel.terminate()
0044
0045
0046 if __name__ == "__main__":
0047 run()