Back to home page

EIC code displayed by LXR

 
 

    


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]}"