From 4eeaf1f12f4c2c78e6e220fccd71908e6f564aa4 Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wdconinc@gmail.com>
Date: Mon, 15 Aug 2022 18:51:14 +0000
Subject: [PATCH] fix: template instantiation for `vector_x<edm4hep::Vector2f>`

---
 utils/include/eicd/vector_utils_legacy.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/utils/include/eicd/vector_utils_legacy.h b/utils/include/eicd/vector_utils_legacy.h
index c0b341f..92d3898 100644
--- a/utils/include/eicd/vector_utils_legacy.h
+++ b/utils/include/eicd/vector_utils_legacy.h
@@ -8,6 +8,7 @@
 #else
 #include <cmath>
 
+#include <edm4hep/Vector2f.h>
 #include <edm4hep/Vector3f.h>
 #include <eicd/Vector2f.h>
 #include <eicd/Vector3f.h>
@@ -34,11 +35,24 @@ template <>
 inline auto vector_y<eicd::Vector2f>(const eicd::Vector2f& v) {
   return v.b;
 }
+// Vector2f uses a,b instead of x,y
+template <>
+inline auto vector_x<edm4hep::Vector2f>(const edm4hep::Vector2f& v) {
+  return v.a;
+}
+template <>
+inline auto vector_y<edm4hep::Vector2f>(const edm4hep::Vector2f& v) {
+  return v.b;
+}
 // no z-component for 2D vectors
 template <>
 inline auto vector_z<eicd::Vector2f>(const eicd::Vector2f& v) {
   return 0;
 }
+template <>
+inline auto vector_z<edm4hep::Vector2f>(const edm4hep::Vector2f& v) {
+  return 0;
+}
 
 // inline edm4hep::Vector2f VectorFromPolar(const double r, const double theta)
 // {
-- 
GitLab