EDM4eic
EIC data model
Loading...
Searching...
No Matches
Cov3f.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EDM4EIC_Cov3f_H
4#define EDM4EIC_Cov3f_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 Cov3f
16 *
17 * @author:
18 */
19class Cov3f {
20public:
21 float xx{};
22 float yy{};
23 float zz{};
24 float xy{};
25 float xz{};
26 float yz{};
27
28 Cov3f() : xx{0}, yy{0}, zz{0}, xy{0}, xz{0}, yz{0} {}
29 Cov3f(double vx, double vy, double vz, double vxy = 0, double vxz = 0, double vyz = 0)
30 : xx{static_cast<float>(vx)}, yy{static_cast<float>(vy)}, zz{static_cast<float>(vz)},
31 xy{static_cast<float>(vxy)}, xz{static_cast<float>(vxz)}, yz{static_cast<float>(vyz)} {}
32 float operator()(unsigned i, unsigned j) const {
33 // diagonal
34 if (i == j) {
35 return *(&xx + i);
36 }
37 // off-diagonal
38 // we have as options (0, 1), (0, 2) and (1, 2) (and mirrored)
39 // note that, starting from xy, we find the correct element at (i+j-1)
40 return *(&xy + i + j - 1);
41 }
42
43
44};
45
46std::ostream& operator<<(std::ostream& o, const Cov3f& value);
47
48#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
49void to_json(nlohmann::json& j, const Cov3f& value);
50#endif
51
52namespace v850 {
54} // namespace v850
55
56
57} // namespace edm4eic
58
59
60#endif
Definition Cov3f.h:19
float yy
Definition Cov3f.h:22
float xy
Definition Cov3f.h:24
Cov3f()
Definition Cov3f.h:28
float operator()(unsigned i, unsigned j) const
Definition Cov3f.h:32
float xx
Definition Cov3f.h:21
float yz
Definition Cov3f.h:26
float xz
Definition Cov3f.h:25
Cov3f(double vx, double vy, double vz, double vxy=0, double vxz=0, double vyz=0)
Definition Cov3f.h:29
float zz
Definition Cov3f.h:23
edm4eic::Cov3f Cov3f
Definition Cov3f.h:53
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:99