diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3c27c093..f54490e7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -107,6 +107,7 @@ common:setup: - runner_system_failure include: +<<<<<<< HEAD - local: 'benchmarks/diffractive_vm/config.yml' - local: 'benchmarks/demp/config.yml' - local: 'benchmarks/dis/config.yml' @@ -116,6 +117,15 @@ include: - local: 'benchmarks/tcs/config.yml' - local: 'benchmarks/u_omega/config.yml' - local: 'benchmarks/backgrounds/config.yml' +======= + - local: 'benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/config.yml' + - local: 'benchmarks/Exclusive-Diffraction-Tagging/demp/config.yml' + #- local: 'benchmarks/Exclusive-Diffraction-Tagging/dvmp/config.yml' + - local: 'benchmarks/Exclusive-Diffraction-Tagging/dvcs/config.yml' + - local: 'benchmarks/Exclusive-Diffraction-Tagging/tcs/config.yml' + - local: 'benchmarks/Exclusive-Diffraction-Tagging/u_omega/config.yml' + - local: 'benchmarks/Inclusive/dis/config.yml' +>>>>>>> master summary: stage: finish @@ -126,7 +136,6 @@ summary: - "dvcs:results" - "tcs:results" - "u_omega:results" - - "backgrounds:results" script: - collect_benchmarks.py - find results -print | sort | tee summary.txt diff --git a/README.md b/README.md index 9403cade..d7489208 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Physics Benchmarks for the EIC ## Adding new benchmarks -See the [`benchmarks/diffractive_vm`](https://github.com/eic/physics_benchmarks/tree/master/benchmarks/diffractive_vm) +See the [`benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm`](https://github.com/eic/physics_benchmarks/tree/master/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm) directory for a basic example. Note currently the reconstruction is far from perfect. ### Pass/Fail tests diff --git a/Snakefile b/Snakefile index 6e1e4758..e43cae04 100644 --- a/Snakefile +++ b/Snakefile @@ -41,7 +41,14 @@ ddsim \ --enableGun """ +<<<<<<< HEAD include: "benchmarks/diffractive_vm/Snakefile" include: "benchmarks/dis/Snakefile" include: "benchmarks/demp/Snakefile" include: "benchmarks/semi_coherent/Snakefile" +======= +include: "benchmarks/Exclusive-Diffraction-Tagging/demp/Snakefile" +include: "benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/Snakefile" +include: "benchmarks/Jets-HF/jets/Snakefile" +include: "benchmarks/Inclusive/dis/Snakefile" +>>>>>>> master diff --git a/benchmarks/dis/.gitignore b/benchmarks/BSM-Precision-EW/.gitkeep similarity index 100% rename from benchmarks/dis/.gitignore rename to benchmarks/BSM-Precision-EW/.gitkeep diff --git a/benchmarks/demp/Snakefile b/benchmarks/Exclusive-Diffraction-Tagging/demp/Snakefile similarity index 87% rename from benchmarks/demp/Snakefile rename to benchmarks/Exclusive-Diffraction-Tagging/demp/Snakefile index a397c320..780e00ee 100644 --- a/benchmarks/demp/Snakefile +++ b/benchmarks/Exclusive-Diffraction-Tagging/demp/Snakefile @@ -3,8 +3,8 @@ import os #Compile the analysis and plotting scripts rule demp_compile: input: - ROOT_BUILD_DIR_PREFIX + "benchmarks/demp/analysis/demp_analysis_cxx.so", - ROOT_BUILD_DIR_PREFIX + "benchmarks/demp/analysis/demp_plots_cxx.so", + ROOT_BUILD_DIR_PREFIX + "benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_analysis_cxx.so", + ROOT_BUILD_DIR_PREFIX + "benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_plots_cxx.so", #Process the simulated files based on the user-defined campaign rule demp_campaign_reco_get: @@ -60,8 +60,8 @@ DETECTOR_CONFIG={wildcards.DETECTOR_CONFIG} eicrecon {input} -Ppodio:output_file #Process the files (either from the campaign or eicrecon) through the analysis script rule demp_analysis: input: - script="benchmarks/demp/analysis/demp_analysis.cxx", - script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/demp/analysis/demp_analysis_cxx.so", + script="benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_analysis.cxx", + script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_analysis_cxx.so", data="reco/{DETECTOR_CONFIG}/{PREFIX}demp_{EBEAM}on{PBEAM}_{INDEX}.edm4eic.root", output: config="results/{DETECTOR_CONFIG}/demp/{PREFIX}demp_{EBEAM}on{PBEAM}_{INDEX}/config.json", @@ -115,8 +115,8 @@ hadd {output.hists} {input} #Process the merged file through the plotting script rule demp_plots: input: - script="benchmarks/demp/analysis/demp_plots.cxx", - script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/demp/analysis/demp_plots_cxx.so", + script="benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_plots.cxx", + script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_plots_cxx.so", config="results/{DETECTOR_CONFIG}/demp/{PREFIX}demp_{EBEAM}on{PBEAM}_combined_{NUM_FILES}/config.json", output: "results/{DETECTOR_CONFIG}/demp/{PREFIX}demp_{EBEAM}on{PBEAM}_combined_{NUM_FILES}/plots.pdf" diff --git a/benchmarks/demp/analysis/demp_analysis.cxx b/benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_analysis.cxx similarity index 100% rename from benchmarks/demp/analysis/demp_analysis.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_analysis.cxx diff --git a/benchmarks/demp/analysis/demp_plots.cxx b/benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_plots.cxx similarity index 100% rename from benchmarks/demp/analysis/demp_plots.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/demp/analysis/demp_plots.cxx diff --git a/benchmarks/demp/benchmark.json b/benchmarks/Exclusive-Diffraction-Tagging/demp/benchmark.json similarity index 100% rename from benchmarks/demp/benchmark.json rename to benchmarks/Exclusive-Diffraction-Tagging/demp/benchmark.json diff --git a/benchmarks/demp/config.yml b/benchmarks/Exclusive-Diffraction-Tagging/demp/config.yml similarity index 86% rename from benchmarks/demp/config.yml rename to benchmarks/Exclusive-Diffraction-Tagging/demp/config.yml index b07fc789..521aa2c8 100644 --- a/benchmarks/demp/config.yml +++ b/benchmarks/Exclusive-Diffraction-Tagging/demp/config.yml @@ -19,4 +19,4 @@ demp:results: stage: collect needs: ["demp:simulate"] script: - - collect_tests.py demp + - collect_tests.py Exclusive-Diffraction-Tagging/demp diff --git a/benchmarks/diffractive_vm/Snakefile b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/Snakefile similarity index 87% rename from benchmarks/diffractive_vm/Snakefile rename to benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/Snakefile index b7e3c227..e95266c4 100644 --- a/benchmarks/diffractive_vm/Snakefile +++ b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/Snakefile @@ -3,8 +3,8 @@ import os rule diffractive_vm_compile: input: - ROOT_BUILD_DIR_PREFIX + "benchmarks/diffractive_vm/analysis/diffractive_vm_cxx.so", - ROOT_BUILD_DIR_PREFIX + "benchmarks/diffractive_vm/analysis/plot_cxx.so", + ROOT_BUILD_DIR_PREFIX + "benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/diffractive_vm_cxx.so", + ROOT_BUILD_DIR_PREFIX + "benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/plot_cxx.so", rule diffractive_vm_campaign_reco_get: @@ -53,8 +53,8 @@ DETECTOR_CONFIG={wildcards.DETECTOR_CONFIG} eicrecon {input} -Ppodio:output_file rule diffractive_vm_analysis: input: - script="benchmarks/diffractive_vm/analysis/diffractive_vm.cxx", - script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/diffractive_vm/analysis/diffractive_vm_cxx.so", + script="benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/diffractive_vm.cxx", + script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/diffractive_vm_cxx.so", data="reco/{DETECTOR_CONFIG}/{SIM}sartre_{PARTICLE}{SUFFIX}.edm4eic.root", params: EBEAM=18, @@ -121,8 +121,8 @@ ruleorder: diffractive_vm_combine_sartre > diffractive_vm_analysis rule diffractive_vm_plots: input: - script="benchmarks/diffractive_vm/analysis/plot.cxx", - script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/diffractive_vm/analysis/plot_cxx.so", + script="benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/plot.cxx", + script_compiled=ROOT_BUILD_DIR_PREFIX + "benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/plot_cxx.so", config="{RESULT_PREFIX}/config.json", output: "{RESULT_PREFIX}/plots_benchmark-phi-dsigmadt.pdf", diff --git a/benchmarks/diffractive_vm/analysis/diffractive_vm.cxx b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/diffractive_vm.cxx similarity index 100% rename from benchmarks/diffractive_vm/analysis/diffractive_vm.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/diffractive_vm.cxx diff --git a/benchmarks/diffractive_vm/analysis/plot.cxx b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/plot.cxx similarity index 100% rename from benchmarks/diffractive_vm/analysis/plot.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/analysis/plot.cxx diff --git a/benchmarks/diffractive_vm/benchmark.json b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/benchmark.json similarity index 100% rename from benchmarks/diffractive_vm/benchmark.json rename to benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/benchmark.json diff --git a/benchmarks/diffractive_vm/config.yml b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/config.yml similarity index 87% rename from benchmarks/diffractive_vm/config.yml rename to benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/config.yml index a614dc89..1486ece0 100644 --- a/benchmarks/diffractive_vm/config.yml +++ b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/config.yml @@ -23,4 +23,4 @@ diffractive_vm:results: stage: collect needs: ["diffractive_vm:simulate"] script: - - collect_tests.py diffractive_vm + - collect_tests.py Exclusive-Diffraction-Tagging/diffractive_vm diff --git a/benchmarks/diffractive_vm/diffractive_vm.sh b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/diffractive_vm.sh similarity index 100% rename from benchmarks/diffractive_vm/diffractive_vm.sh rename to benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/diffractive_vm.sh diff --git a/benchmarks/diffractive_vm/env.sh b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/env.sh similarity index 100% rename from benchmarks/diffractive_vm/env.sh rename to benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/env.sh diff --git a/benchmarks/diffractive_vm/get.sh b/benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/get.sh similarity index 100% rename from benchmarks/diffractive_vm/get.sh rename to benchmarks/Exclusive-Diffraction-Tagging/diffractive_vm/get.sh diff --git a/benchmarks/dvcs/analysis/dvcs_ps_gen.cxx b/benchmarks/Exclusive-Diffraction-Tagging/dvcs/analysis/dvcs_ps_gen.cxx similarity index 100% rename from benchmarks/dvcs/analysis/dvcs_ps_gen.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/dvcs/analysis/dvcs_ps_gen.cxx diff --git a/benchmarks/dvcs/analysis/dvcs_tests.cxx b/benchmarks/Exclusive-Diffraction-Tagging/dvcs/analysis/dvcs_tests.cxx similarity index 100% rename from benchmarks/dvcs/analysis/dvcs_tests.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/dvcs/analysis/dvcs_tests.cxx diff --git a/benchmarks/dvcs/config.yml b/benchmarks/Exclusive-Diffraction-Tagging/dvcs/config.yml similarity index 50% rename from benchmarks/dvcs/config.yml rename to benchmarks/Exclusive-Diffraction-Tagging/dvcs/config.yml index 8040db28..de2404e5 100644 --- a/benchmarks/dvcs/config.yml +++ b/benchmarks/Exclusive-Diffraction-Tagging/dvcs/config.yml @@ -2,7 +2,7 @@ dvcs:compile: stage: compile extends: .compile_benchmark script: - - compile_analyses.py dvcs + - compile_analyses.py Exclusive-Diffraction-Tagging/dvcs dvcs:simulate: stage: simulate @@ -11,8 +11,8 @@ dvcs:simulate: - phy needs: ["dvcs:compile"] script: - #- bash benchmarks/dvcs/dvcs.sh --all - - bash benchmarks/dvcs/dvcs.sh --data-init --sim --rec + #- bash benchmarks/Exclusive-Diffraction-Tagging/dvcs/dvcs.sh --all + - bash benchmarks/Exclusive-Diffraction-Tagging/dvcs/dvcs.sh --data-init --sim --rec dvcs:results: stage: collect @@ -20,4 +20,4 @@ dvcs:results: script: - ls -lrth #pip install junitparser - #- python dvcs/scripts/merge_results.py + #- python dvcs/Exclusive-Diffraction-Tagging/scripts/merge_results.py diff --git a/benchmarks/dvcs/dvcs.sh b/benchmarks/Exclusive-Diffraction-Tagging/dvcs/dvcs.sh similarity index 97% rename from benchmarks/dvcs/dvcs.sh rename to benchmarks/Exclusive-Diffraction-Tagging/dvcs/dvcs.sh index a21b114d..0bd5a419 100644 --- a/benchmarks/dvcs/dvcs.sh +++ b/benchmarks/Exclusive-Diffraction-Tagging/dvcs/dvcs.sh @@ -150,7 +150,7 @@ if [[ -n "${DO_ANALYSIS}" || -n "${DO_ALL}" ]] ; then mkdir -p results/dvcs # here you can add as many scripts as you want. - root -b -q "benchmarks/dvcs/analysis/dvcs_tests.cxx+(\"${JUGGLER_REC_FILE}\")" + root -b -q "benchmarks/Exclusive-Diffraction-Tagging/dvcs/analysis/dvcs_tests.cxx+(\"${JUGGLER_REC_FILE}\")" if [[ "$?" -ne "0" ]] ; then echo "ERROR running root script" exit 1 diff --git a/benchmarks/dvmp/analysis/dvmp.h b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/analysis/dvmp.h similarity index 100% rename from benchmarks/dvmp/analysis/dvmp.h rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/analysis/dvmp.h diff --git a/benchmarks/dvmp/analysis/vm_invar.cxx b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/analysis/vm_invar.cxx similarity index 100% rename from benchmarks/dvmp/analysis/vm_invar.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/analysis/vm_invar.cxx diff --git a/benchmarks/dvmp/analysis/vm_mass.cxx b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/analysis/vm_mass.cxx similarity index 100% rename from benchmarks/dvmp/analysis/vm_mass.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/analysis/vm_mass.cxx diff --git a/benchmarks/dvmp/benchmark.json b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/benchmark.json similarity index 100% rename from benchmarks/dvmp/benchmark.json rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/benchmark.json diff --git a/benchmarks/dvmp/config.yml b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/config.yml similarity index 78% rename from benchmarks/dvmp/config.yml rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/config.yml index 767e8a2c..474e84a7 100644 --- a/benchmarks/dvmp/config.yml +++ b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/config.yml @@ -2,7 +2,7 @@ dvmp:compile: stage: compile extends: .compile_benchmark script: - - compile_analyses.py dvmp + - compile_analyses.py Exclusive-Diffraction-Tagging/dvmp dvmp:generate: needs: ["dvmp:compile"] @@ -11,7 +11,7 @@ dvmp:generate: stage: generate timeout: 1 hours script: - - run_many.py ./benchmarks/dvmp/gen.sh + - run_many.py ./benchmarks/Exclusive-Diffraction-Tagging/dvmp/gen.sh -c jpsi_barrel -e 10x100 --decay muon --decay electron @@ -24,7 +24,7 @@ dvmp:simulate: timeout: 2 hour script: - ls -lrth - - run_many.py ./benchmarks/dvmp/dvmp.sh + - run_many.py ./benchmarks/Exclusive-Diffraction-Tagging/dvmp/dvmp.sh -c jpsi_barrel -e 10x100 --decay muon --decay electron diff --git a/benchmarks/dvmp/dvmp.sh b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/dvmp.sh similarity index 95% rename from benchmarks/dvmp/dvmp.sh rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/dvmp.sh index 8fba7f3d..dfa03b02 100755 --- a/benchmarks/dvmp/dvmp.sh +++ b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/dvmp.sh @@ -40,7 +40,7 @@ source parse_cmd.sh $@ ## - RESULTS_PATH: Path for benchmark output figures and files ## ## You can read dvmp/env.sh for more in-depth explanations of the variables. -source benchmarks/dvmp/env.sh +source benchmarks/Exclusive-Diffraction-Tagging/dvmp/env.sh ## Get a unique file names based on the configuration options GEN_FILE=${INPUT_PATH}/gen-${CONFIG}_${DECAY}_${JUGGLER_N_EVENTS}.hepmc @@ -119,12 +119,12 @@ EOF #cat ${CONFIG} ## run the analysis script with this configuration -root -b -q "benchmarks/dvmp/analysis/vm_mass.cxx+(\"${CONFIG}\")" +root -b -q "benchmarks/Exclusive-Diffraction-Tagging/dvmp/analysis/vm_mass.cxx+(\"${CONFIG}\")" if [ "$?" -ne "0" ] ; then echo "ERROR running vm_mass script" exit 1 fi -root -b -q "benchmarks/dvmp/analysis/vm_invar.cxx+(\"${CONFIG}\")" +root -b -q "benchmarks/Exclusive-Diffraction-Tagging/dvmp/analysis/vm_invar.cxx+(\"${CONFIG}\")" if [ "$?" -ne "0" ] ; then echo "ERROR running vm_invar script" exit 1 diff --git a/benchmarks/dvmp/env.sh b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/env.sh similarity index 100% rename from benchmarks/dvmp/env.sh rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/env.sh diff --git a/benchmarks/dvmp/gen.sh b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/gen.sh similarity index 98% rename from benchmarks/dvmp/gen.sh rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/gen.sh index 22817845..53d6b117 100755 --- a/benchmarks/dvmp/gen.sh +++ b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/gen.sh @@ -44,7 +44,7 @@ source parse_cmd.sh $@ ## - TMP_PATH: Path for temporary data (not exported as artifacts) ## ## You can read dvmp/env.sh for more in-depth explanations of the variables. -source benchmarks/dvmp/env.sh +source benchmarks/Exclusive-Diffraction-Tagging/dvmp/env.sh ## Get a unique file name prefix based on the configuration options GEN_TAG=gen-${CONFIG}_${DECAY}_${JUGGLER_N_EVENTS} ## Generic file prefix diff --git a/benchmarks/dvmp/generator/jpsi_barrel.json.in b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/generator/jpsi_barrel.json.in similarity index 100% rename from benchmarks/dvmp/generator/jpsi_barrel.json.in rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/generator/jpsi_barrel.json.in diff --git a/benchmarks/dvmp/generator/jpsi_central.json.in b/benchmarks/Exclusive-Diffraction-Tagging/dvmp/generator/jpsi_central.json.in similarity index 100% rename from benchmarks/dvmp/generator/jpsi_central.json.in rename to benchmarks/Exclusive-Diffraction-Tagging/dvmp/generator/jpsi_central.json.in diff --git a/benchmarks/tcs/analysis/tcs_tests.cxx b/benchmarks/Exclusive-Diffraction-Tagging/tcs/analysis/tcs_tests.cxx similarity index 100% rename from benchmarks/tcs/analysis/tcs_tests.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/tcs/analysis/tcs_tests.cxx diff --git a/benchmarks/tcs/config.yml b/benchmarks/Exclusive-Diffraction-Tagging/tcs/config.yml similarity index 59% rename from benchmarks/tcs/config.yml rename to benchmarks/Exclusive-Diffraction-Tagging/tcs/config.yml index 055a7bf9..742a7b55 100644 --- a/benchmarks/tcs/config.yml +++ b/benchmarks/Exclusive-Diffraction-Tagging/tcs/config.yml @@ -2,7 +2,7 @@ tcs:compile: stage: compile extends: .compile_benchmark script: - - compile_analyses.py tcs + - compile_analyses.py Exclusive-Diffraction-Tagging/tcs tcs:simulate: stage: simulate @@ -22,8 +22,8 @@ tcs:simulate: PBEAM: 275 TAG: s800 script: - #- bash benchmarks/tcs/tcs.sh --all --ebeam ${EBEAM} --pbeam ${PBEAM} --tag ${TAG} - - bash benchmarks/tcs/tcs.sh --data-init --sim --rec --ebeam ${EBEAM} --pbeam ${PBEAM} --tag ${TAG} + #- bash benchmarks/Exclusive-Diffraction-Tagging/tcs/tcs.sh --all --ebeam ${EBEAM} --pbeam ${PBEAM} --tag ${TAG} + - bash benchmarks/Exclusive-Diffraction-Tagging/tcs/tcs.sh --data-init --sim --rec --ebeam ${EBEAM} --pbeam ${PBEAM} --tag ${TAG} tcs:results: stage: collect diff --git a/benchmarks/tcs/tcs.sh b/benchmarks/Exclusive-Diffraction-Tagging/tcs/tcs.sh similarity index 97% rename from benchmarks/tcs/tcs.sh rename to benchmarks/Exclusive-Diffraction-Tagging/tcs/tcs.sh index 0c69e200..a46afa99 100644 --- a/benchmarks/tcs/tcs.sh +++ b/benchmarks/Exclusive-Diffraction-Tagging/tcs/tcs.sh @@ -170,7 +170,7 @@ if [[ -n "${DO_ANALYSIS}" || -n "${DO_ALL}" ]] ; then mkdir -p results/tcs # here you can add as many scripts as you want. - root -b -q "benchmarks/tcs/analysis/tcs_tests.cxx+(\"${JUGGLER_REC_FILE}\")" + root -b -q "benchmarks/Exclusive-Diffraction-Tagging/tcs/analysis/tcs_tests.cxx+(\"${JUGGLER_REC_FILE}\")" if [[ "$?" -ne "0" ]] ; then echo "ERROR running root script" exit 1 diff --git a/benchmarks/u_omega/analysis/demo.cxx b/benchmarks/Exclusive-Diffraction-Tagging/u_omega/analysis/demo.cxx similarity index 100% rename from benchmarks/u_omega/analysis/demo.cxx rename to benchmarks/Exclusive-Diffraction-Tagging/u_omega/analysis/demo.cxx diff --git a/benchmarks/u_omega/config.yml b/benchmarks/Exclusive-Diffraction-Tagging/u_omega/config.yml similarity index 54% rename from benchmarks/u_omega/config.yml rename to benchmarks/Exclusive-Diffraction-Tagging/u_omega/config.yml index 4bac8133..3958cede 100644 --- a/benchmarks/u_omega/config.yml +++ b/benchmarks/Exclusive-Diffraction-Tagging/u_omega/config.yml @@ -2,7 +2,7 @@ u_omega:compile: stage: compile extends: .compile_benchmark script: - - compile_analyses.py u_omega + - compile_analyses.py Exclusive-Diffraction-Tagging/u_omega u_omega:simulate: stage: simulate @@ -11,8 +11,8 @@ u_omega:simulate: - phy needs: ["u_omega:compile"] script: - #- bash benchmarks/u_omega/u_omega.sh --all - - bash benchmarks/u_omega/u_omega.sh --data-init --sim --rec + #- bash benchmarks/Exclusive-Diffraction-Tagging/u_omega/u_omega.sh --all + - bash benchmarks/Exclusive-Diffraction-Tagging/u_omega/u_omega.sh --data-init --sim --rec u_omega:results: stage: collect diff --git a/benchmarks/u_omega/u_omega.sh b/benchmarks/Exclusive-Diffraction-Tagging/u_omega/u_omega.sh similarity index 100% rename from benchmarks/u_omega/u_omega.sh rename to benchmarks/Exclusive-Diffraction-Tagging/u_omega/u_omega.sh diff --git a/benchmarks/Inclusive/dis/.gitignore b/benchmarks/Inclusive/dis/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/benchmarks/dis/Snakefile b/benchmarks/Inclusive/dis/Snakefile similarity index 52% rename from benchmarks/dis/Snakefile rename to benchmarks/Inclusive/dis/Snakefile index 60039699..d53052ff 100644 --- a/benchmarks/dis/Snakefile +++ b/benchmarks/Inclusive/dis/Snakefile @@ -3,15 +3,14 @@ import shutil rule dis_compile: input: - ROOT_BUILD_DIR_PREFIX + "benchmarks/dis/analysis/dis_electrons_cxx.so", - ROOT_BUILD_DIR_PREFIX + "benchmarks/dis/analysis/jets_cxx.so", + ROOT_BUILD_DIR_PREFIX + "benchmarks/Inclusive/dis/analysis/dis_electrons_cxx.so", rule dis_sim: input: warmup="warmup/{DETECTOR_CONFIG}.edm4hep.root", output: - "sim/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.edm4hep.root", + "sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.edm4hep.root", params: N_EVENTS=100, shell: @@ -30,9 +29,9 @@ ddsim \ rule dis_reco_eicrecon: input: - "sim/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.edm4hep.root", + "sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.edm4hep.root", output: - "reco/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.edm4eic.root", + "sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.edm4eic.root", shell: """ DETECTOR_CONFIG={wildcards.DETECTOR_CONFIG} eicrecon {input} -Ppodio:output_file={output} @@ -41,16 +40,16 @@ DETECTOR_CONFIG={wildcards.DETECTOR_CONFIG} eicrecon {input} -Ppodio:output_file rule dis_generate_config: input: - data="reco/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.edm4eic.root", + data="sim_output/{DETECTOR_CONFIG}/pythia8NCDIS_{EBEAM}x{PBEAM}_minQ2={MINQ2}_beamEffects_xAngle=-0.025_hiDiv_1.edm4eic.root", output: - config="results/{DETECTOR_CONFIG}/dis/{EBEAM}on{PBEAM}/minQ2={MINQ2}/config.json", + config="results/{DETECTOR_CONFIG}/dis/{EBEAM}on{PBEAM}/minQ2={MINQ2}_config.json", shell: """ cat > {output.config} < {output.config} <Draw(); gPad->SetLogy(); - if(PRINT) c1->Print((results_path+"/jets/numberRecoJets.png").c_str()); // Number of reconstructed jets per event with energy > 5 GeV and Abs(eta) < 2.5 + if(PRINT) c1->Print((results_path+"/numberRecoJets.png").c_str()); // Number of reconstructed jets per event with energy > 5 GeV and Abs(eta) < 2.5 delete c1; // Reco Energy @@ -580,7 +580,7 @@ legend2->AddEntry(recoChargedJetENoElecHist, "No Electrons", "l"); legend2->Draw(); gPad->SetLogy(); - if(PRINT) c2->Print((results_path+"/jets/recoJetEnergy.png").c_str()); // Energy spectrum of reconstructed jets with Abs(eta) < 2.5 + if(PRINT) c2->Print((results_path+"/recoJetEnergy.png").c_str()); // Energy spectrum of reconstructed jets with Abs(eta) < 2.5 delete c2; // Reco Eta @@ -604,7 +604,7 @@ legend3->AddEntry(recoChargedJetEtaECutNoElecHist, "No Electrons", "l"); legend3->Draw(); gPad->SetLogy(); - if(PRINT) c3->Print((results_path+"/jets/recoJetEta.png").c_str()); // Eta spectrum of reconstructed jets with energy > 5 GeV + if(PRINT) c3->Print((results_path+"/recoJetEta.png").c_str()); // Eta spectrum of reconstructed jets with energy > 5 GeV delete c3; // Reco E Vs Eta TCanvas *c4 = new TCanvas("c4","Reco Jet E Vs Eta",800,600); @@ -615,7 +615,7 @@ legend3->Draw(); recoChargedJetEvsEtaHist->Draw("COLZ"); recoChargedJetEvsEtaHist->SetTitle("Reconstructed Jet Energy Vs Eta;Eta;Energy [GeV]"); gPad->SetLogz(); - if(PRINT) c4->Print((results_path+"/jets/recoJetEnergyvsEta.png").c_str()); // Energy vs eta of reconstructed jets + if(PRINT) c4->Print((results_path+"/recoJetEnergyvsEta.png").c_str()); // Energy vs eta of reconstructed jets // Reco Phi Vs Eta TCanvas *c5 = new TCanvas("c5","Reco Jet Phi Vs Eta",800,600); @@ -626,7 +626,7 @@ legend3->Draw(); recoChargedJetPhiVsEtaECutHist->Draw("COLZ"); recoChargedJetPhiVsEtaECutHist->SetTitle("Reconstructed Jet Phi Vs Eta (E > 5);Eta;Phi"); gPad->SetLogz(); - if(PRINT) c5->Print((results_path+"/jets/recoJetPhivsEta.png").c_str()); // Phi vs eta of reconstructed jets + if(PRINT) c5->Print((results_path+"/recoJetPhivsEta.png").c_str()); // Phi vs eta of reconstructed jets // Num Particles Per Reco Jet TCanvas *c6 = new TCanvas("c6","Number Constituents Per Reco Jet",800,600); @@ -648,7 +648,7 @@ legend6->AddEntry(numRecoChargedJetPartsNoElecHist, "No Electrons", "l"); legend6->Draw(); gPad->SetLogy(); - if(PRINT) c6->Print((results_path+"/jets/numConstituentsPerRecoJet.png").c_str()); // Number of constituents in reconstructed jets + if(PRINT) c6->Print((results_path+"/numConstituentsPerRecoJet.png").c_str()); // Number of constituents in reconstructed jets // Reco Part Energy TCanvas *c7 = new TCanvas("c7","Reco Jet Constituent Energy",800,600); @@ -670,7 +670,7 @@ legend6->Draw(); legend7->Draw(); gPad->SetLogy(); - if(PRINT) c7->Print((results_path+"/jets/recoJetConstituentEnergy.png").c_str()); // Energy of reconstructed jet constituents + if(PRINT) c7->Print((results_path+"/recoJetConstituentEnergy.png").c_str()); // Energy of reconstructed jet constituents // Reco Part Eta TCanvas *c8 = new TCanvas("c8","Reco Jet Constituent Eta",800,600); @@ -693,7 +693,7 @@ legend6->Draw(); legend8->Draw(); gPad->SetLogy(); - if(PRINT) c8->Print((results_path+"/jets/recoJetConstituentEta.png").c_str()); // Eta of reconstructed jet constituents + if(PRINT) c8->Print((results_path+"/recoJetConstituentEta.png").c_str()); // Eta of reconstructed jet constituents // Reco Part E Vs Eta TCanvas *c9 = new TCanvas("c9","Reco Jet Constituent E Vs Eta",800,600); @@ -704,7 +704,7 @@ legend6->Draw(); recoChargedJetPartEvsEtaHist->Draw("COLZ"); recoChargedJetPartEvsEtaHist->SetTitle("Reconstructed Jet Constituent Energy Vs Eta;Eta;Energy [GeV]"); gPad->SetLogz(); - if(PRINT) c9->Print((results_path+"/jets/recoJetConstituentEnergyVsEta.png").c_str()); // Energy vs eta of reconstructed jet constituents + if(PRINT) c9->Print((results_path+"/recoJetConstituentEnergyVsEta.png").c_str()); // Energy vs eta of reconstructed jet constituents // Reco Part Phi Vs Eta TCanvas *c10 = new TCanvas("c10","Reco Jet Constituent Phi Vs Eta",800,600); @@ -715,7 +715,7 @@ legend6->Draw(); recoChargedJetPartPhiVsEtaHist->Draw("COLZ"); recoChargedJetPartPhiVsEtaHist->SetTitle("Reconstructed Jet Constituent Phi Vs Eta;Eta;Phi"); gPad->SetLogz(); - if(PRINT) c10->Print((results_path+"/jets/recoJetConstituentPhiVsEta.png").c_str()); // Phi vs eta of reconstructed jet constituents + if(PRINT) c10->Print((results_path+"/recoJetConstituentPhiVsEta.png").c_str()); // Phi vs eta of reconstructed jet constituents // Reco Constituent Pairwise delta R TCanvas *c11 = new TCanvas("c11","Reco Jet Constituent Pairwise Delta R",800,600); @@ -727,7 +727,7 @@ legend6->Draw(); recoChargedJetPartPairwiseDeltaRHist->SetTitle("Pairwise Constituent Delta R;Delta R"); recoChargedJetPartPairwiseDeltaRHist->GetXaxis()->SetRangeUser(0,0.5); gPad->SetLogy(); - if(PRINT) c11->Print((results_path+"/jets/recoJetConstituentPairwiseDR.png").c_str()); // Distance between each pair of constituents in reconstructed jets + if(PRINT) c11->Print((results_path+"/recoJetConstituentPairwiseDR.png").c_str()); // Distance between each pair of constituents in reconstructed jets // Reco E Vs Eta No Electron Jets TCanvas *c12 = new TCanvas("c12","Reco Jet E Vs Eta (No Electrons)",800,600); @@ -738,7 +738,7 @@ legend6->Draw(); recoChargedJetEvsEtaNoElecHist->Draw("COLZ"); recoChargedJetEvsEtaNoElecHist->SetTitle("Reconstructed Jet Energy Vs Eta (No Electrons);Eta;Energy [GeV]"); gPad->SetLogz(); - if(PRINT) c12->Print((results_path+"/jets/recoJetEnergyVsEtaNoElectron.png").c_str()); // Reconstructed jet energy - no jets containing electrons included + if(PRINT) c12->Print((results_path+"/recoJetEnergyVsEtaNoElectron.png").c_str()); // Reconstructed jet energy - no jets containing electrons included // Reco Phi Vs Eta No Electron Jets TCanvas *c13 = new TCanvas("c13","Reco Jet Phi Vs Eta (No Electrons)",800,600); @@ -749,7 +749,7 @@ legend6->Draw(); recoChargedJetPhiVsEtaECutNoElecHist->Draw("COLZ"); recoChargedJetPhiVsEtaECutNoElecHist->SetTitle("Reconstructed Jet Phi Vs Eta (E > 5) (No Electrons);Eta;Phi"); gPad->SetLogz(); - if(PRINT) c13->Print((results_path+"/jets/recoJetPhiVsEtaNoElectron.png").c_str()); // Reconstructed Jet phi vs eta - no jets containing electrons included + if(PRINT) c13->Print((results_path+"/recoJetPhiVsEtaNoElectron.png").c_str()); // Reconstructed Jet phi vs eta - no jets containing electrons included // Reco Part E Vs Eta No Electron Jets TCanvas *c14 = new TCanvas("c14","Reco Jet Constituent E Vs Eta (No Electrons)",800,600); @@ -760,7 +760,7 @@ legend6->Draw(); recoChargedJetPartEvsEtaNoElecHist->Draw("COLZ"); recoChargedJetPartEvsEtaNoElecHist->SetTitle("Reconstructed Jet Constituent Energy Vs Eta (No Electrons);Eta;Energy [GeV]"); gPad->SetLogz(); - if(PRINT) c14->Print((results_path+"/jets/recoJetConstituentEnergyVsEtaNoElectron.png").c_str()); // Reconstructed jet constituent energy vs eta - no jets containing electrons included + if(PRINT) c14->Print((results_path+"/recoJetConstituentEnergyVsEtaNoElectron.png").c_str()); // Reconstructed jet constituent energy vs eta - no jets containing electrons included // Reco Part Phi Vs Eta No Electron Jets TCanvas *c15 = new TCanvas("c15","Reco Jet Constituent Phi Vs Eta (No Electrons)",800,600); @@ -771,7 +771,7 @@ legend6->Draw(); recoChargedJetPartPhiVsEtaNoElecHist->Draw("COLZ"); recoChargedJetPartPhiVsEtaNoElecHist->SetTitle("Reconstructed Jet Constituent Phi Vs Eta (No Electrons);Eta;Phi"); gPad->SetLogz(); - if(PRINT) c15->Print((results_path+"/jets/recoJetConstituentPhiVsEtaNoElectron.png").c_str()); // Reconstructed jet constituent phi vs eta - no jets containing electrons included + if(PRINT) c15->Print((results_path+"/recoJetConstituentPhiVsEtaNoElectron.png").c_str()); // Reconstructed jet constituent phi vs eta - no jets containing electrons included //////////////////////// Generated Jets Plots //////////////////////// @@ -796,7 +796,7 @@ legend6->Draw(); legend16->Draw(); gPad->SetLogy(); - if(PRINT) c16->Print((results_path+"/jets/numberGenJets.png").c_str()); // Number of generator jets per event with energy > 5 GeV and Abs(eta) < 2.5 + if(PRINT) c16->Print((results_path+"/numberGenJets.png").c_str()); // Number of generator jets per event with energy > 5 GeV and Abs(eta) < 2.5 // Gen Energy TCanvas *c17 = new TCanvas("c17","Gen Jet Energy",800,600); @@ -818,7 +818,7 @@ legend6->Draw(); legend17->Draw(); gPad->SetLogy(); - if(PRINT) c17->Print((results_path+"/jets/genJetEnergy.png").c_str()); // Energy spectrum of generated jets with Abs(eta) < 2.5 + if(PRINT) c17->Print((results_path+"/genJetEnergy.png").c_str()); // Energy spectrum of generated jets with Abs(eta) < 2.5 // Gen Eta TCanvas *c18 = new TCanvas("c18","Gen Jet Eta",800,600); @@ -841,7 +841,7 @@ legend6->Draw(); legend18->Draw(); gPad->SetLogy(); - if(PRINT) c18->Print((results_path+"/jets/genJetEta.png").c_str()); // Eta spectrum of generator jets with energy > 5 GeV + if(PRINT) c18->Print((results_path+"/genJetEta.png").c_str()); // Eta spectrum of generator jets with energy > 5 GeV // Gen E Vs Eta TCanvas *c19 = new TCanvas("c19","Gen Jet E Vs Eta",800,600); @@ -852,7 +852,7 @@ legend6->Draw(); genChargedJetEvsEtaHist->Draw("COLZ"); genChargedJetEvsEtaHist->SetTitle("Generator Jet Energy Vs Eta;Eta;Energy [GeV]"); gPad->SetLogz(); - if(PRINT) c19->Print((results_path+"/jets/genJetEnergyvsEta.png").c_str()); // Energy vs eta of generator jets + if(PRINT) c19->Print((results_path+"/genJetEnergyvsEta.png").c_str()); // Energy vs eta of generator jets // Gen Phi Vs Eta TCanvas *c20 = new TCanvas("c20","Gen Jet Phi Vs Eta",800,600); @@ -863,7 +863,7 @@ legend6->Draw(); genChargedJetPhiVsEtaECutHist->Draw("COLZ"); genChargedJetPhiVsEtaECutHist->SetTitle("Generator Jet Phi Vs Eta (E > 5);Eta;Phi"); gPad->SetLogz(); - if(PRINT) c20->Print((results_path+"/jets/genJetPhiVsEta.png").c_str()); // Phi vs eta of generator jets + if(PRINT) c20->Print((results_path+"/genJetPhiVsEta.png").c_str()); // Phi vs eta of generator jets // Num Particles Per Gen Jet TCanvas *c21 = new TCanvas("c21","Number Constituents Per Gen Jet",800,600); @@ -885,7 +885,7 @@ legend6->Draw(); legend21->AddEntry(numGenChargedJetPartsNoElecHist, "No Electrons", "l"); legend21->Draw(); gPad->SetLogy(); - if(PRINT) c21->Print((results_path+"/jets/numConstituentsPerGenJet.png").c_str()); // Number of constituents in generator jets + if(PRINT) c21->Print((results_path+"/numConstituentsPerGenJet.png").c_str()); // Number of constituents in generator jets // Gen Part Energy TCanvas *c22 = new TCanvas("c22","Gen Jet Constituent Energy",800,600); @@ -908,7 +908,7 @@ legend6->Draw(); legend22->Draw(); gPad->SetLogy(); - if(PRINT) c22->Print((results_path+"/jets/genJetConstituentEnergy.png").c_str()); // Energy of generator jet constituents + if(PRINT) c22->Print((results_path+"/genJetConstituentEnergy.png").c_str()); // Energy of generator jet constituents // Gen Part Eta TCanvas *c23 = new TCanvas("c23","Gen Jet Constituent Eta",800,600); @@ -931,7 +931,7 @@ legend6->Draw(); legend23->Draw(); gPad->SetLogy(); - if(PRINT) c23->Print((results_path+"/jets/genJetConstituentEta.png").c_str()); // Eta of generator jet constituents + if(PRINT) c23->Print((results_path+"/genJetConstituentEta.png").c_str()); // Eta of generator jet constituents // Gen Part E Vs Eta TCanvas *c24 = new TCanvas("c24","Gen Jet Constituent E Vs Eta",800,600); @@ -942,7 +942,7 @@ legend6->Draw(); genChargedJetPartEvsEtaHist->Draw("COLZ"); genChargedJetPartEvsEtaHist->SetTitle("Generator Jet Constituent Energy Vs Eta;Eta;Energy [GeV]"); gPad->SetLogz(); - if(PRINT) c24->Print((results_path+"/jets/genJetConstituentEnergyVsEta.png").c_str()); // Energy vs eta of generator jet constituents + if(PRINT) c24->Print((results_path+"/genJetConstituentEnergyVsEta.png").c_str()); // Energy vs eta of generator jet constituents // Gen Part Phi Vs Eta TCanvas *c25 = new TCanvas("c25","Gen Jet Constituent Phi Vs Eta",800,600); @@ -953,7 +953,7 @@ legend6->Draw(); genChargedJetPartPhiVsEtaHist->Draw("COLZ"); genChargedJetPartPhiVsEtaHist->SetTitle("Generator Jet Constituent Phi Vs Eta;Eta;Phi"); gPad->SetLogz(); - if(PRINT) c25->Print((results_path+"/jets/genJetConstituentPhiVsEta.png").c_str()); // Phi vs eta of generator jet constituents + if(PRINT) c25->Print((results_path+"/genJetConstituentPhiVsEta.png").c_str()); // Phi vs eta of generator jet constituents // Gen Constituent Pairwise delta R TCanvas *c26 = new TCanvas("c26","Gen Jet Constituent Pairwise Delta R",800,600); @@ -965,7 +965,7 @@ legend6->Draw(); genChargedJetPartPairwiseDeltaRHist->SetTitle("Generator Jet Pairwise Constituent Delta R;Delta R"); genChargedJetPartPairwiseDeltaRHist->GetXaxis()->SetRangeUser(0,0.5); gPad->SetLogy(); - if(PRINT) c26->Print((results_path+"/jets/genJetConstituentPairwiseDR.png").c_str()); // Distance between each pair of constituents in generator jets + if(PRINT) c26->Print((results_path+"/genJetConstituentPairwiseDR.png").c_str()); // Distance between each pair of constituents in generator jets // Gen E Vs Eta No Electron Jets TCanvas *c27 = new TCanvas("c27","Gen Jet E Vs Eta (No Electrons)",800,600); @@ -976,7 +976,7 @@ legend6->Draw(); genChargedJetEvsEtaNoElecHist->Draw("COLZ"); genChargedJetEvsEtaNoElecHist->SetTitle("Generator Jet Energy Vs Eta (No Electrons);Eta;Energy [GeV]"); gPad->SetLogz(); - if(PRINT) c27->Print((results_path+"/jets/genJetEnergyVsEtaNoElectron.png").c_str()); // Generator jet energy vs eta - no jets containing electrons included + if(PRINT) c27->Print((results_path+"/genJetEnergyVsEtaNoElectron.png").c_str()); // Generator jet energy vs eta - no jets containing electrons included // Gen Phi Vs Eta No Electron Jets TCanvas *c28 = new TCanvas("c28","Gen Jet Phi Vs Eta (No Electrons)",800,600); @@ -987,7 +987,7 @@ legend6->Draw(); genChargedJetPhiVsEtaECutNoElecHist->Draw("COLZ"); genChargedJetPhiVsEtaECutNoElecHist->SetTitle("Generator Jet Phi Vs Eta (E > 5) (No Electrons);Eta;Phi"); gPad->SetLogz(); - if(PRINT) c28->Print((results_path+"/jets/genJetPhiVsEtaNoElectron.png").c_str()); // Generator Jet phi vs eta - no jets containing electrons included + if(PRINT) c28->Print((results_path+"/genJetPhiVsEtaNoElectron.png").c_str()); // Generator Jet phi vs eta - no jets containing electrons included // Gen Part E Vs Eta No Electron Jets TCanvas *c29 = new TCanvas("c29","Gen Jet Constituent E Vs Eta (No Electrons)",800,600); @@ -998,7 +998,7 @@ legend6->Draw(); genChargedJetPartEvsEtaNoElecHist->Draw("COLZ"); genChargedJetPartEvsEtaNoElecHist->SetTitle("Generator Jet Constituent Energy Vs Eta (No Electrons);Eta;Energy [GeV]"); gPad->SetLogz(); - if(PRINT) c29->Print((results_path+"/jets/genJetConstituentEnergyVsEtaNoElectron.png").c_str()); // Generator jet constituent energy vs eta - no jets containing electrons included + if(PRINT) c29->Print((results_path+"/genJetConstituentEnergyVsEtaNoElectron.png").c_str()); // Generator jet constituent energy vs eta - no jets containing electrons included // Gen Part Phi Vs Eta No Electron Jets TCanvas *c30 = new TCanvas("c30","Gen Jet Constituent Phi Vs Eta (No Electrons)",800,600); @@ -1009,8 +1009,8 @@ legend6->Draw(); genChargedJetPartPhiVsEtaNoElecHist->Draw("COLZ"); genChargedJetPartPhiVsEtaNoElecHist->SetTitle("Generator Jet Constituent Phi Vs Eta (No Electrons);Eta;Phi"); gPad->SetLogz(); - //c30->Print((results_path+"/jets/recoJetEvsEta.png").c_str()); - if(PRINT) c30->Print((results_path+"/jets/genJetConstituentPhiVsEtaNoElectron.png").c_str()); // Generator jet constituent phi vs eta - no jets containing electrons included + //c30->Print((results_path+"/recoJetEvsEta.png").c_str()); + if(PRINT) c30->Print((results_path+"/genJetConstituentPhiVsEtaNoElectron.png").c_str()); // Generator jet constituent phi vs eta - no jets containing electrons included //////////////////////// Matched Jets Plots //////////////////////// @@ -1025,7 +1025,7 @@ legend6->Draw(); //matchJetDeltaRBackHist->Draw("HISTSAME"); matchJetDeltaRHist->SetTitle("Matched Gen - Reco Jet Delta R;Delta R"); gPad->SetLogy(); - if(PRINT) c31->Print((results_path+"/jets/genRecoJetDeltaR.png").c_str()); // Distance between closest generated and reconstructed jet pair + if(PRINT) c31->Print((results_path+"/genRecoJetDeltaR.png").c_str()); // Distance between closest generated and reconstructed jet pair // Matched Reco Vs Gen Eta TCanvas *c32 = new TCanvas("c32","Reco Vs Gen Eta",800,600); @@ -1036,7 +1036,7 @@ legend6->Draw(); recoVsGenChargedJetEtaHist->Draw("COLZ"); recoVsGenChargedJetEtaHist->SetTitle("Reconstructed Vs Generator Jet Eta;Gen Eta;Reco Eta"); gPad->SetLogz(); - if(PRINT) c32->Print((results_path+"/jets/matchedRecoVsGenJetEta.png").c_str()); // Matched Reconstructed Vs Generator Jet eta + if(PRINT) c32->Print((results_path+"/matchedRecoVsGenJetEta.png").c_str()); // Matched Reconstructed Vs Generator Jet eta // Matched Reco Vs Gen Phi TCanvas *c33 = new TCanvas("c33","Reco Vs Gen Phi",800,600); @@ -1047,7 +1047,7 @@ legend6->Draw(); recoVsGenChargedJetPhiHist->Draw("COLZ"); recoVsGenChargedJetPhiHist->SetTitle("Reconstructed Vs Generator Jet Phi;Gen Phi;Reco Phi"); gPad->SetLogz(); - if(PRINT) c33->Print((results_path+"/jets/matchedRecoVsGenJetPhi.png").c_str()); // Matched reconstructed vs generator jet phi + if(PRINT) c33->Print((results_path+"/matchedRecoVsGenJetPhi.png").c_str()); // Matched reconstructed vs generator jet phi // Matched Reco Vs Gen Energy TCanvas *c34 = new TCanvas("c34","Reco Vs Gen Energy",800,600); @@ -1065,7 +1065,7 @@ legend6->Draw(); f2_34->Draw("SAME"); f3_34->Draw("SAME"); gPad->SetLogz(); - if(PRINT) c34->Print((results_path+"/jets/matchedRecoVsGenJetEnergy.png").c_str()); // Matched reconstructed vs generator jet energy + if(PRINT) c34->Print((results_path+"/matchedRecoVsGenJetEnergy.png").c_str()); // Matched reconstructed vs generator jet energy // Jet Res Vs Gen Eta TCanvas *c35 = new TCanvas("c35","Jet Res Vs Gen Eta",800,600); @@ -1076,7 +1076,7 @@ legend6->Draw(); jetResVsEtaHist->Draw("COLZ"); jetResVsEtaHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Eta;Gen Eta;Res"); gPad->SetLogz(); - if(PRINT) c35->Print((results_path+"/jets/matchedJetResolutionVsEta.png").c_str()); // Matched jet resolution vs generator jet eta + if(PRINT) c35->Print((results_path+"/matchedJetResolutionVsEta.png").c_str()); // Matched jet resolution vs generator jet eta // Jet Res Vs Gen E TCanvas *c36 = new TCanvas("c36","Jet Res Vs Gen E",800,600); @@ -1087,7 +1087,7 @@ legend6->Draw(); jetResVsEHist->Draw("COLZ"); jetResVsEHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Energy;Gen E;Res"); gPad->SetLogz(); - if(PRINT) c36->Print((results_path+"/jets/matchedJetResolutionVsEnergy.png").c_str()); // Matched jet resolution vs generator jet energy + if(PRINT) c36->Print((results_path+"/matchedJetResolutionVsEnergy.png").c_str()); // Matched jet resolution vs generator jet energy // Jet Res Vs Gen E Neg Eta TCanvas *c37 = new TCanvas("c37","Jet Res Vs Gen E (-2.5 < eta < -1.0)",800,600); @@ -1098,7 +1098,7 @@ legend6->Draw(); jetResVsENegEtaNoDupHist->Draw("COLZ"); jetResVsENegEtaNoDupHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Energy (-2.5 < eta < -1.0) No Duplicate;Gen E;Res"); gPad->SetLogz(); - if(PRINT) c37->Print((results_path+"/jets/matchedJetResolutionVsEnergyNegEta.png").c_str()); // Matched jet resolution vs generator jet energy -2.5 < eta < -1.0 + if(PRINT) c37->Print((results_path+"/matchedJetResolutionVsEnergyNegEta.png").c_str()); // Matched jet resolution vs generator jet energy -2.5 < eta < -1.0 // Jet Res Vs Gen E Mid Eta TCanvas *c38 = new TCanvas("c38","Jet Res Vs Gen E (-1.0 < eta < 1.0)",800,600); @@ -1109,7 +1109,7 @@ legend6->Draw(); jetResVsEMidEtaNoDupHist->Draw("COLZ"); jetResVsEMidEtaNoDupHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Energy (-1.0 < eta < 1.0) No Duplicate;Gen E;Res"); gPad->SetLogz(); - if(PRINT) c38->Print((results_path+"/jets/matchedJetResolutionVsEnergyMidEta.png").c_str()); // Matched jet resolution vs generator jet energy -1.0 < eta < 1.0 + if(PRINT) c38->Print((results_path+"/matchedJetResolutionVsEnergyMidEta.png").c_str()); // Matched jet resolution vs generator jet energy -1.0 < eta < 1.0 delete c38; // Jet Res Vs Gen E Pos Eta TCanvas *c39 = new TCanvas("c39","Jet Res Vs Gen E (1.0 < eta < 2.5)",800,600); @@ -1120,7 +1120,7 @@ legend6->Draw(); jetResVsEPosEtaNoDupHist->Draw("COLZ"); jetResVsEPosEtaNoDupHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Energy (1.0 < eta < 2.5) No Duplicate;Gen E;Res"); gPad->SetLogz(); - if(PRINT) c39->Print((results_path+"/jets/matchedJetResolutionVsEnergyPosEta.png").c_str()); // Matched jet resolution vs generator jet energy 1.0 < eta < 2.5 + if(PRINT) c39->Print((results_path+"/matchedJetResolutionVsEnergyPosEta.png").c_str()); // Matched jet resolution vs generator jet energy 1.0 < eta < 2.5 delete c39; @@ -1179,7 +1179,7 @@ legend6->Draw(); //cout << fA->GetParError(0) << " " << fA->GetParError(1) << " " << fA->GetParError(2) << endl; } } - if(PRINT) c40->Print((results_path+"/jets/matchedJetResolutionVsEnergyNegEtaFitSummary.png").c_str()); // Matched jet resolution vs generator jet energy -2.5 < eta < -1.0 fits + if(PRINT) c40->Print((results_path+"/matchedJetResolutionVsEnergyNegEtaFitSummary.png").c_str()); // Matched jet resolution vs generator jet energy -2.5 < eta < -1.0 fits delete c40; TCanvas *c41 = new TCanvas("c41","Mid Rapidity Fit Results",800,600); @@ -1213,7 +1213,7 @@ legend6->Draw(); //cout << fB->GetParError(0) << " " << fB->GetParError(1) << " " << fB->GetParError(2) << endl; } } - if(PRINT) c41->Print((results_path+"/jets/matchedJetResolutionVsEnergyMidEtaFitSummary.png").c_str()); // Matched jet resolution vs generator jet energy -1.0 < eta < 1.0 fits + if(PRINT) c41->Print((results_path+"/matchedJetResolutionVsEnergyMidEtaFitSummary.png").c_str()); // Matched jet resolution vs generator jet energy -1.0 < eta < 1.0 fits delete c41; TCanvas *c42 = new TCanvas("c42","Positive Rapidity Fit Results",800,600); @@ -1247,7 +1247,7 @@ legend6->Draw(); //cout << fC->GetParError(0) << " " << fC->GetParError(1) << " " << fC->GetParError(2) << endl; } } - if(PRINT) c42->Print((results_path+"/jets/matchedJetResolutionVsEnergyPosEtaFitSummary.png").c_str()); // Matched jet resolution vs generator jet energy 1.0 < eta < 2.5 fits + if(PRINT) c42->Print((results_path+"/matchedJetResolutionVsEnergyPosEtaFitSummary.png").c_str()); // Matched jet resolution vs generator jet energy 1.0 < eta < 2.5 fits delete c42; TCanvas *c43 = new TCanvas("c43","Positive JES/JER",800,600); c43->Clear(); @@ -1305,7 +1305,7 @@ legend->AddEntry(gJERvsEPos, "JER, (1 < #eta < 2.5) ", "p"); legend->AddEntry(gJESvsEPos, "JES, (1 < #eta < 2.5)", "p"); legend->Draw(); - if(PRINT) c43->Print((results_path+"/jets/matchedJetScaleResolutionSummary.png").c_str()); // Matched jet JER/JES summary + if(PRINT) c43->Print((results_path+"/matchedJetScaleResolutionSummary.png").c_str()); // Matched jet JER/JES summary delete c43; delete mychain; diff --git a/benchmarks/Jets-HF/jets/config.yml b/benchmarks/Jets-HF/jets/config.yml new file mode 100644 index 00000000..09a1d4c8 --- /dev/null +++ b/benchmarks/Jets-HF/jets/config.yml @@ -0,0 +1,38 @@ +jets:compile: + stage: compile + extends: .compile_benchmark + script: + - snakemake --cores 1 jets_compile + +jets:simulate: + stage: simulate + extends: .phy_benchmark + needs: + - "jets:compile" + - "dis:simulate" + parallel: + matrix: + - EBEAM: 5 + PBEAM: 41 + MINQ2: [1, 10, 100] + - EBEAM: 10 + PBEAM: 100 + MINQ2: [1, 10, 100, 1000] + - EBEAM: 18 + PBEAM: 275 + MINQ2: [1, 10, 100, 1000] + timeout: 2 hours + script: + - | + snakemake --cache --cores 1 \ + results/epic_craterlake/jets/${EBEAM}on${PBEAM}/minQ2=${MINQ2}/ + retry: + max: 2 + when: + - runner_system_failure + +jets:results: + stage: collect + needs: ["jets:simulate"] + script: + - collect_tests.py Jets-HF/jets diff --git a/benchmarks/SIDIS/.gitkeep b/benchmarks/SIDIS/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/benchmarks/backgrounds/analysis/synchrotron_raw.cxx b/benchmarks/backgrounds/analysis/synchrotron_raw.cxx deleted file mode 100644 index 14a7b1fd..00000000 --- a/benchmarks/backgrounds/analysis/synchrotron_raw.cxx +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include -#include -#include - -#include "ROOT/RDataFrame.hxx" -#include "Math/Vector4D.h" -#include "TCanvas.h" - -#include -using json = nlohmann::json; - -R__LOAD_LIBRARY(libfmt.so) -#include "fmt/core.h" -#include "fmt/color.h" - -R__LOAD_LIBRARY(libedm4eic.so) - -#include "edm4eic/ReconstructedParticleCollection.h" - -void synchrotron_raw(const char* fname = "rec_synchrotron.raw.root"){ - - fmt::print(fmt::emphasis::bold | fg(fmt::color::forest_green), "Running synchrotron analysis...\n"); - - // Run this in multi-threaded mode if desired - ROOT::EnableImplicitMT(); - ROOT::RDataFrame df("events", fname); - -} diff --git a/benchmarks/backgrounds/analysis/synchrotron_sim.cxx b/benchmarks/backgrounds/analysis/synchrotron_sim.cxx deleted file mode 100644 index fc22532e..00000000 --- a/benchmarks/backgrounds/analysis/synchrotron_sim.cxx +++ /dev/null @@ -1,57 +0,0 @@ -#include -#include -#include -#include - -#include "ROOT/RDataFrame.hxx" -#include "Math/Vector4D.h" -#include "TCanvas.h" -#include "TSystem.h" - -#include -using json = nlohmann::json; - -R__LOAD_LIBRARY(libfmt.so) -#include "fmt/core.h" -#include "fmt/color.h" - -R__LOAD_LIBRARY(libedm4eic.so) - -#include "edm4eic/ReconstructedParticleCollection.h" - -void synchrotron_sim(const char* fname = "sim_synchrotron.edm4hep.root"){ - - fmt::print(fmt::emphasis::bold | fg(fmt::color::forest_green), "Running synchrotron analysis...\n"); - - // Run this in multi-threaded mode if desired - ROOT::EnableImplicitMT(); - ROOT::RDataFrame df("events", fname); - - // Detector version - std::string detector_version("default"); - const char* getenv_detector_version = gSystem->Getenv("DETECTOR_VERSION"); - if (getenv_detector_version) { - detector_version = getenv_detector_version; - } - - if (detector_version == "acadia") { - // Define variables - auto df0 = df - .Define("n_VertexBarrelHits", "VertexBarrelHits.size()") - .Define("n_VertexEndcapHits", "VertexEndcapHits.size()") - ; - auto n_VertexBarrelHits = df0.Mean("n_VertexBarrelHits"); - auto n_VertexEndcapHits = df0.Mean("n_VertexEndcapHits"); - std::cout << "n_VertexBarrelHits = " << *n_VertexBarrelHits << " / ev" << std::endl; - std::cout << "n_VertexEndcapHits = " << *n_VertexEndcapHits << " / ev" << std::endl; - } else if (detector_version == "canyonlands") { - // Define variables - auto df0 = df - .Define("n_VertexBarrelHits", "VertexBarrelHits.size()") - ; - auto n_VertexBarrelHits = df0.Mean("n_VertexBarrelHits"); - std::cout << "n_VertexBarrelHits = " << *n_VertexBarrelHits << " / ev" << std::endl; - } else { - std::cout << "Detector version " << detector_version << " not supported in synchrotron_sim.cxx" << std::endl; - } -} diff --git a/benchmarks/backgrounds/config.yml b/benchmarks/backgrounds/config.yml deleted file mode 100644 index a34e04ed..00000000 --- a/benchmarks/backgrounds/config.yml +++ /dev/null @@ -1,20 +0,0 @@ -backgrounds:compile: - stage: compile - extends: .compile_benchmark - script: - - compile_analyses.py backgrounds - -backgrounds:synchrotron:simulate: - stage: simulate - extends: .phy_benchmark - tags: - - s3 - needs: ["backgrounds:compile"] - script: - - bash benchmarks/backgrounds/synchrotron.sh --all - -backgrounds:results: - stage: collect - needs: ["backgrounds:synchrotron:simulate"] - script: - - ls -lrth diff --git a/benchmarks/backgrounds/synchrotron.sh b/benchmarks/backgrounds/synchrotron.sh deleted file mode 100644 index 29609cc7..00000000 --- a/benchmarks/backgrounds/synchrotron.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash -source strict-mode.sh - -function print_the_help { - echo "USAGE: ${0} [--rec] [--sim] [--ana] [--all] " - echo " The default options are to run all steps (sim,rec,ana) " - echo "OPTIONS: " - echo " --data-init download the input event data" - echo " --sim,-s Runs the Geant4 simulation" - echo " --rec,-r Run the juggler reconstruction" - echo " --ana,-a Run the analysis scripts" - echo " --all (default) Do all steps. Argument is included so usage can convey intent." - exit -} - -DO_ALL=1 -DATA_INIT= -DO_SIM= -DO_REC= -DO_ANA= - -POSITIONAL=() -while [[ $# -gt 0 ]] -do - key="$1" - - case $key in - -h|--help) - shift # past argument - print_the_help - ;; - --all) - DO_ALL=2 - if [[ ! "${DO_REC}${DO_SIM}${DO_ANA}" -eq "" ]] ; then - echo "Error: cannot use --all with other arguments." 1>&2 - print_the_help - exit 1 - fi - shift # past value - ;; - -s|--sim) - DO_SIM=1 - DO_ALL= - shift # past value - ;; - --data-init) - DATA_INIT=1 - DO_ALL= - shift # past value - ;; - -r|--rec) - DO_REC=1 - DO_ALL= - shift # past value - ;; - -a|--analysis) - DO_ANA=1 - DO_ALL= - shift # past value - ;; - *) # unknown option - #POSITIONAL+=("$1") # save it in an array for later - echo "unknown option $1" - print_the_help - shift # past argument - ;; - esac -done -set -- "${POSITIONAL[@]}" # restore positional parameters - -# assuming something like .local/bin/env.sh has already been sourced. -print_env.sh - -FILE_NAME_TAG="synchrotron" -DATA_URL="S3/eictest/ATHENA/EVGEN/SR/SR.10GeV_5kVthreshold_hepmc/25098.hepmc" - -export JUGGLER_MC_FILE="${LOCAL_DATA_PATH}/mc_${FILE_NAME_TAG}.hepmc" -export JUGGLER_SIM_FILE="${LOCAL_DATA_PATH}/sim_${FILE_NAME_TAG}.edm4hep.root" -export JUGGLER_REC_FILE="${LOCAL_DATA_PATH}/rec_${FILE_NAME_TAG}.root" - -echo "FILE_NAME_TAG = ${FILE_NAME_TAG}" -echo "JUGGLER_N_EVENTS = ${JUGGLER_N_EVENTS}" -echo "DETECTOR = ${DETECTOR}" - - -## To run the reconstruction, we need the following global variables: -## - DETECTOR: the detector package we want to use for this benchmark -## - DETECTOR_PATH: full path to the detector definitions - -## Step 1. Get the data -if [[ -n "${DATA_INIT}" || -n "${DO_ALL}" ]] ; then - mc -C . config host add S3 https://eics3.sdcc.bnl.gov:9000 $S3_ACCESS_KEY $S3_SECRET_KEY - set +o pipefail - mc -C . head -n $((2+5*${JUGGLER_N_EVENTS})) --insecure ${DATA_URL} | sanitize_hepmc3 > ${JUGGLER_MC_FILE} - if [[ "$?" -ne "0" ]] ; then - echo "Failed to download hepmc files" - exit 1 - fi -fi - -### Step 2. Run the simulation (geant4) -if [[ -n "${DO_SIM}" || -n "${DO_ALL}" ]] ; then - ## run geant4 simulations - ddsim --runType batch \ - --part.minimalKineticEnergy 1000*GeV \ - --filter.tracker edep0 \ - -v ERROR \ - --numberOfEvents ${JUGGLER_N_EVENTS} \ - --compactFile ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml \ - --inputFiles ${JUGGLER_MC_FILE} \ - --outputFile ${JUGGLER_SIM_FILE} - if [[ "$?" -ne "0" ]] ; then - echo "ERROR running ddsim" - exit 1 - fi -fi - -### Step 3. Run the reconstruction (eicrecon) -if [[ -n "${DO_REC}" || -n "${DO_ALL}" ]] ; then - if [ ${RECO} == "eicrecon" ] ; then - eicrecon ${JUGGLER_SIM_FILE} -Ppodio:output_file=${JUGGLER_REC_FILE} - if [[ "$?" -ne "0" ]] ; then - echo "ERROR running eicrecon" - exit 1 - fi - fi - - if [[ ${RECO} == "juggler" ]] ; then - gaudirun.py options/reconstruction.py || [ $? -eq 4 ] - if [ "$?" -ne "0" ] ; then - echo "ERROR running juggler" - exit 1 - fi - fi - - root_filesize=$(stat --format=%s "${JUGGLER_REC_FILE}") - if [[ "${JUGGLER_N_EVENTS}" -lt "500" ]] ; then - # file must be less than 10 MB to upload - if [[ "${root_filesize}" -lt "10000000" ]] ; then - cp ${JUGGLER_REC_FILE} results/. - fi - fi -fi - -### Step 4. Run the analysis code -if [[ -n "${DO_ANA}" || -n "${DO_ALL}" ]] ; then - echo "Running analysis scripts" - rootls -t ${JUGGLER_REC_FILE} - - # Store all plots here (preferribly png and pdf files) - mkdir -p results/synchrotron - - # here you can add as many scripts as you want. - root -b -q "benchmarks/backgrounds/analysis/synchrotron_sim.cxx+(\"${JUGGLER_SIM_FILE}\")" - if [[ "$?" -ne "0" ]] ; then - echo "ERROR running root script" - exit 1 - fi - - root -b -q "benchmarks/backgrounds/analysis/synchrotron_raw.cxx+(\"${JUGGLER_REC_FILE/.root/.raw.root}\")" - if [[ "$?" -ne "0" ]] ; then - echo "ERROR running root script" - exit 1 - fi -fi - - -