Warning, /detector_benchmarks/benchmarks/far_forward_dvcs/Snakefile is written in an unsupported language. File is not indexed.
0001 rule far_forward_dvcs_compile:
0002 input:
0003 "benchmarks/far_forward_dvcs/analysis/analyze_DVCS_eicrecon_cxx.so",
0004
0005 # Process the generated HepMC files through the simulation
0006 rule far_forward_dvcs_sim:
0007 input:
0008 warmup="warmup.edm4hep.root",
0009 geometry_lib=find_epic_libraries(),
0010 output:
0011 "sim_output/far_forward_dvcs/{DETECTOR_CONFIG}/DVCS.{INDEX}.ab.hiAcc.{EBEAM}x{PBEAM}.edm4hep.root",
0012 params:
0013 N_EVENTS=1000,
0014 EBEAM=lambda wildcards: wildcards.EBEAM,
0015 INDEX=lambda wildcards: wildcards.INDEX,
0016 PBEAM=lambda wildcards: wildcards.PBEAM,
0017 SEED=lambda wildcards: "1" + wildcards.INDEX,
0018 DETECTOR_PATH=os.environ["DETECTOR_PATH"],
0019 DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0020 DD4HEP_HASH=get_spack_package_hash("dd4hep"),
0021 NPSIM_HASH=get_spack_package_hash("npsim"),
0022 cache: True
0023 singularity: EIC_SINGULARITY_CONTAINER,
0024 shell:
0025 """
0026 npsim \
0027 --runType batch \
0028 --part.minimalKineticEnergy 1000*GeV \
0029 --random.seed {params.SEED} \
0030 --filter.tracker edep0 \
0031 -v WARNING \
0032 --numberOfEvents {params.N_EVENTS} \
0033 --compactFile {params.DETECTOR_PATH}/{params.DETECTOR_CONFIG}.xml \
0034 --inputFiles root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/EXCLUSIVE/DVCS_ABCONV/{params.EBEAM}x{params.PBEAM}/DVCS.{params.INDEX}.ab.hiAcc.{params.EBEAM}x{params.PBEAM}.hepmc3.tree.root \
0035 --outputFile {output}
0036 """
0037
0038 rule foo:
0039 input:
0040 'sim_output/far_forward_dvcs/epic_craterlake_10x100/DVCS.1.ab.hiAcc.10x100.edm4hep.root'
0041
0042 # Process the files produced in the previous step through EICRecon
0043 rule far_forward_dvcs_reco:
0044 input:
0045 sim="sim_output/far_forward_dvcs/{DETECTOR_CONFIG}/DVCS.{INDEX}.ab.hiAcc.{EBEAM}x{PBEAM}.edm4hep.root",
0046 warmup="warmup.edm4hep.root",
0047 output:
0048 "sim_output/far_forward_dvcs/{DETECTOR_CONFIG}/DVCS.{INDEX}.ab.hiAcc.{EBEAM}x{PBEAM}.eicrecon.edm4eic.root",
0049 params:
0050 DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0051 EBEAM=lambda wildcards: wildcards.EBEAM,
0052 PBEAM=lambda wildcards: wildcards.PBEAM,
0053 INDEX=lambda wildcards: wildcards.INDEX,
0054 EICRECON_HASH=get_spack_package_hash("eicrecon"),
0055 cache: True
0056 singularity: EIC_SINGULARITY_CONTAINER,
0057 shell:
0058 """
0059 set -m # monitor mode to prevent lingering processes
0060 exec env DETECTOR_CONFIG={wildcards.DETECTOR_CONFIG} \
0061 eicrecon {input.sim} -Ppodio:output_file={output} \
0062 -Ppodio:output_collections=B0ECalClusters,B0TrackerHits,B0TrackerRecHits,EcalEndcapPTruthClusters,ForwardOffMRecParticles,ForwardRomanPotRecParticles,MCParticles,MCParticlesHeadOnFrameNoBeamFX,ReconstructedChargedParticles,ReconstructedTruthSeededChargedParticles,ZDCEcalClusters
0063 """
0064
0065 #Process the merged file through the plotting script
0066 rule far_forward_dvcs_plots:
0067 input:
0068 workflow.source_path("analysis/render.hpp"),
0069 workflow.source_path("analysis/detectorResolution.hpp"),
0070 script=workflow.source_path("analysis/analyze_DVCS_eicrecon.cxx"),
0071 script_compiled="benchmarks/far_forward_dvcs/analysis/analyze_DVCS_eicrecon_cxx.so",
0072 reco="sim_output/far_forward_dvcs/{DETECTOR_CONFIG}/DVCS.1.ab.hiAcc.{EBEAM}x{PBEAM}.eicrecon.edm4eic.root",
0073 output:
0074 dir=directory("results/far_forward_dvcs/{DETECTOR_CONFIG}/{EBEAM}x{PBEAM}"),
0075 list=temp("results/far_forward_dvcs/{DETECTOR_CONFIG}/{EBEAM}x{PBEAM}.lst"),
0076 wildcard_constraints:
0077 EBEAM=r"\d+",
0078 PBEAM=r"\d+",
0079 singularity: EIC_SINGULARITY_CONTAINER,
0080 shell:
0081 """
0082 mkdir -p "{output.dir}"
0083 echo "{input.reco}" > "{output.list}"
0084 root -l -b -q '{input.script}+("{output.list}", "{output.dir}")'
0085 """
0086
0087 #Examples of invocation
0088 rule far_forward_dvcs_run_locally:
0089 input:
0090 "results/far_forward_dvcs/epic_craterlake_10x100/10x100/",
0091 "results/far_forward_dvcs/epic_craterlake_5x41/5x41/",
0092 message:
0093 "See output in {input[0]} {input[1]}"