11#include <framework/geometry/B2Vector3.h>
14#include <CLHEP/Geometry/Point3D.h>
15#include <CLHEP/Matrix/SymMatrix.h>
16#include <CLHEP/Vector/LorentzVector.h>
17#include <Math/Vector3D.h>
18#include <Math/Vector4D.h>
19#include <TMatrixFSym.h>
20#include <TMatrixDSym.h>
28 namespace ROOTToCLHEP {
34 inline CLHEP::HepLorentzVector
35 getHepLorentzVector(
const ROOT::Math::PxPyPzEVector& vector)
37 return CLHEP::HepLorentzVector(vector.X(), vector.Y(), vector.Z(),
45 inline HepGeom::Point3D<double> getPoint3DFromB2Vector(
const B2Vector3D& vector)
47 return HepGeom::Point3D<double>(vector.X(), vector.Y(), vector.Z());
54 inline HepGeom::Point3D<double> getPoint3D(
const ROOT::Math::XYZVector& vector)
56 return HepGeom::Point3D<double>(vector.X(), vector.Y(), vector.Z());
63 inline CLHEP::HepSymMatrix getHepSymMatrix(
const TMatrixFSym& matrix)
65 int n = matrix.GetNrows();
66 CLHEP::HepSymMatrix m(n);
71 for (
int i = 0; i < n; ++i) {
72 for (
int j = 0; j <= i; ++j)
73 m[i][j] = matrix[i][j];
82 inline CLHEP::HepSymMatrix getHepSymMatrix(
const TMatrixDSym& matrix)
84 int n = matrix.GetNrows();
85 CLHEP::HepSymMatrix m(n);
90 for (
int i = 0; i < n; ++i) {
91 for (
int j = 0; j <= i; ++j)
92 m[i][j] = matrix[i][j];
B2Vector3< double > B2Vector3D
typedef for common usage with double
Abstract base class for different kinds of events.