25 const double* eigenValues,
28 const double aveHitDoca,
46 o << std::setiosflags(std::ios::fixed) << std::setprecision(2);
47 o <<
" PCAxis ID " << a.
fID <<
" run with " << a.
fNumHitsUsed <<
" space points" << std::endl;
48 o <<
" - center position: " << std::setw(6) << a.
fAvePosition[0] <<
", " 52 o <<
" - average doca: " << a.
fAveHitDoca << std::endl;
53 o <<
" - Principle axis: " << std::setw(7) << std::setprecision(4) << a.
fEigenVectors[0][0]
55 o <<
" - second axis: " << std::setw(7) << std::setprecision(4) << a.
fEigenVectors[1][0]
57 o <<
" - third axis: " << std::setw(7) << std::setprecision(4) << a.
fEigenVectors[2][0]
61 o <<
" Principal Components Axis is not valid" << std::endl;
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
bool fSvdOK
SVD Decomposition was successful.
Reconstruction base classes.
friend bool operator<(const PCAxis &a, const PCAxis &b)
double fEigenValues[3]
Eigen values from SVD decomposition.
friend std::ostream & operator<<(std::ostream &o, const PCAxis &a)
EigenVectors fEigenVectors
The three principle axes.
int fNumHitsUsed
Number of hits in the decomposition.
double fAveHitDoca
Average doca of hits used in PCA.
double fAvePosition[3]
Average position of hits fed to PCA.
std::vector< std::vector< double > > EigenVectors