Back to home page

EIC code displayed by LXR

 
 

    


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   # Setup the GDML writer action
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()