From f3f8708ae2ef4e31448afaae7a00f2f294a950e8 Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wdconinc@gmail.com>
Date: Thu, 7 Sep 2023 02:12:21 +0000
Subject: [PATCH] feat: support EDM4eic v3 TrackPoint

---
 JugTrack/src/components/TrackProjector.cpp             | 10 ++++++++++
 .../acts/include/algorithms/acts/TrackProjector.h      | 10 ++++++++++
 2 files changed, 20 insertions(+)

diff --git a/JugTrack/src/components/TrackProjector.cpp b/JugTrack/src/components/TrackProjector.cpp
index 8c57f553..b0cfaebf 100644
--- a/JugTrack/src/components/TrackProjector.cpp
+++ b/JugTrack/src/components/TrackProjector.cpp
@@ -22,6 +22,7 @@
 #include "Acts/EventData/MultiTrajectoryHelpers.hpp"
 
 // Event Model related classes
+#include "edm4eic/EDM4eicVersion.h"
 #include "edm4eic/TrackerHitCollection.h"
 #include "edm4eic/TrackParametersCollection.h"
 #include "edm4eic/TrajectoryCollection.h"
@@ -178,8 +179,17 @@ namespace Jug::Reco {
           const float pathLength = static_cast<float>(trackstate.pathLength());
           const float pathLengthError = 0;
 
+#if EDM4EIC_VERSION_MAJOR >= 3
+          uint64_t surface = 0; // trackstate.referenceSurface().geometryId().value(); FIXME - ASAN is not happy with this
+          uint32_t system = 0;
+#endif
+
           // Store track point
           track_segment.addToPoints({
+#if EDM4EIC_VERSION_MAJOR >= 3
+            surface,
+            system,
+#endif
             position,
             positionError,
             momentum,
diff --git a/external/algorithms/acts/include/algorithms/acts/TrackProjector.h b/external/algorithms/acts/include/algorithms/acts/TrackProjector.h
index 620e1d13..6c6ff9f3 100644
--- a/external/algorithms/acts/include/algorithms/acts/TrackProjector.h
+++ b/external/algorithms/acts/include/algorithms/acts/TrackProjector.h
@@ -22,6 +22,7 @@
 #include "Acts/EventData/MultiTrajectoryHelpers.hpp"
 
 // Event Model related classes
+#include "edm4eic/EDM4eicVersion.h"
 #include "edm4eic/TrackerHitCollection.h"
 #include "edm4eic/TrackParametersCollection.h"
 #include "edm4eic/TrajectoryCollection.h"
@@ -179,8 +180,17 @@ namespace Jug::Reco {
           const float pathLength = static_cast<float>(trackstate.pathLength());
           const float pathLengthError = 0;
 
+#if EDM4EIC_VERSION_MAJOR >= 3
+          uint64_t surface = 0; // trackstate.referenceSurface().geometryId().value(); FIXME - ASAN is not happy with this
+          uint32_t system = 0;
+#endif
+
           // Store track point
           track_segment.addToPoints({
+#if EDM4EIC_VERSION_MAJOR >= 3
+            surface,
+            system,
+#endif
             position,
             positionError,
             momentum,
-- 
GitLab