Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 10:12:02

0001 // AUTOMATICALLY GENERATED FILE - DO NOT EDIT
0002 
0003 #ifndef EDM4EIC_Cov4f_H
0004 #define EDM4EIC_Cov4f_H
0005 
0006 #include <ostream>
0007 
0008 #if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
0009 #include "nlohmann/json_fwd.hpp"
0010 #endif
0011 
0012 namespace edm4eic {
0013 
0014 
0015 /** @class Cov4f
0016  *  
0017  *  @author: 
0018  */
0019 class Cov4f {
0020 public:
0021   float xx{};
0022   float yy{};
0023   float zz{};
0024   float tt{};
0025   float xy{};
0026   float xz{};
0027   float xt{};
0028   float yz{};
0029   float yt{};
0030   float zt{};
0031 
0032  Cov4f() : xx{0}, yy{0}, zz{0}, tt{0}, xy{0}, xz{0}, xt{0}, yz{0}, yt{0}, zt{0} {}
0033  Cov4f(double vx, double vy, double vz, double vt,
0034  double vxy = 0, double vxz = 0, double vxt = 0,
0035  double vyz = 0, double vyt = 0, double vzt = 0)
0036  : xx{static_cast<float>(vx)}, yy{static_cast<float>(vy)}, zz{static_cast<float>(vz)}, tt{static_cast<float>(vt)},
0037  xy{static_cast<float>(vxy)}, xz{static_cast<float>(vxz)}, xt{static_cast<float>(vxt)},
0038  yz{static_cast<float>(vyz)}, yt{static_cast<float>(vyt)}, zt{static_cast<float>(vzt)} {}
0039  float operator()(unsigned i, unsigned j) const {
0040  // diagonal
0041  if (i == j) {
0042  return *(&xx + i);
0043  // off-diagonal, can probably be done with less if statements 
0044  } else {
0045  if (i > j) { 
0046  std::swap(i,j); 
0047  } 
0048  if (i == 0) { 
0049  return *(&xy + j - 1); 
0050  } else if (i == 1) { 
0051  return *(&yz + j - 2); 
0052  } else { 
0053  return zt; 
0054  } 
0055  } 
0056  }
0057  
0058 
0059 };
0060 
0061 std::ostream& operator<<(std::ostream& o, const Cov4f& value);
0062 
0063 #if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
0064 void to_json(nlohmann::json& j, const Cov4f& value);
0065 #endif
0066 
0067 namespace v850 {
0068 using Cov4f = edm4eic::Cov4f;
0069 } // namespace v850
0070 
0071 
0072 } // namespace edm4eic
0073 
0074 
0075 #endif