File indexing completed on 2025-12-16 09:28:28
0001
0002
0003
0004
0005 import os
0006 import warnings
0007 from pathlib import Path
0008 import argparse
0009
0010 import acts
0011 from acts.examples import (
0012 GaussianVertexGenerator,
0013 ParametricParticleGenerator,
0014 FixedMultiplicityGenerator,
0015 EventGenerator,
0016 RandomNumbers,
0017 )
0018
0019 import acts.examples.dd4hep
0020 import acts.examples.geant4
0021
0022 import epic
0023 from material_recording import runMaterialRecording
0024
0025 u = acts.UnitConstants
0026
0027 _material_recording_executed = False
0028
0029
0030 def main():
0031
0032 p = argparse.ArgumentParser()
0033 p.add_argument(
0034 "-n", "--events", type=int, default=1000, help="Number of events to generate"
0035 )
0036 p.add_argument(
0037 "-t", "--tracks", type=int, default=100, help="Particle tracks per event"
0038 )
0039 p.add_argument(
0040 "-i", "--xmlFile", type=str, default=os.environ.get("DETECTOR_PATH", "") + os.environ.get("DETECTOR_CONFIG", "") + ".xml", help="DD4hep input file"
0041 )
0042 p.add_argument(
0043 "-o", "--outputName", type=str, default="geant4_material_tracks.root", help="Name of the output rootfile"
0044 )
0045 p.add_argument(
0046 "--eta_min",
0047 type=float,
0048 default=-8.0,
0049 help="eta min (optional)",
0050 )
0051 p.add_argument(
0052 "--eta_max",
0053 type=float,
0054 default=8.0,
0055 help="eta max (optional)",
0056 )
0057 args = p.parse_args()
0058
0059 detector = epic.getDetector(
0060 args.xmlFile)
0061
0062 runMaterialRecording(
0063 detector=detector,
0064 tracksPerEvent=args.tracks,
0065 outputDir=os.getcwd(),
0066 etaRange=(args.eta_min, args.eta_max),
0067 s=acts.examples.Sequencer(events=args.events, numThreads=1),
0068 ).run()
0069
0070
0071 if "__main__" == __name__:
0072 main()