From ceab5b10f949b5ce2e7e4f8477dd0e059176f8cb Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wdconinc@gmail.com>
Date: Tue, 22 Feb 2022 13:49:31 -0600
Subject: [PATCH] Compile far_forward, correct collection lists

---
 .../analysis/hits_far_forward_protons.cxx     |  2 +-
 benchmarks/far_forward/config.yml             | 15 +++++----
 .../options/far_forward_reconstruction.py     | 32 ++++++++++---------
 3 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/benchmarks/far_forward/analysis/hits_far_forward_protons.cxx b/benchmarks/far_forward/analysis/hits_far_forward_protons.cxx
index 374f5861..976ad546 100644
--- a/benchmarks/far_forward/analysis/hits_far_forward_protons.cxx
+++ b/benchmarks/far_forward/analysis/hits_far_forward_protons.cxx
@@ -106,7 +106,7 @@ int hits_far_forward_protons(const char* fname = "sim_far_forward_protons.edm4he
                  //.Define("delta_p_over_p2",delta_p_over_p, {"p_track2", "p_thrown"})
                  //.Define("N_VtxBarrelHits",[](std::vector<eic::TrackerHitData> hits) { return hits.size();},{"VertexBarrelRecHits"})
                  .Define("N_BarrelHits", [](std::vector<edm4hep::SimTrackerHitData> hits) { return hits.size();}, {"TrackerBarrelHits"})
-                 .Define("N_EndcapHits", [](std::vector<edm4hep::SimTrackerHitData> hits) { return hits.size();}, {"TrackerEndcapHits"})
+                 .Define("N_EndcapHits", [](std::vector<edm4hep::SimTrackerHitData> hits) { return hits.size();}, {"TrackerEndcapHits1"})
                  ;
 
   auto hBarrel_x_vs_y = df0.Histo2D({"hBarrel_x_vs_y", "; x ; y ",   100, -900, 900,100, -900, 900 }, "TrackerBarrelHits.position.x", "TrackerBarrelHits.position.y");
diff --git a/benchmarks/far_forward/config.yml b/benchmarks/far_forward/config.yml
index 81dda471..b965eaf6 100644
--- a/benchmarks/far_forward/config.yml
+++ b/benchmarks/far_forward/config.yml
@@ -1,23 +1,26 @@
+far_forward:compile:
+  stage: compile
+  extends: .compile_benchmark
+  script:
+    - compile_analyses.py far_forward
+
 B0_far_forward_protons:
   extends: .rec_benchmark
   stage: run
-  timeout: 24 hours
+  needs: ["far_forward:compile"]
   script:
-    - compile_analyses.py far_forward
     - bash benchmarks/far_forward/far_forward_protons.sh
 
 ZDC_far_forward_neutrons:
   extends: .rec_benchmark
   stage: run
-  timeout: 24 hours
+  needs: ["far_forward:compile"]
   script:
-    - compile_analyses.py far_forward
     - bash benchmarks/far_forward/run_zdc_neutrons.sh
 
 ZDC_far_forward_photons:
   extends: .rec_benchmark
   stage: run
-  timeout: 24 hours
+  needs: ["far_forward:compile"]
   script:
-    - compile_analyses.py far_forward
     - bash benchmarks/far_forward/run_zdc_photons.sh
diff --git a/benchmarks/far_forward/options/far_forward_reconstruction.py b/benchmarks/far_forward/options/far_forward_reconstruction.py
index 78f4c8b4..7aef3b7d 100644
--- a/benchmarks/far_forward/options/far_forward_reconstruction.py
+++ b/benchmarks/far_forward/options/far_forward_reconstruction.py
@@ -33,15 +33,23 @@ from Configurables import Jug__Reco__TrackerHitReconstruction as TrackerHitRecon
 
 sim_colls = [
     "MCParticles",
-    "B0TrackerHits",
+    "B0TrackerHits"
+]
+
+ffi_romanpot_collections = [
     "ForwardRomanPotHits1",
-    "ForwardRomanPotHits2",
+    "ForwardRomanPotHits2"
+]
+
+ffi_offmtracker_collections = [
     "ForwardOffMTrackerHits1",
     "ForwardOffMTrackerHits2",
     "ForwardOffMTrackerHits3",
     "ForwardOffMTrackerHits4"
 ]
 
+sim_colls += ffi_romanpot_collections + ffi_offmtracker_collections
+
 # list of algorithms
 algorithms = []
 
@@ -51,13 +59,11 @@ algorithms.append(podin)
 
 ## Roman pots
 ffi_romanpot_coll = SimTrackerHitsCollector("ffi_romanpot_coll",
-        inputSimTrackerHits = [
-                "ForwardRomanPotHits1",
-                "ForwardRomanPotHits2"],
-        outputSimTrackerHits = "ForwardRomanPotHits")
+        inputSimTrackerHits = ffi_romanpot_collections,
+        outputSimTrackerHits = "ForwardRomanPotAllHits")
 algorithms.append(ffi_romanpot_coll)
 ffi_romanpot_digi = TrackerDigi("ffi_romanpot_digi",
-        inputHitCollection = "ForwardRomanPotHits",
+        inputHitCollection = ffi_romanpot_coll.outputSimTrackerHits,
         outputHitCollection = "ForwardRomanPotRawHits",
         timeResolution = 8)
 algorithms.append(ffi_romanpot_digi)
@@ -74,15 +80,11 @@ algorithms.append(ffi_romanpot_parts)
 
 ## Off momentum tracker
 ffi_offmtracker_coll = SimTrackerHitsCollector("ffi_offmtracker_coll",
-        inputSimTrackerHits = [
-                "ForwardOffMTrackerHits1",
-                "ForwardOffMTrackerHits2",
-                "ForwardOffMTrackerHits3",
-                "ForwardOffMTrackerHits4"],
-        outputSimTrackerHits = "ForwardOffMTrackerHits")
-algorithms.append(ffi_romanpot_coll)
+        inputSimTrackerHits = ffi_offmtracker_collections,
+        outputSimTrackerHits = "ForwardOffMTrackerAllHits")
+algorithms.append(ffi_offmtracker_coll)
 ffi_offmtracker_digi = TrackerDigi("ffi_offmtracker_digi",
-        inputHitCollection = "ForwardOffMTrackerHits",
+        inputHitCollection = ffi_offmtracker_coll.outputSimTrackerHits,
         outputHitCollection = "ForwardOffMTrackerRawHits",
         timeResolution = 8)
 algorithms.append(ffi_offmtracker_digi)
-- 
GitLab