From 25b5c2169b354aed8df6d38e4b5f6acb4051706a Mon Sep 17 00:00:00 2001 From: Wouter Deconinck <wouter.deconinck@umanitoba.ca> Date: Fri, 3 Sep 2021 20:14:27 +0000 Subject: [PATCH] Additional far forward benchmarks --- .gitlab-ci.yml | 2 +- benchmarks/{B0 => far_forward}/config.yml | 2 +- .../far_forward_protons.sh | 13 ++-- .../options/far_forward_reconstruction.py} | 63 ++++++++++++++----- .../scripts/gen_far_forward_protons.cxx | 0 .../scripts/hits_far_forward_protons.cxx | 16 ++--- .../scripts/rec_far_forward_protons.cxx | 28 ++++----- 7 files changed, 81 insertions(+), 43 deletions(-) rename benchmarks/{B0 => far_forward}/config.yml (62%) rename benchmarks/{B0 => far_forward}/far_forward_protons.sh (85%) rename benchmarks/{B0/options/B0_tracker_reconstruction.py => far_forward/options/far_forward_reconstruction.py} (68%) rename benchmarks/{B0 => far_forward}/scripts/gen_far_forward_protons.cxx (100%) rename benchmarks/{B0 => far_forward}/scripts/hits_far_forward_protons.cxx (91%) rename benchmarks/{B0 => far_forward}/scripts/rec_far_forward_protons.cxx (88%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5c30b61e..8973e9a8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -71,7 +71,7 @@ include: # - local: 'benchmarks/rich/config.yml' - local: 'benchmarks/imaging_ecal/config.yml' - local: 'benchmarks/imaging_shower_ML/config.yml' - - local: 'benchmarks/B0/config.yml' + - local: 'benchmarks/far_forward/config.yml' final_report: stage: finish diff --git a/benchmarks/B0/config.yml b/benchmarks/far_forward/config.yml similarity index 62% rename from benchmarks/B0/config.yml rename to benchmarks/far_forward/config.yml index d5444920..21347be9 100644 --- a/benchmarks/B0/config.yml +++ b/benchmarks/far_forward/config.yml @@ -3,4 +3,4 @@ B0_far_forward_protons: stage: run timeout: 24 hours script: - - bash benchmarks/B0/far_forward_protons.sh + - bash benchmarks/far_forward/far_forward_protons.sh diff --git a/benchmarks/B0/far_forward_protons.sh b/benchmarks/far_forward/far_forward_protons.sh similarity index 85% rename from benchmarks/B0/far_forward_protons.sh rename to benchmarks/far_forward/far_forward_protons.sh index 16f77c00..a319809f 100644 --- a/benchmarks/B0/far_forward_protons.sh +++ b/benchmarks/far_forward/far_forward_protons.sh @@ -70,7 +70,7 @@ if [[ -z "${REC_ONLY}" && -z "${ANALYSIS_ONLY}" ]] ; then ## generate the input events - root -b -q "benchmarks/B0/scripts/gen_far_forward_protons.cxx(${JUGGLER_N_EVENTS}, \"${JUGGLER_FILE_NAME_TAG}.hepmc\")" + root -b -q "benchmarks/far_forward/scripts/gen_far_forward_protons.cxx(${JUGGLER_N_EVENTS}, \"${JUGGLER_FILE_NAME_TAG}.hepmc\")" if [[ "$?" -ne "0" ]] ; then echo "ERROR running script" exit 1 @@ -96,22 +96,25 @@ rootls -t ${JUGGLER_SIM_FILE} if [[ -z "${ANALYSIS_ONLY}" ]] ; then # Need to figure out how to pass file name to juggler from the commandline - xenv -x ${JUGGLER_INSTALL_PREFIX}/Juggler.xenv gaudirun.py benchmarks/B0/options/B0_tracker_reconstruction.py + xenv -x ${JUGGLER_INSTALL_PREFIX}/Juggler.xenv gaudirun.py benchmarks/far_forward/options/far_forward_reconstruction.py if [[ "$?" -ne "0" ]] ; then echo "ERROR running juggler" exit 1 fi fi -mkdir -p results/B0 +mkdir -p results/far_forward +mkdir -p results/far_forward/B0 +mkdir -p results/far_forward/RomanPot +mkdir -p results/far_forward/OffMTracker -root -b -q "benchmarks/B0/scripts/rec_far_forward_protons.cxx(\"${JUGGLER_REC_FILE}\")" +root -b -q "benchmarks/far_forward/scripts/rec_far_forward_protons.cxx(\"${JUGGLER_REC_FILE}\")" if [[ "$?" -ne "0" ]] ; then echo "ERROR running root script" exit 1 fi -root -b -q "benchmarks/B0/scripts/hits_far_forward_protons.cxx(\"${JUGGLER_SIM_FILE}\")" +root -b -q "benchmarks/far_forward/scripts/hits_far_forward_protons.cxx(\"${JUGGLER_SIM_FILE}\")" if [[ "$?" -ne "0" ]] ; then echo "ERROR running root script" exit 1 diff --git a/benchmarks/B0/options/B0_tracker_reconstruction.py b/benchmarks/far_forward/options/far_forward_reconstruction.py similarity index 68% rename from benchmarks/B0/options/B0_tracker_reconstruction.py rename to benchmarks/far_forward/options/far_forward_reconstruction.py index 5db97e3b..c03d7c5f 100644 --- a/benchmarks/B0/options/B0_tracker_reconstruction.py +++ b/benchmarks/far_forward/options/far_forward_reconstruction.py @@ -28,39 +28,77 @@ from Configurables import Jug__Reco__TrackFindingAlgorithm as TrackFindingAlgori from Configurables import Jug__Reco__ParticlesFromTrackFit as ParticlesFromTrackFit from Configurables import Jug__Base__InputCopier_dd4pod__Geant4ParticleCollection_dd4pod__Geant4ParticleCollection_ as MCCopier +from Configurables import Jug__Reco__TrackerHitReconstruction as TrackerHitReconstruction sim_colls = [ "mcparticles", - "B0TrackerHits" + "B0TrackerHits", + "ForwardRomanPotHits", + "ForwardOffMTrackerHits" ] + +# list of algorithms +algorithms = [] + +# input podin = PodioInput("PodioReader", collections=sim_colls) -podout = PodioOutput("out", filename=output_rec) +algorithms.append(podin) ## copiers to get around input --> output copy bug. Note the "2" appended to the output collection. mccopier = MCCopier("MCCopier", inputCollection="mcparticles", outputCollection="mcparticles2") - +algorithms.append(mccopier) + +## Roman pots +ffi_romanpot_digi = TrackerDigi("ffi_romanpot_digi", + inputHitCollection = "ForwardRomanPotHits", + outputHitCollection = "ForwardRomanPotRawHits", + timeResolution = 8) +algorithms.append(ffi_romanpot_digi) + +ffi_romanpot_reco = TrackerHitReconstruction("ffi_romanpot_reco", + inputHitCollection = ffi_romanpot_digi.outputHitCollection, + outputHitCollection = "ForwardRomanPotRecHits") +algorithms.append(ffi_romanpot_reco) + +## Off momentum tracker +ffi_offmtracker_digi = TrackerDigi("ffi_offmtracker_digi", + inputHitCollection = "ForwardOffMTrackerHits", + outputHitCollection = "ForwardOffMTrackerRawHits", + timeResolution = 8) +algorithms.append(ffi_offmtracker_digi) + +ffi_offmtracker_reco = TrackerHitReconstruction("ffi_offmtracker_reco", + inputHitCollection = ffi_offmtracker_digi.outputHitCollection, + outputHitCollection = "ForwardOffMTrackerRedHits") +algorithms.append(ffi_offmtracker_reco) + +## B0 tracker trk_b0_digi = TrackerDigi("trk_b0_digi", inputHitCollection="B0TrackerHits", outputHitCollection="B0TrackerRawHits", timeResolution=8) +algorithms.append(trk_b0_digi) trk_b0_reco = TrackerReco("trk_b_reco", inputHitCollection = trk_b0_digi.outputHitCollection, outputHitCollection="B0TrackerRecHits") +algorithms.append(trk_b0_reco) sourcelinker = TrackerSourcesLinker("trk_srcslnkr", - inputHitCollections=["B0TrackerRecHits"], + inputHitCollections=[trk_b0_reco.outputHitCollection], outputSourceLinks="B0TrackerSourceLinks", outputMeasurements="B0TrackerMeasurements", OutputLevel=INFO) +algorithms.append(sourcelinker) ## Track param init truth_trk_init = TrackParamTruthInit("truth_trk_init", inputMCParticles="mcparticles", outputInitialTrackParameters="InitTrackParams", OutputLevel=INFO) +algorithms.append(truth_trk_init) # Tracking algorithms trk_find_alg = TrackFindingAlgorithm("trk_find_alg", @@ -69,13 +107,17 @@ trk_find_alg = TrackFindingAlgorithm("trk_find_alg", inputInitialTrackParameters= truth_trk_init.outputInitialTrackParameters, outputTrajectories="trajectories", OutputLevel=INFO) +algorithms.append(trk_find_alg) parts_from_fit = ParticlesFromTrackFit("parts_from_fit", inputTrajectories=trk_find_alg.outputTrajectories, outputParticles="ReconstructedParticles", outputTrackParameters="outputTrackParameters", OutputLevel=INFO) +algorithms.append(parts_from_fit) +# output +podout = PodioOutput("out", filename=output_rec) podout.outputCommands = [ "keep *", "drop InitTrackParams", @@ -84,19 +126,12 @@ podout.outputCommands = [ "drop outputInitialTrackParameters", "drop mcparticles", ] +algorithms.append(podout) ApplicationMgr( - TopAlg = [podin, mccopier, - trk_b0_digi, - trk_b0_reco, - sourcelinker, - truth_trk_init, - trk_find_alg, - parts_from_fit, - podout - ], + TopAlg = algorithms, EvtSel = 'NONE', - EvtMax = n_events, + EvtMax = n_events, ExtSvc = [podioevent, geo_service], OutputLevel=WARNING ) diff --git a/benchmarks/B0/scripts/gen_far_forward_protons.cxx b/benchmarks/far_forward/scripts/gen_far_forward_protons.cxx similarity index 100% rename from benchmarks/B0/scripts/gen_far_forward_protons.cxx rename to benchmarks/far_forward/scripts/gen_far_forward_protons.cxx diff --git a/benchmarks/B0/scripts/hits_far_forward_protons.cxx b/benchmarks/far_forward/scripts/hits_far_forward_protons.cxx similarity index 91% rename from benchmarks/B0/scripts/hits_far_forward_protons.cxx rename to benchmarks/far_forward/scripts/hits_far_forward_protons.cxx index cb6adfdc..29ee91f1 100644 --- a/benchmarks/B0/scripts/hits_far_forward_protons.cxx +++ b/benchmarks/far_forward/scripts/hits_far_forward_protons.cxx @@ -139,8 +139,8 @@ int hits_far_forward_protons(const char* fname = "sim_far_forward_protons.root") //hs->Add(h1); hs->Draw("nostack, hist"); c->BuildLegend(); - c->SaveAs("results/B0/hits_far_forward_protons_n_hits_vs_theta.png"); - c->SaveAs("results/B0/hits_far_forward_protons_n_hits_vs_theta.pdf"); + c->SaveAs("results/far_forward/B0/hits_far_forward_protons_n_hits_vs_theta.png"); + c->SaveAs("results/far_forward/B0/hits_far_forward_protons_n_hits_vs_theta.pdf"); c = new TCanvas(); hs = new THStack("theta","; #theta "); @@ -161,8 +161,8 @@ int hits_far_forward_protons(const char* fname = "sim_far_forward_protons.root") //hs->Add(h1); hs->Draw("nostack hist"); c->BuildLegend(); - c->SaveAs("results/B0/hits_far_forward_protons_theta.png"); - c->SaveAs("results/B0/hits_far_forward_protons_theta.pdf"); + c->SaveAs("results/far_forward/B0/hits_far_forward_protons_theta.png"); + c->SaveAs("results/far_forward/B0/hits_far_forward_protons_theta.pdf"); c = new TCanvas(); hs = new THStack("hits","; hits "); @@ -179,12 +179,12 @@ int hits_far_forward_protons(const char* fname = "sim_far_forward_protons.root") //hs->Add(h1); //hs->Draw("nostack hist"); c->BuildLegend(); - c->SaveAs("results/B0/hits_far_forward_protons_nhits.png"); - c->SaveAs("results/B0/hits_far_forward_protons_nhits.pdf"); + c->SaveAs("results/far_forward/B0/hits_far_forward_protons_nhits.png"); + c->SaveAs("results/far_forward/B0/hits_far_forward_protons_nhits.pdf"); c = new TCanvas(); hBarrel_x_vs_y->DrawCopy("colz"); - c->SaveAs("results/B0/hits_far_forward_protons_xy.png"); - c->SaveAs("results/B0/hits_far_forward_protons_xy.pdf"); + c->SaveAs("results/far_forward/B0/hits_far_forward_protons_xy.png"); + c->SaveAs("results/far_forward/B0/hits_far_forward_protons_xy.pdf"); return 0; } diff --git a/benchmarks/B0/scripts/rec_far_forward_protons.cxx b/benchmarks/far_forward/scripts/rec_far_forward_protons.cxx similarity index 88% rename from benchmarks/B0/scripts/rec_far_forward_protons.cxx rename to benchmarks/far_forward/scripts/rec_far_forward_protons.cxx index e9c43514..493ae13a 100644 --- a/benchmarks/B0/scripts/rec_far_forward_protons.cxx +++ b/benchmarks/far_forward/scripts/rec_far_forward_protons.cxx @@ -130,12 +130,12 @@ int rec_far_forward_protons(const char* fname = "topside/rec_far_forward_protons auto c = new TCanvas(); h_nTracks->DrawCopy(); - c->SaveAs("results/B0/rec_far_forward_protons_nTracks.png"); - c->SaveAs("results/B0/rec_far_forward_protons_nTracks.pdf"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_nTracks.png"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_nTracks.pdf"); h_pTracks->DrawCopy(); - c->SaveAs("results/B0/rec_far_forward_protons_pTracks.png"); - c->SaveAs("results/B0/rec_far_forward_protons_pTracks.pdf"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_pTracks.png"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_pTracks.pdf"); c = new TCanvas(); THStack * hs = new THStack("hs_delta_p","; GeV/c "); @@ -151,8 +151,8 @@ int rec_far_forward_protons(const char* fname = "topside/rec_far_forward_protons //hs->Add(h1); hs->Draw("nostack"); c->BuildLegend(); - c->SaveAs("results/B0/rec_far_forward_protons_delta_p.png"); - c->SaveAs("results/B0/rec_far_forward_protons_delta_p.pdf"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_delta_p.png"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_delta_p.pdf"); c = new TCanvas(); hs = new THStack("hs_delta_p_over_p","; delta p/p "); @@ -168,8 +168,8 @@ int rec_far_forward_protons(const char* fname = "topside/rec_far_forward_protons //hs->Add(h1); hs->Draw("nostack"); c->BuildLegend(); - c->SaveAs("results/B0/rec_far_forward_protons_delta_p_over_p.png"); - c->SaveAs("results/B0/rec_far_forward_protons_delta_p_over_p.pdf"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_delta_p_over_p.png"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_delta_p_over_p.pdf"); c = new TCanvas(); hs = new THStack("n_hits","; #theta "); @@ -189,8 +189,8 @@ int rec_far_forward_protons(const char* fname = "topside/rec_far_forward_protons //hs->Add(h1); hs->Draw("nostack, hist"); c->BuildLegend(); - c->SaveAs("results/B0/rec_far_forward_protons_n_hits_vs_theta.png"); - c->SaveAs("results/B0/rec_far_forward_protons_n_hits_vs_theta.pdf"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_n_hits_vs_theta.png"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_n_hits_vs_theta.pdf"); c = new TCanvas(); hs = new THStack("theta","; #theta "); @@ -211,8 +211,8 @@ int rec_far_forward_protons(const char* fname = "topside/rec_far_forward_protons //hs->Add(h1); hs->Draw("nostack hist"); c->BuildLegend(); - c->SaveAs("results/B0/rec_far_forward_protons_theta.png"); - c->SaveAs("results/B0/rec_far_forward_protons_theta.pdf"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_theta.png"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_theta.pdf"); c = new TCanvas(); hs = new THStack("hits","; hits "); @@ -229,8 +229,8 @@ int rec_far_forward_protons(const char* fname = "topside/rec_far_forward_protons //hs->Add(h1); //hs->Draw("nostack hist"); c->BuildLegend(); - c->SaveAs("results/B0/rec_far_forward_protons_nhits.png"); - c->SaveAs("results/B0/rec_far_forward_protons_nhits.pdf"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_nhits.png"); + c->SaveAs("results/far_forward/B0/rec_far_forward_protons_nhits.pdf"); return 0; -- GitLab