diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5c30b61ea7bc79c3c5cd3f7308db2c725f255a45..8973e9a81fedf822a2669ecca30e7082510754ec 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 d5444920337f31192bcd1fb37ec15d9f76859497..21347be9428d80c592e17512c6f421b697c7d8e8 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 16f77c00ad35b07c49372180cc8b04284dc6793f..a319809f12de2daee06c7befd0b826927ef42bf0 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 5db97e3bb6db71b941b543aff8c966601d67ee5c..c03d7c5ff6d8bbcbc348378a07fd88c120ac6231 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 cb6adfdcb9e2084c8b9b692167166f3a0f4ac87c..29ee91f1964ad726b740f3ffcf2bb6dc8081badf 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 e9c43514376022a6841d6494af6104edbab095f9..493ae13a9703eee171b4fee241fed9e31d997259 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;