Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-06-17 07:06:51

0001 #!/usr/bin/env python3
0002 # SPDX-License-Identifier: LGPL-3.0-or-later
0003 # Copyright (C) 2022 Wouter Deconinck
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   # Setup the GDML writer action
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()