12#include <CLHEP/Geometry/Point3D.h>
13#include <CLHEP/Matrix/SymMatrix.h>
14#include <CLHEP/Vector/LorentzVector.h>
15#include <Math/Vector3D.h>
16#include <Math/Vector4D.h>
17#include <TMatrixFSym.h>
18#include <TMatrixDSym.h>
26 namespace ROOTToCLHEP {
32 inline CLHEP::HepLorentzVector
33 getHepLorentzVector(
const ROOT::Math::PxPyPzEVector& vector)
35 return CLHEP::HepLorentzVector(vector.X(), vector.Y(), vector.Z(),
43 inline HepGeom::Point3D<double> getPoint3D(
const ROOT::Math::XYZVector& vector)
45 return HepGeom::Point3D<double>(vector.X(), vector.Y(), vector.Z());
52 inline CLHEP::HepSymMatrix getHepSymMatrix(
const TMatrixFSym& matrix)
54 int n = matrix.GetNrows();
55 CLHEP::HepSymMatrix m(n);
60 for (
int i = 0; i < n; ++i) {
61 for (
int j = 0; j <= i; ++j)
62 m[i][j] = matrix[i][j];
71 inline CLHEP::HepSymMatrix getHepSymMatrix(
const TMatrixDSym& matrix)
73 int n = matrix.GetNrows();
74 CLHEP::HepSymMatrix m(n);
79 for (
int i = 0; i < n; ++i) {
80 for (
int j = 0; j <= i; ++j)
81 m[i][j] = matrix[i][j];
Abstract base class for different kinds of events.