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.