Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JGEOMETRY3D::JEigenValues3D Struct Reference

Eigen values in 3D. More...

#include <JEigen3D.hh>

Inheritance diagram for JGEOMETRY3D::JEigenValues3D:
std::map< double, JVector3D, std::greater< double > >

Public Member Functions

template<class T >
 JEigenValues3D (T __begin, T __end)
 Constructor.
 

Detailed Description

Eigen values in 3D.

Definition at line 33 of file JEigen3D.hh.

Constructor & Destructor Documentation

◆ JEigenValues3D()

template<class T >
JGEOMETRY3D::JEigenValues3D::JEigenValues3D ( T __begin,
T __end )
inline

Constructor.

Parameters
__beginbegin of data
__endend of data

Definition at line 43 of file JEigen3D.hh.

45 {
46 const JCenter3D center(__begin, __end);
47
48 // RMS matrix
49
50 TMatrixDSym A(3);
51
52 A = 0.0;
53
54 for (T i = __begin; i != __end; ++i) {
55
56 const double dx = center.getX() - i->getX();
57 const double dy = center.getY() - i->getY();
58 const double dz = center.getZ() - i->getZ();
59
60 A(0,0) += (dx * dx);
61 A(0,1) += (dx * dy);
62 A(0,2) += (dx * dz);
63
64 A(1,1) += (dy * dy);
65 A(1,2) += (dy * dz);
66
67 A(2,2) += (dz * dz);
68 }
69
70 A(1,0) = A(0,1);
71 A(2,0) = A(0,2);
72 A(2,1) = A(1,2);
73
74 const TMatrixDSymEigen result(A);
75
76 const TVectorD& u = result.GetEigenValues();
77 const TMatrixD& V = result.GetEigenVectors();
78
79 for (Int_t i = 0; i != u.GetNoElements(); ++i) {
80 (*this)[u[i]] = JVector3D(V(0,i),
81 V(1,i),
82 V(2,i));
83 }
84 }

The documentation for this struct was generated from the following file: