Warning, /physics_benchmarks/benchmarks/Inclusive/dis/Snakefile is written in an unsupported language. File is not indexed.
0001 import shutil
0002
0003
0004 rule dis_compile:
0005 input:
0006 ROOT_BUILD_DIR_PREFIX + "benchmarks/Inclusive/dis/analysis/dis_electrons_cxx.so",
0007
0008
0009 rule dis_sim:
0010 input:
0011 warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root",
0012 output:
0013 "sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.{INDEX}.edm4hep.root",
0014 wildcard_constraints:
0015 INDEX=r"\d{4}",
0016 params:
0017 N_EVENTS=100,
0018 SEED=lambda wildcards: "1" + wildcards.INDEX,
0019 EBEAM=lambda wildcards: wildcards.EBEAM,
0020 PBEAM=lambda wildcards: wildcards.PBEAM,
0021 MINQ2=lambda wildcards: wildcards.MINQ2,
0022 DETECTOR_PATH=os.environ["DETECTOR_PATH"],
0023 DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0024 DD4HEP_HASH=get_spack_package_hash("dd4hep"),
0025 NPSIM_HASH=get_spack_package_hash("npsim"),
0026 cache: True
0027 shell:
0028 """
0029 ddsim \
0030 --runType batch \
0031 --part.minimalKineticEnergy 1000*GeV \
0032 --filter.tracker edep0 \
0033 -v WARNING \
0034 --numberOfEvents {params.N_EVENTS} \
0035 --compactFile $DETECTOR_PATH/{params.DETECTOR_CONFIG}.xml \
0036 --random.seed {params.SEED} \
0037 --inputFiles root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/DIS/NC/{params.EBEAM}x{params.PBEAM}/minQ2={params.MINQ2}/pythia8NCDIS_{params.EBEAM}x{params.PBEAM}_minQ2={params.MINQ2}_beamEffects_xAngle=-0.025_hiDiv_vtxfix_1.hepmc3.tree.root \
0038 --outputFile {output}
0039 """
0040
0041
0042 rule dis_reco_eicrecon:
0043 input:
0044 "sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.{INDEX}.edm4hep.root",
0045 output:
0046 "sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.{INDEX}.eicrecon.edm4eic.root",
0047 params:
0048 DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0049 EICRECON_HASH=get_spack_package_hash("eicrecon"),
0050 cache: True
0051 shell:
0052 """
0053 DETECTOR_CONFIG={params.DETECTOR_CONFIG} eicrecon {input} -Ppodio:output_file={output}
0054 """
0055
0056
0057 rule dis_generate_config:
0058 input:
0059 data="sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.0000.eicrecon.edm4eic.root",
0060 output:
0061 config="results/{DETECTOR_CONFIG}/dis/{EBEAM}on{PBEAM}/minQ2={MINQ2}_config.json",
0062 shell: """
0063 cat > {output.config} <<EOF
0064 {{
0065 "rec_file": "{input.data}",
0066 "detector": "{wildcards.DETECTOR_CONFIG}",
0067 "output_prefix": "results/{wildcards.DETECTOR_CONFIG}/dis/{wildcards.EBEAM}on{wildcards.PBEAM}/minQ2={wildcards.MINQ2}/dis_{wildcards.EBEAM}x{wildcards.PBEAM}_minQ2={wildcards.MINQ2}",
0068 "results_path": "results/{wildcards.DETECTOR_CONFIG}/dis/{wildcards.EBEAM}on{wildcards.PBEAM}/minQ2={wildcards.MINQ2}",
0069 "ebeam": {wildcards.EBEAM},
0070 "pbeam": {wildcards.PBEAM},
0071 "minq2": {wildcards.MINQ2},
0072 "plot_tag": "dis_{wildcards.EBEAM}x{wildcards.PBEAM}_minQ2={wildcards.MINQ2}",
0073 "test_tag": "dis_{wildcards.EBEAM}x{wildcards.PBEAM}_minQ2={wildcards.MINQ2}"
0074 }}
0075 EOF
0076 """
0077
0078
0079 rule dis_analysis_electrons:
0080 input:
0081 script="benchmarks/Inclusive/dis/analysis/dis_electrons.cxx",
0082 script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/Inclusive/dis/analysis/dis_electrons_cxx.so",
0083 data="sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.0000.eicrecon.edm4eic.root",
0084 config="results/{DETECTOR_CONFIG}/dis/{EBEAM}on{PBEAM}/minQ2={MINQ2}_config.json",
0085 output:
0086 expand("results/{{DETECTOR_CONFIG}}/dis/{{EBEAM}}on{{PBEAM}}/minQ2={{MINQ2}}/{FILENAME}", FILENAME=[
0087 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}_logQ2_panels.png",
0088 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}_logQ2_overlays.png",
0089 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}_Q2_res_panels.png",
0090 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}_Q2_res_overlays.png",
0091 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}_x_panels.png",
0092 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}_x_overlays.png",
0093 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}_x_res_panels.png",
0094 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}_x_res_overlays.png",
0095 "dis_{EBEAM}x{PBEAM}_minQ2={MINQ2}dis_electrons.json"
0096 ]),
0097 shell: """
0098 root -l -b -q '{input.script}+("{input.config}")'
0099 """
0100
0101
0102 rule dis_analysis_kinematics_correlations:
0103 input:
0104 data="sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.0000.eicrecon.edm4eic.root",
0105 output:
0106 results_path=directory("results/{DETECTOR_CONFIG}/dis/{EBEAM}on{PBEAM}/minQ2={MINQ2}/kinematics_correlations"),
0107 params:
0108 N_EVENTS=100
0109 wildcard_constraints:
0110 EBEAM=r"\d+",
0111 PBEAM=r"\d+",
0112 MINQ2=r"\d+",
0113 shell: """
0114 mkdir {output.results_path}
0115 python benchmarks/Inclusive/dis/analysis/kinematics_correlations.py --rec_file "{input.data}" --config dis_{wildcards.EBEAM}x{wildcards.PBEAM}_minQ2={wildcards.MINQ2}_{wildcards.DETECTOR_CONFIG} --results_path {output.results_path} --nevents {params.N_EVENTS}
0116 """
0117
0118
0119 rule dis_analysis_truth_reconstruction:
0120 input:
0121 data="sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.0000.eicrecon.edm4eic.root",
0122 output:
0123 results_path=directory("results/{DETECTOR_CONFIG}/dis/{EBEAM}on{PBEAM}/minQ2={MINQ2}/truth_reconstruction"),
0124 params:
0125 N_EVENTS=100
0126 wildcard_constraints:
0127 EBEAM=r"\d+",
0128 PBEAM=r"\d+",
0129 MINQ2=r"\d+",
0130 shell: """
0131 mkdir {output.results_path}
0132 python benchmarks/Inclusive/dis/analysis/truth_reconstruction.py --rec_file "{input.data}" --config dis_{wildcards.EBEAM}x{wildcards.PBEAM}_minQ2={wildcards.MINQ2}_{wildcards.DETECTOR_CONFIG} --results_path $(dirname {output.results_path}) --nevents {params.N_EVENTS}
0133 """