From 8d47cc5dbf0b863181f7c5dab1eed340044c2e29 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Sun, 1 Dec 2024 16:50:52 -0500 Subject: [PATCH] femc_*,insert_*: enable caching --- benchmarks/femc_electron/Snakefile | 33 +++++++++++++++++++---------- benchmarks/femc_photon/Snakefile | 29 +++++++++++++++++-------- benchmarks/femc_pi0/Snakefile | 25 ++++++++++++++++------ benchmarks/insert_muon/Snakefile | 31 ++++++++++++++++++--------- benchmarks/insert_neutron/Snakefile | 31 ++++++++++++++++++--------- benchmarks/insert_tau/Snakefile | 26 ++++++++++++++++------- 6 files changed, 120 insertions(+), 55 deletions(-) diff --git a/benchmarks/femc_electron/Snakefile b/benchmarks/femc_electron/Snakefile index 13e8b737..90a0c40f 100644 --- a/benchmarks/femc_electron/Snakefile +++ b/benchmarks/femc_electron/Snakefile @@ -8,12 +8,12 @@ def get_n_events(wildcards): rule femc_electron_generate: input: script="benchmarks/femc_electron/analysis/gen_particles.cxx", + output: + GEN_FILE="sim_output/femc_electron/e-_{P}GeV.hepmc", params: N_EVENTS=get_n_events, th_max=28, - th_min=2.0 - output: - GEN_FILE="sim_output/femc_electron/e-_{P}GeV.hepmc" + th_min=2.0, shell: """ mkdir -p sim_output/femc_electron @@ -22,17 +22,24 @@ root -l -b -q '{input.script}({params.N_EVENTS},"{output.GEN_FILE}", "e-", {para rule femc_electron_simulate: input: - GEN_FILE="sim_output/femc_electron/e-_{P}GeV.hepmc" + GEN_FILE="sim_output/femc_electron/e-_{P}GeV.hepmc", + warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root", + geometry_lib=find_epic_libraries(), + output: + SIM_FILE="sim_output/femc_electron/{DETECTOR_CONFIG}_sim_e-_{P}GeV.edm4hep.root", params: N_EVENTS=get_n_events, - PHYSICS_LIST="FTFP_BERT" - output: - SIM_FILE="sim_output/femc_electron/{DETECTOR_CONFIG}_sim_e-_{P}GeV.edm4hep.root" + PHYSICS_LIST="FTFP_BERT", + DETECTOR_PATH=os.environ["DETECTOR_PATH"], + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + DD4HEP_HASH=get_spack_package_hash("dd4hep"), + NPSIM_HASH=get_spack_package_hash("npsim"), + cache: True shell: """ # Running simulation npsim \ - --compactFile $DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml \ + --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \ --numberOfEvents {params.N_EVENTS} \ --physicsList {params.PHYSICS_LIST} \ --inputFiles {input.GEN_FILE} \ @@ -41,14 +48,18 @@ npsim \ rule femc_electron_recon: input: - SIM_FILE="sim_output/femc_electron/{DETECTOR_CONFIG}_sim_e-_{P}GeV.edm4hep.root" + SIM_FILE="sim_output/femc_electron/{DETECTOR_CONFIG}_sim_e-_{P}GeV.edm4hep.root", output: - REC_FILE="sim_output/femc_electron/{DETECTOR_CONFIG}_rec_e-_{P}GeV.edm4eic.root" + REC_FILE="sim_output/femc_electron/{DETECTOR_CONFIG}_rec_e-_{P}GeV.edm4eic.root", params: N_EVENTS=get_n_events, + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + EICRECON_HASH=get_spack_package_hash("eicrecon"), + cache: True shell: """ -eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Pdd4hep:xml_files=$DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters,EcalEndcapPInsertRecHits,EcalEndcapPClusters -Pjana:nevents={params.N_EVENTS} +env DETECTOR_CONFIG={params.DETECTOR_CONFIG} \ + eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters,EcalEndcapPInsertRecHits,EcalEndcapPClusters -Pjana:nevents={params.N_EVENTS} """ rule femc_electron_analysis: diff --git a/benchmarks/femc_photon/Snakefile b/benchmarks/femc_photon/Snakefile index d92a3cd1..d85b8132 100644 --- a/benchmarks/femc_photon/Snakefile +++ b/benchmarks/femc_photon/Snakefile @@ -8,12 +8,12 @@ def get_n_events(wildcards): rule femc_photon_generate: input: script="benchmarks/femc_photon/analysis/gen_particles.cxx", + output: + GEN_FILE="sim_output/femc_photon/photon_{P}GeV.hepmc", params: N_EVENTS=get_n_events, th_max=28, - th_min=2.0 - output: - GEN_FILE="sim_output/femc_photon/photon_{P}GeV.hepmc" + th_min=2.0, shell: """ mkdir -p sim_output/femc_photon @@ -22,17 +22,24 @@ root -l -b -q '{input.script}({params.N_EVENTS},"{output.GEN_FILE}", "gamma", {p rule femc_photon_simulate: input: - GEN_FILE="sim_output/femc_photon/photon_{P}GeV.hepmc" + GEN_FILE="sim_output/femc_photon/photon_{P}GeV.hepmc", + warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root", + geometry_lib=find_epic_libraries(), + output: + SIM_FILE="sim_output/femc_photon/{DETECTOR_CONFIG}_sim_photon_{P}GeV.edm4hep.root", params: N_EVENTS=get_n_events, - PHYSICS_LIST="FTFP_BERT" - output: - SIM_FILE="sim_output/femc_photon/{DETECTOR_CONFIG}_sim_photon_{P}GeV.edm4hep.root" + PHYSICS_LIST="FTFP_BERT", + DETECTOR_PATH=os.environ["DETECTOR_PATH"], + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + DD4HEP_HASH=get_spack_package_hash("dd4hep"), + NPSIM_HASH=get_spack_package_hash("npsim"), + cache: True shell: """ # Running simulation npsim \ - --compactFile $DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml \ + --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \ --numberOfEvents {params.N_EVENTS} \ --physicsList {params.PHYSICS_LIST} \ --inputFiles {input.GEN_FILE} \ @@ -46,9 +53,13 @@ rule femc_photon_recon: REC_FILE="sim_output/femc_photon/{DETECTOR_CONFIG}_rec_photon_{P}GeV.edm4eic.root" params: N_EVENTS=get_n_events, + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + EICRECON_HASH=get_spack_package_hash("eicrecon"), + cache: True shell: """ -eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Pdd4hep:xml_files=$DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters,EcalEndcapPInsertRecHits,EcalEndcapPClusters -Pjana:nevents={params.N_EVENTS} +env DETECTOR_CONFIG={params.DETECTOR_CONFIG} \ + eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters,EcalEndcapPInsertRecHits,EcalEndcapPClusters -Pjana:nevents={params.N_EVENTS} """ rule femc_photon_analysis: diff --git a/benchmarks/femc_pi0/Snakefile b/benchmarks/femc_pi0/Snakefile index 9b8713ab..05902510 100644 --- a/benchmarks/femc_pi0/Snakefile +++ b/benchmarks/femc_pi0/Snakefile @@ -8,12 +8,12 @@ def get_n_events(wildcards): rule femc_pi0_generate: input: script="benchmarks/femc_pi0/analysis/gen_particles.cxx", + output: + GEN_FILE="sim_output/femc_pi0/pi0_{P}GeV.hepmc", params: N_EVENTS=get_n_events, th_max=28, - th_min=2.0 - output: - GEN_FILE="sim_output/femc_pi0/pi0_{P}GeV.hepmc" + th_min=2.0, shell: """ mkdir -p sim_output/femc_pi0 @@ -22,17 +22,24 @@ root -l -b -q '{input.script}({params.N_EVENTS},"{output.GEN_FILE}", "pi0", {par rule femc_pi0_simulate: input: - GEN_FILE="sim_output/femc_pi0/pi0_{P}GeV.hepmc" + GEN_FILE="sim_output/femc_pi0/pi0_{P}GeV.hepmc", + warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root", + geometry_lib=find_epic_libraries(), params: N_EVENTS=get_n_events, - PHYSICS_LIST="FTFP_BERT" + PHYSICS_LIST="FTFP_BERT", + DETECTOR_PATH=os.environ["DETECTOR_PATH"], + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + DD4HEP_HASH=get_spack_package_hash("dd4hep"), + NPSIM_HASH=get_spack_package_hash("npsim"), + cache: True output: SIM_FILE="sim_output/femc_pi0/{DETECTOR_CONFIG}_sim_pi0_{P}GeV.edm4hep.root" shell: """ # Running simulation npsim \ - --compactFile $DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml \ + --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \ --numberOfEvents {params.N_EVENTS} \ --physicsList {params.PHYSICS_LIST} \ --inputFiles {input.GEN_FILE} \ @@ -46,9 +53,13 @@ rule femc_pi0_recon: REC_FILE="sim_output/femc_pi0/{DETECTOR_CONFIG}_rec_pi0_{P}GeV.edm4eic.root" params: N_EVENTS=get_n_events, + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + EICRECON_HASH=get_spack_package_hash("eicrecon"), + cache: True shell: """ -eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Pdd4hep:xml_files=$DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters,EcalEndcapPInsertRecHits,EcalEndcapPClusters -Pjana:nevents={params.N_EVENTS} +env DETECTOR_CONFIG={params.DETECTOR_CONFIG} \ + eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters,EcalEndcapPInsertRecHits,EcalEndcapPClusters -Pjana:nevents={params.N_EVENTS} """ rule femc_pi0_analysis: diff --git a/benchmarks/insert_muon/Snakefile b/benchmarks/insert_muon/Snakefile index ca647c59..fe9ce0ae 100644 --- a/benchmarks/insert_muon/Snakefile +++ b/benchmarks/insert_muon/Snakefile @@ -1,12 +1,12 @@ rule insert_muon_generate: input: script="benchmarks/insert_muon/analysis/gen_particles.cxx", + output: + GEN_FILE="sim_output/insert_muon/mu-_{P}GeV.hepmc", params: NEVENTS_GEN=5000, th_max=7.0, - th_min=1.7 - output: - GEN_FILE="sim_output/insert_muon/mu-_{P}GeV.hepmc" + th_min=1.7, shell: """ root -l -b -q '{input.script}({params.NEVENTS_GEN},"{output.GEN_FILE}", "mu-", {params.th_min}, {params.th_max}, 0., 360., {wildcards.P})' @@ -16,16 +16,22 @@ rule insert_muon_simulate: input: GEN_FILE="sim_output/insert_muon/mu-_{P}GeV.hepmc", warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root", - params: - PHYSICS_LIST="FTFP_BERT" + geometry_lib=find_epic_libraries(), output: - SIM_FILE="sim_output/insert_muon/{DETECTOR_CONFIG}_sim_mu-_{P}GeV_{INDEX}.edm4hep.root" + SIM_FILE="sim_output/insert_muon/{DETECTOR_CONFIG}_sim_mu-_{P}GeV_{INDEX}.edm4hep.root", + params: + PHYSICS_LIST="FTFP_BERT", + DETECTOR_PATH=os.environ["DETECTOR_PATH"], + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + DD4HEP_HASH=get_spack_package_hash("dd4hep"), + NPSIM_HASH=get_spack_package_hash("npsim"), + cache: True shell: """ NEVENTS_SIM=1000 # Running simulation npsim \ - --compactFile $DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml \ + --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \ --skipNEvents $(( $NEVENTS_SIM * {wildcards.INDEX} )) \ --numberOfEvents $NEVENTS_SIM \ --physicsList {params.PHYSICS_LIST} \ @@ -35,13 +41,18 @@ npsim \ rule insert_muon_recon: input: - SIM_FILE="sim_output/insert_muon/{DETECTOR_CONFIG}_sim_mu-_{P}GeV_{INDEX}.edm4hep.root" + SIM_FILE="sim_output/insert_muon/{DETECTOR_CONFIG}_sim_mu-_{P}GeV_{INDEX}.edm4hep.root", output: - REC_FILE="sim_output/insert_muon/{DETECTOR_CONFIG}_rec_mu-_{P}GeV_{INDEX}.edm4hep.root" + REC_FILE="sim_output/insert_muon/{DETECTOR_CONFIG}_rec_mu-_{P}GeV_{INDEX}.edm4hep.root", + params: + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + EICRECON_HASH=get_spack_package_hash("eicrecon"), + cache: True shell: """ NEVENTS_REC=1000 -eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Pdd4hep:xml_files=$DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters -Pjana:nevents=$NEVENTS_REC +env DETECTOR_CONFIG={params.DETECTOR_CONFIG} \ + eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters -Pjana:nevents=$NEVENTS_REC """ rule insert_muon_analysis: diff --git a/benchmarks/insert_neutron/Snakefile b/benchmarks/insert_neutron/Snakefile index 48bf47ed..98cc5a28 100644 --- a/benchmarks/insert_neutron/Snakefile +++ b/benchmarks/insert_neutron/Snakefile @@ -1,12 +1,12 @@ rule insert_neutron_generate: input: script="benchmarks/insert_neutron/analysis/gen_particles.cxx", + output: + GEN_FILE="sim_output/insert_neutron/neutron_{P}GeV.hepmc", params: NEVENTS_GEN=1000, th_max=5.7, - th_min=2.0 - output: - GEN_FILE="sim_output/insert_neutron/neutron_{P}GeV.hepmc" + th_min=2.0, shell: """ mkdir -p sim_output/insert_neutron @@ -17,16 +17,22 @@ rule insert_neutron_simulate: input: GEN_FILE="sim_output/insert_neutron/neutron_{P}GeV.hepmc", warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root", - params: - PHYSICS_LIST="FTFP_BERT" + geometry_lib=find_epic_libraries(), output: - SIM_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_sim_neutron_{P}GeV_{INDEX}.edm4hep.root" + SIM_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_sim_neutron_{P}GeV_{INDEX}.edm4hep.root", + params: + PHYSICS_LIST="FTFP_BERT", + DETECTOR_PATH=os.environ["DETECTOR_PATH"], + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + DD4HEP_HASH=get_spack_package_hash("dd4hep"), + NPSIM_HASH=get_spack_package_hash("npsim"), + cache: True shell: """ NEVENTS_SIM=200 # Running simulation npsim \ - --compactFile $DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml \ + --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \ --skipNEvents $(( $NEVENTS_SIM * {wildcards.INDEX} )) \ --numberOfEvents $NEVENTS_SIM \ --physicsList {params.PHYSICS_LIST} \ @@ -36,13 +42,18 @@ npsim \ rule insert_neutron_recon: input: - SIM_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_sim_neutron_{P}GeV_{INDEX}.edm4hep.root" + SIM_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_sim_neutron_{P}GeV_{INDEX}.edm4hep.root", output: - REC_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_rec_neutron_{P}GeV_{INDEX}.edm4eic.root" + REC_FILE="sim_output/insert_neutron/{DETECTOR_CONFIG}_rec_neutron_{P}GeV_{INDEX}.edm4eic.root", + params: + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + EICRECON_HASH=get_spack_package_hash("eicrecon"), + cache: True shell: """ NEVENTS_REC=200 -eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Pdd4hep:xml_files=$DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters -Pjana:nevents=$NEVENTS_REC +env DETECTOR_CONFIG={params.DETECTOR_CONFIG} \ + eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters -Pjana:nevents=$NEVENTS_REC """ rule insert_neutron_analysis: diff --git a/benchmarks/insert_tau/Snakefile b/benchmarks/insert_tau/Snakefile index 57e4390e..ffc9c491 100644 --- a/benchmarks/insert_tau/Snakefile +++ b/benchmarks/insert_tau/Snakefile @@ -7,12 +7,12 @@ def get_n_events(wildcards): rule insert_tau_generate: input: script="benchmarks/insert_tau/analysis/gen_particles.cxx", + output: + GEN_FILE="sim_output/insert_tau/tau-_{P}GeV.hepmc", params: N_EVENTS=get_n_events, th_max=7.0, th_min=1.7, - output: - GEN_FILE="sim_output/insert_tau/tau-_{P}GeV.hepmc", shell: """ root -l -b -q '{input.script}({params.N_EVENTS},"{output.GEN_FILE}", "tau-", {params.th_min}, {params.th_max}, 0., 360., {wildcards.P})' @@ -22,16 +22,22 @@ rule insert_tau_simulate: input: GEN_FILE="sim_output/insert_tau/tau-_{P}GeV.hepmc", warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root", + geometry_lib=find_epic_libraries(), + output: + SIM_FILE="sim_output/insert_tau/{DETECTOR_CONFIG}_sim_tau-_{P}GeV_{INDEX}.edm4hep.root", params: N_EVENTS=get_n_events, PHYSICS_LIST="FTFP_BERT", - output: - SIM_FILE="sim_output/insert_tau/{DETECTOR_CONFIG}_sim_tau-_{P}GeV_{INDEX}.edm4hep.root" + DETECTOR_PATH=os.environ["DETECTOR_PATH"], + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + DD4HEP_HASH=get_spack_package_hash("dd4hep"), + NPSIM_HASH=get_spack_package_hash("npsim"), + cache: True shell: """ # Running simulation npsim \ - --compactFile $DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml \ + --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \ --numberOfEvents {params.N_EVENTS} \ --skipNEvents $(( {params.N_EVENTS} * {wildcards.INDEX} )) \ --physicsList {params.PHYSICS_LIST} \ @@ -42,13 +48,17 @@ npsim \ rule insert_tau_recon: input: SIM_FILE="sim_output/insert_tau/{DETECTOR_CONFIG}_sim_tau-_{P}GeV_{INDEX}.edm4hep.root", - params: - N_EVENTS=get_n_events, output: REC_FILE="sim_output/insert_tau/{DETECTOR_CONFIG}_rec_tau-_{P}GeV_{INDEX}.edm4eic.root", + params: + N_EVENTS=get_n_events, + DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG, + EICRECON_HASH=get_spack_package_hash("eicrecon"), + cache: True shell: """ -eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Pdd4hep:xml_files=$DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters,EcalEndcapPClusters,LFHCALClusters -Pjana:nevents={params.N_EVENTS} +env DETECTOR_CONFIG={params.DETECTOR_CONFIG} \ + eicrecon {input.SIM_FILE} -Ppodio:output_file={output.REC_FILE} -Ppodio:output_collections=MCParticles,HcalEndcapPInsertRecHits,HcalEndcapPInsertClusters,HcalEndcapPInsertSubcellHits,EcalEndcapPInsertRecHits,EcalEndcapPInsertClusters,EcalEndcapPClusters,LFHCALClusters -Pjana:nevents={params.N_EVENTS} """ rule insert_tau_analysis: