Warning, /detector_benchmarks/benchmarks/insert_neutron/Snakefile is written in an unsupported language. File is not indexed.
0001 rule insert_neutron_generate:
0002 input:
0003 script="benchmarks/insert_neutron/analysis/gen_particles.cxx",
0004 output:
0005 GEN_FILE="sim_output/insert_neutron/neutron_{P}GeV.hepmc",
0006 params:
0007 NEVENTS_GEN=1000,
0008 th_max=5.7,
0009 th_min=2.0,
0010 shell:
0011 """
0012 mkdir -p sim_output/insert_neutron
0013 root -l -b -q '{input.script}({params.NEVENTS_GEN},"{output.GEN_FILE}", "neutron", {params.th_min}, {params.th_max}, 0., 360., {wildcards.P})'
0014 """
0015
0016 rule insert_neutron_simulate:
0017 input:
0018 GEN_FILE="sim_output/insert_neutron/neutron_{P}GeV.hepmc",
0019 warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root",
0020 geometry_lib=find_epic_libraries(),
0021 output:
0022 SIM_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_sim_neutron_{P}GeV_{INDEX}.edm4hep.root",
0023 params:
0024 INDEX=lambda wildcards: wildcards.INDEX,
0025 PHYSICS_LIST="FTFP_BERT",
0026 DETECTOR_PATH=os.environ["DETECTOR_PATH"],
0027 DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0028 DD4HEP_HASH=get_spack_package_hash("dd4hep"),
0029 NPSIM_HASH=get_spack_package_hash("npsim"),
0030 cache: True
0031 shell:
0032 """
0033 NEVENTS_SIM=200
0034 # Running simulation
0035 npsim \
0036 --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \
0037 --skipNEvents $(( $NEVENTS_SIM * {params.INDEX} )) \
0038 --numberOfEvents $NEVENTS_SIM \
0039 --physicsList {params.PHYSICS_LIST} \
0040 --inputFiles {input.GEN_FILE} \
0041 --outputFile {output.SIM_FILE}
0042 """
0043
0044 rule insert_neutron_recon:
0045 input:
0046 SIM_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_sim_neutron_{P}GeV_{INDEX}.edm4hep.root",
0047 output:
0048 REC_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_rec_neutron_{P}GeV_{INDEX}.edm4eic.root",
0049 params:
0050 DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0051 EICRECON_HASH=get_spack_package_hash("eicrecon"),
0052 cache: True
0053 shell:
0054 """
0055 NEVENTS_REC=200
0056 env DETECTOR_CONFIG={params.DETECTOR_CONFIG} \
0057 eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters -Pjana:nevents=$NEVENTS_REC
0058 """
0059
0060 rule insert_neutron_analysis:
0061 input:
0062 expand("sim_output/insert_neutron/{DETECTOR_CONFIG}_rec_neutron_{P}GeV_{INDEX}.edm4eic.root",
0063 P=[20, 30, 40, 50, 60, 70, 80],
0064 DETECTOR_CONFIG=["{DETECTOR_CONFIG}"],
0065 INDEX=range(5),
0066 ),
0067 script="benchmarks/insert_neutron/analysis/neutron_plots.py",
0068 output:
0069 results_dir=directory("results/{DETECTOR_CONFIG}/insert_neutron"),
0070 shell:
0071 """
0072 mkdir -p {output.results_dir}
0073 python {input.script} {output.results_dir}
0074 """