Back to home page

EIC code displayed by LXR

 
 

    


Warning, /detector_benchmarks/benchmarks/backgrounds/Snakefile is written in an unsupported language. File is not indexed.

0001 import os
0002 import shutil
0003 
0004 
0005 rule backgrounds_sim:
0006     input:
0007         warmup="warmup.edm4hep.root",
0008         geometry_lib=find_epic_libraries(),
0009     output:
0010         "sim_output/{DETECTOR_CONFIG}/backgrounds/{PATH}.edm4hep.root",
0011     log:
0012         "sim_output/{DETECTOR_CONFIG}/backgrounds/{PATH}.edm4hep.root.log",
0013     params:
0014         N_EVENTS=100,
0015         DETECTOR_CONFIG=lambda wildcards: wildcards.DETECTOR_CONFIG,
0016         hepmc=lambda wildcards: get_remote_path(f"{wildcards.PATH}.hepmc3.tree.root"),
0017         DD4HEP_HASH=get_spack_package_hash("dd4hep"),
0018         NPSIM_HASH=get_spack_package_hash("npsim"),
0019     cache: True
0020     singularity: EIC_SINGULARITY_CONTAINER,
0021     shell:
0022         """
0023 set -m # monitor mode to prevent lingering processes
0024 exec npsim \
0025   --runType batch \
0026   --part.minimalKineticEnergy 100*GeV  \
0027   --filter.tracker edep0 \
0028   -v WARNING \
0029   --numberOfEvents {params.N_EVENTS} \
0030   --compactFile $DETECTOR_PATH/{wildcards.DETECTOR_CONFIG}.xml \
0031   --inputFiles {params.hepmc} \
0032   --outputFile {output}
0033 """
0034 
0035 
0036 DETECTOR_CONFIG=config["DETECTOR_CONFIG"]
0037 
0038 rule backgrounds_ecal_backwards:
0039     input:
0040         matplotlibrc=".matplotlibrc",
0041         script="benchmarks/backgrounds/ecal_backwards.org2py.py",
0042         electron_beam_gas_sim="sim_output/" + DETECTOR_CONFIG + "/backgrounds/EPIC/EVGEN/BACKGROUNDS/BEAMGAS/electron/GETaLM1.0.0-1.0/10GeV/GETaLM1.0.0-1.0_ElectronBeamGas_10GeV_foam_emin10keV_run001.edm4hep.root",
0043         physics_signal_sim="sim_output/" + DETECTOR_CONFIG + "/backgrounds/EPIC/EVGEN/DIS/NC/10x100/minQ2=1/pythia8NCDIS_10x100_minQ2=1_beamEffects_xAngle=-0.025_hiDiv_1.edm4hep.root",
0044         proton_beam_gas_sim="sim_output/" + DETECTOR_CONFIG + "/backgrounds/EPIC/EVGEN/BACKGROUNDS/BEAMGAS/proton/pythia8.306-1.0/100GeV/pythia8.306-1.0_ProtonBeamGas_100GeV_run001.edm4hep.root",
0045     output:
0046         directory("results/backgrounds/backwards_ecal")
0047     log:
0048         scheduler=".logs/results/backgrounds/backwards_ecal/scheduler.log",
0049         worker=".logs/results/backgrounds/backwards_ecal/worker.log",
0050     threads: workflow.cores
0051     singularity: EIC_SINGULARITY_CONTAINER,
0052     shell:
0053         """
0054 set -m # monitor mode to prevent lingering processes
0055 cleanup() {{
0056   echo Cleaning up
0057   kill $WORKER_PID $SCHEDULER_PID
0058 }}
0059 trap cleanup EXIT
0060 
0061 PORT=$RANDOM
0062 dask scheduler --port $PORT 2>{log.scheduler} &
0063 export DASK_SCHEDULER=localhost:$PORT
0064 SCHEDULER_PID=$!
0065 dask worker tcp://$DASK_SCHEDULER --nworkers {threads} --nthreads 1 2>{log.worker} &
0066 WORKER_PID=$!
0067 env \
0068 MATPLOTLIBRC={input.matplotlibrc} \
0069 ELECTRON_BEAM_GAS_GEN=root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/BACKGROUNDS/BEAMGAS/electron/GETaLM1.0.0-1.0/10GeV/GETaLM1.0.0-1.0_ElectronBeamGas_10GeV_foam_emin10keV_run001.hepmc3.tree.root \
0070 ELECTRON_BEAM_GAS_SIM=$(realpath {input.electron_beam_gas_sim}) \
0071 PHYSICS_PROCESS_SIM=$(realpath {input.physics_signal_sim}) \
0072 PROTON_BEAM_GAS_GEN=root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/BACKGROUNDS/BEAMGAS/proton/pythia8.306-1.0/100GeV/pythia8.306-1.0_ProtonBeamGas_100GeV_run001.hepmc3.tree.root \
0073 PROTON_BEAM_GAS_SIM=$(realpath {input.proton_beam_gas_sim}) \
0074 OUTPUT_DIR={output} \
0075 python {input.script}
0076 """