File indexing completed on 2025-02-22 09:38:17
0001 """
0002
0003 Subtest using LHeD showing the usage of the G4Particle gun using
0004 the Geant4GeneratorWrapper object.
0005
0006 @author M.Frank
0007 @version 1.0
0008
0009 """
0010 from __future__ import absolute_import, unicode_literals
0011 import logging
0012
0013 logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
0014 logger = logging.getLogger(__name__)
0015
0016
0017 def run():
0018 import LHeD
0019 import DDG4
0020 from DDG4 import OutputLevel as Output
0021
0022 lhed = LHeD.LHeD()
0023 geant4 = lhed.geant4
0024 kernel = lhed.kernel
0025 lhed.loadGeometry()
0026 geant4.printDetectors()
0027 kernel.UI = "UI"
0028 geant4.setupCshUI()
0029 lhed.setupField(quiet=False)
0030 DDG4.importConstants(kernel.detectorDescription(), debug=False)
0031
0032 prt = DDG4.EventAction(kernel, 'Geant4ParticlePrint/ParticlePrint')
0033 prt.OutputLevel = Output.INFO
0034 prt.OutputType = 3
0035 kernel.eventAction().adopt(prt)
0036
0037 gen = DDG4.GeneratorAction(kernel, "Geant4GeneratorActionInit/GenerationInit")
0038 kernel.generatorAction().adopt(gen)
0039 logger.info("# First particle generator: gun")
0040 gun = DDG4.GeneratorAction(kernel, "Geant4GeneratorWrapper/Gun")
0041 gun.Uses = 'G4ParticleGun'
0042 gun.Mask = 1
0043 kernel.generatorAction().adopt(gun)
0044
0045
0046 merger = DDG4.GeneratorAction(kernel, "Geant4InteractionMerger/InteractionMerger")
0047 merger.enableUI()
0048 kernel.generatorAction().adopt(merger)
0049
0050
0051 part = DDG4.GeneratorAction(kernel, "Geant4ParticleHandler/ParticleHandler")
0052 kernel.generatorAction().adopt(part)
0053 part.OutputLevel = Output.INFO
0054 part.enableUI()
0055 user = DDG4.Action(kernel, "Geant4TCUserParticleHandler/UserParticleHandler")
0056 user.TrackingVolume_Zmax = DDG4.EcalEndcap_zmin
0057 user.TrackingVolume_Rmax = DDG4.EcalBarrel_rmin
0058 user.enableUI()
0059 part.adopt(user)
0060
0061 lhed.setupDetectors()
0062 lhed.setupPhysics('QGSP_BERT')
0063 lhed.test_config()
0064 gun.generator()
0065 kernel.run()
0066 kernel.terminate()
0067
0068
0069 if __name__ == "__main__":
0070 run()