From 02e96b2fc07b36c3c74f2d04bfdcc979b0e9e6ca Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wdconinc@gmail.com>
Date: Mon, 21 Mar 2022 20:45:31 +0000
Subject: [PATCH] eic_data.yaml: static_casting constructors from double

---
 eic_data.yaml | 43 +++++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 20 deletions(-)

diff --git a/eic_data.yaml b/eic_data.yaml
index 6c5e5b4..136d9e7 100644
--- a/eic_data.yaml
+++ b/eic_data.yaml
@@ -28,9 +28,11 @@ components:
       - float b
     ExtraCode:
       declaration: "
-        Vector2f() : a(0),b(0) {}\n
-        Vector2f(float aa,float bb) : a(aa),b(bb) {}\n
-        Vector2f(const float* v) : a(v[0]), b(v[1]) {}\n
+        Vector2f() : a{0},b{0} {}\n
+        Vector2f(float aa, float bb) : a{aa},b{bb} {}\n
+        Vector2f(double aa, double bb)\n
+          : a{static_cast<float>(aa)},b{static_cast<float>(bb)} {}\n
+        Vector2f(const float* v) : a{v[0]}, b{v[1]} {}\n
         bool operator==(const Vector2f& v) const { return (a==v.a&&b==v.b) ; }\n
         float operator[](unsigned i) const { return *( &a + i ) ; }\n
         //Vector2f(const edm4hep::Vector2f& v) : a{v.a}, b{v.b} {}\n
@@ -48,9 +50,11 @@ components:
       - float z
     ExtraCode:
       declaration: "
-        Vector3f() : x(0),y(0),z(0) {}\n
-        Vector3f(float xx, float yy, float zz) : x(xx),y(yy),z(zz) {}\n
-        Vector3f(const float* v) : x(v[0]),y(v[1]),z(v[2]) {}\n
+        Vector3f() : x{0},y{0},z{0} {}\n
+        Vector3f(float xx, float yy, float zz) : x{xx},y{yy},z{zz} {}\n
+        Vector3f(double xx, double yy, double zz)\n
+          : x{static_cast<float>(xx)},y{static_cast<float>(yy)},z{static_cast<float>(zz)} {}\n
+        Vector3f(const float* v) : x{v[0]},y{v[1]},z{v[2]} {}\n
         bool operator==(const Vector3f& v) const { return (x==v.x&&y==v.y&&z==v.z) ; }\n
         float operator[](unsigned i) const { return *( &x + i ) ; }\n
         Vector3f(const edm4hep::Vector3f& v) : x{v.x}, y{v.y}, z{v.z} {}
@@ -67,9 +71,9 @@ components:
       - double z
     ExtraCode:
       declaration: "
-        Vector3d() : x(0),y(0),z(0) {}\n
-        Vector3d(double xx, double yy, double zz) : x(xx),y(yy),z(zz) {}\n
-        Vector3d(const double* v) : x(v[0]),y(v[1]),z(v[2]) {}\n
+        Vector3d() : x{0},y{0},z{0} {}\n
+        Vector3d(double xx, double yy, double zz) : x{xx},y{yy},z{zz} {}\n
+        Vector3d(const double* v) : x{v[0]},y{v[1]},z{v[2]} {}\n
         bool operator==(const Vector3d& v) const { return (x==v.x&&y==v.y&&z==v.z) ; }\n
         double operator[](unsigned i) const { return *( &x + i ) ; }\n
         Vector3d(const edm4hep::Vector3d& v) : x{v.x}, y{v.y}, z{v.z} {}
@@ -87,7 +91,8 @@ components:
     ExtraCode:
       declaration: "
         CovDiag3f() : xx{0}, yy{0}, zz{0} {}\n
-        CovDiag3f(double x, double y, double z) : xx{static_cast<float>(x)}, yy{static_cast<float>(y)}, zz{static_cast<float>(z)} {}\n
+        CovDiag3f(double x, double y, double z)\n
+          : xx{static_cast<float>(x)}, yy{static_cast<float>(y)}, zz{static_cast<float>(z)} {}\n
         float operator()(unsigned i, unsigned j) const {return (i == j) ? *(&xx + i) : 0.;}\n
         "
 
@@ -124,11 +129,9 @@ components:
     ExtraCode:
       declaration: "
         Cov3f() : xx{0}, yy{0}, zz{0}, xy{0}, xz{0}, yz{0} {}\n
-        Cov3f(double vx, double vy, double vz, double vxy, double vxz, double vyz)\n
+        Cov3f(double vx, double vy, double vz, double vxy = 0, double vxz = 0, double vyz = 0)\n
           : xx{static_cast<float>(vx)}, yy{static_cast<float>(vy)}, zz{static_cast<float>(vz)},\n
             xy{static_cast<float>(vxy)}, xz{static_cast<float>(vxz)}, yz{static_cast<float>(vyz)} {}\n
-        Cov3f(double vx, double vy, double vz)\n
-          : Cov3f(vx, vy, vz, 0, 0, 0) {} \n
         float operator()(unsigned i, unsigned j) const {\n
           // diagonal\n
           if (i == j) {\n
@@ -155,13 +158,13 @@ components:
       - float zt
     ExtraCode:
       declaration: "
-        Cov4f() : xx{0}, yy{0}, zz{0}, xy{0}, xz{0}, xt{0}, yz{0}, yt{0}, zt{0} {}\n
-        Cov4f(double vx, double vy, double vz, double vxy, double vxz, double vxt, double vyz, double vyt, double vzt)\n
-          : xx{static_cast<float>(vx)}, yy{static_cast<float>(vy)}, zz{static_cast<float>(vz)},\n
-            xy{static_cast<float>(vxy)}, xz{static_cast<float>(vxz)}, xt{static_cast<float>(vxt)},
+        Cov4f() : xx{0}, yy{0}, zz{0}, tt{0}, xy{0}, xz{0}, xt{0}, yz{0}, yt{0}, zt{0} {}\n
+        Cov4f(double vx, double vy, double vz, double vt,\n
+              double vxy = 0, double vxz = 0, double vxt = 0,\n
+              double vyz = 0, double vyt = 0, double vzt = 0)\n
+          : xx{static_cast<float>(vx)}, yy{static_cast<float>(vy)}, zz{static_cast<float>(vz)}, tt{static_cast<float>(vt)},\n
+            xy{static_cast<float>(vxy)}, xz{static_cast<float>(vxz)}, xt{static_cast<float>(vxt)},\n
             yz{static_cast<float>(vyz)}, yt{static_cast<float>(vyt)}, zt{static_cast<float>(vzt)} {}\n
-        Cov4f(double vx, double vy, double vz, double vt)\n
-          : Cov4f(vx, vy, vz, vt, 0, 0, 0, 0, 0) {} \n
         float operator()(unsigned i, unsigned j) const {\n
           // diagonal\n
           if (i == j) {\n
@@ -193,7 +196,7 @@ components:
       - float             timeError       // Error on the time at this point
       - float             theta           // polar direction of the track at the surface [rad]
       - float             phi             // azimuthal direction of the track at the surface [rad]
-      - eicd::Cov2f        directionError  // Error on the polar and azimuthal angles
+      - eicd::Cov2f       directionError  // Error on the polar and azimuthal angles
       - float             pathlength      // Pathlength from the origin to this point
       - float             pathlengthError // Error on the pathlenght
  
-- 
GitLab