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