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=workflow.source_path("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 P=lambda wildcards: wildcards.P,
0011 singularity: EIC_SINGULARITY_CONTAINER,
0012 shell:
0013 """
0014 mkdir -p sim_output/insert_neutron
0015 root -l -b -q '{input.script}({params.NEVENTS_GEN},"{output.GEN_FILE}", "neutron", {params.th_min}, {params.th_max}, 0., 360., {params.P})'
0016 """
0017
0018 rule insert_neutron_simulate:
0019 input:
0020 GEN_FILE="sim_output/insert_neutron/neutron_{P}GeV.hepmc",
0021 warmup="warmup.edm4hep.root",
0022 geometry_lib=find_epic_libraries(),
0023 output:
0024 SIM_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_sim_neutron_{P}GeV_{INDEX}.edm4hep.root",
0025 params:
0026 INDEX=lambda wildcards: wildcards.INDEX,
0027 SEED=lambda wildcards: "1" + wildcards.INDEX,
0028 PHYSICS_LIST="FTFP_BERT",
0029 DETECTOR_PATH=os.environ["DETECTOR_PATH"],
0030 DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0031 DD4HEP_HASH=get_spack_package_hash("dd4hep"),
0032 NPSIM_HASH=get_spack_package_hash("npsim"),
0033 cache: True
0034 singularity: EIC_SINGULARITY_CONTAINER,
0035 shell:
0036 """
0037 NEVENTS_SIM=200
0038 exec npsim \
0039 --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \
0040 --random.seed {params.SEED} \
0041 --skipNEvents $(( $NEVENTS_SIM * {params.INDEX} )) \
0042 --numberOfEvents $NEVENTS_SIM \
0043 --physicsList {params.PHYSICS_LIST} \
0044 --inputFiles {input.GEN_FILE} \
0045 --outputFile {output.SIM_FILE}
0046 """
0047
0048 rule insert_neutron_recon:
0049 input:
0050 SIM_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_sim_neutron_{P}GeV_{INDEX}.edm4hep.root",
0051 warmup="warmup.edm4hep.root",
0052 output:
0053 REC_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_rec_neutron_{P}GeV_{INDEX}.edm4eic.root",
0054 params:
0055 DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0056 EICRECON_HASH=get_spack_package_hash("eicrecon"),
0057 cache: True
0058 singularity: EIC_SINGULARITY_CONTAINER,
0059 shell:
0060 """
0061 NEVENTS_REC=200
0062 env DETECTOR_CONFIG={params.DETECTOR_CONFIG} \
0063 eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPClusters -Pjana:nevents=$NEVENTS_REC
0064 """
0065
0066 rule insert_neutron_analysis:
0067 input:
0068 expand("sim_output/insert_neutron/{DETECTOR_CONFIG}_rec_neutron_{P}GeV_{INDEX}.edm4eic.root",
0069 P=[20, 30, 40, 50, 60, 70, 80],
0070 DETECTOR_CONFIG=["{DETECTOR_CONFIG}"],
0071 INDEX=range(5),
0072 ),
0073 script=workflow.source_path("analysis/neutron_plots.py"),
0074 output:
0075 results_dir=directory("results/{DETECTOR_CONFIG}/insert_neutron"),
0076 singularity: EIC_SINGULARITY_CONTAINER,
0077 shell:
0078 """
0079 mkdir -p {output.results_dir}
0080 python {input.script} {output.results_dir}
0081 """