EDM4eic
EIC data model
Loading...
Searching...
No Matches
Cov4f.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EDM4EIC_Cov4f_H
4#define EDM4EIC_Cov4f_H
5
6#include <ostream>
7
8#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
9#include "nlohmann/json_fwd.hpp"
10#endif
11
12namespace edm4eic {
13
14
15/** @class Cov4f
16 *
17 * @author:
18 */
19class Cov4f {
20public:
21 float xx{};
22 float yy{};
23 float zz{};
24 float tt{};
25 float xy{};
26 float xz{};
27 float xt{};
28 float yz{};
29 float yt{};
30 float zt{};
31
32 Cov4f() : xx{0}, yy{0}, zz{0}, tt{0}, xy{0}, xz{0}, xt{0}, yz{0}, yt{0}, zt{0} {}
33 Cov4f(double vx, double vy, double vz, double vt,
34 double vxy = 0, double vxz = 0, double vxt = 0,
35 double vyz = 0, double vyt = 0, double vzt = 0)
36 : xx{static_cast<float>(vx)}, yy{static_cast<float>(vy)}, zz{static_cast<float>(vz)}, tt{static_cast<float>(vt)},
37 xy{static_cast<float>(vxy)}, xz{static_cast<float>(vxz)}, xt{static_cast<float>(vxt)},
38 yz{static_cast<float>(vyz)}, yt{static_cast<float>(vyt)}, zt{static_cast<float>(vzt)} {}
39 float operator()(unsigned i, unsigned j) const {
40 // diagonal
41 if (i == j) {
42 return *(&xx + i);
43 // off-diagonal, can probably be done with less if statements
44 } else {
45 if (i > j) {
46 std::swap(i,j);
47 }
48 if (i == 0) {
49 return *(&xy + j - 1);
50 } else if (i == 1) {
51 return *(&yz + j - 2);
52 } else {
53 return zt;
54 }
55 }
56 }
57
58
59};
60
61std::ostream& operator<<(std::ostream& o, const Cov4f& value);
62
63#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
64void to_json(nlohmann::json& j, const Cov4f& value);
65#endif
66
67namespace v850 {
69} // namespace v850
70
71
72} // namespace edm4eic
73
74
75#endif
Definition Cov4f.h:19
float yz
Definition Cov4f.h:28
float yt
Definition Cov4f.h:29
float xy
Definition Cov4f.h:25
float zz
Definition Cov4f.h:23
Cov4f(double vx, double vy, double vz, double vt, double vxy=0, double vxz=0, double vxt=0, double vyz=0, double vyt=0, double vzt=0)
Definition Cov4f.h:33
float xz
Definition Cov4f.h:26
float operator()(unsigned i, unsigned j) const
Definition Cov4f.h:39
Cov4f()
Definition Cov4f.h:32
float yy
Definition Cov4f.h:22
float zt
Definition Cov4f.h:30
float xt
Definition Cov4f.h:27
float tt
Definition Cov4f.h:24
float xx
Definition Cov4f.h:21
edm4eic::Cov4f Cov4f
Definition Cov4f.h:68
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:99