#include <AutocorrelationAnalyzer.h>
Public Member Functions | |
template<class T > | |
void | analyze (const T &t) |
AutocorrelationAnalyzer (int size) | |
double | correlation (int i, int j) |
double | covariance (int i, int j) |
double | mean (int i) |
indexing starts from 0 | |
Private Member Functions | |
void | calculate () |
Private Attributes | |
bool | calculated_ |
CLHEP::HepSymMatrix | theCorrelations |
CLHEP::HepSymMatrix | theCovariances |
CLHEP::HepVector | theMeans |
int | theNTotal |
int | theSize |
Friends | |
std::ostream & | operator<< (std::ostream &os, AutocorrelationAnalyzer &aa) |
This class accepts objects which support the [] operator, such as a digi or a vector, and calculates the correlation matrix between the components Rick Wilkinson, Fedor Ratnikov
Definition at line 15 of file AutocorrelationAnalyzer.h.
AutocorrelationAnalyzer::AutocorrelationAnalyzer | ( | int | size | ) | [explicit] |
Definition at line 5 of file AutocorrelationAnalyzer.cc.
: theSize(size), theNTotal(0), theMeans(size, 0), theCovariances(theSize, 0), theCorrelations(theSize, 0), calculated_(false) { }
void AutocorrelationAnalyzer::analyze | ( | const T & | t | ) | [inline] |
Definition at line 26 of file AutocorrelationAnalyzer.h.
References theCovariances, theMeans, theNTotal, and theSize.
void AutocorrelationAnalyzer::calculate | ( | ) | [private] |
Definition at line 41 of file AutocorrelationAnalyzer.cc.
References calculated_, gen::k, mathSSE::sqrt(), theCorrelations, theCovariances, theMeans, theNTotal, and theSize.
Referenced by correlation(), covariance(), mean(), and operator<<().
{ for(int k = 0; k < theSize; ++k) { theMeans[k] /= theNTotal; for (int kk = k; kk < theSize; kk++) { theCovariances[k][kk] /= theNTotal; } } for (int k = 0; k < theSize; k++) { for (int kk = k; kk < theSize; kk++) { theCorrelations[k][kk] = theCovariances[k][kk] / sqrt (theCovariances[k][k]*theCovariances[kk][kk]); } } calculated_ = true; }
double AutocorrelationAnalyzer::correlation | ( | int | i, |
int | j | ||
) |
Definition at line 32 of file AutocorrelationAnalyzer.cc.
References calculate(), calculated_, theCorrelations, and theSize.
{ if(!calculated_) calculate(); assert(i<=theSize && j<=theSize); return theCorrelations(i+1,j+1); }
double AutocorrelationAnalyzer::covariance | ( | int | i, |
int | j | ||
) |
Definition at line 24 of file AutocorrelationAnalyzer.cc.
References calculate(), calculated_, theCovariances, and theSize.
{ if(!calculated_) calculate(); assert(i<=theSize && j<=theSize); return theCovariances(i+1,j+1); }
double AutocorrelationAnalyzer::mean | ( | int | i | ) |
indexing starts from 0
Definition at line 16 of file AutocorrelationAnalyzer.cc.
References calculate(), calculated_, i, theMeans, and theSize.
std::ostream& operator<< | ( | std::ostream & | os, |
AutocorrelationAnalyzer & | aa | ||
) | [friend] |
Definition at line 65 of file AutocorrelationAnalyzer.cc.
{ aa.calculate(); os << "Means: " << std::endl << aa.theMeans << std::endl; os << "Covariances: " << std::endl << aa.theCovariances << std::endl; os << "Correlations: " << std::endl << aa.theCorrelations << std::endl; return os; }
bool AutocorrelationAnalyzer::calculated_ [private] |
Definition at line 47 of file AutocorrelationAnalyzer.h.
Referenced by calculate(), correlation(), covariance(), and mean().
CLHEP::HepSymMatrix AutocorrelationAnalyzer::theCorrelations [private] |
Definition at line 46 of file AutocorrelationAnalyzer.h.
Referenced by calculate(), correlation(), and operator<<().
CLHEP::HepSymMatrix AutocorrelationAnalyzer::theCovariances [private] |
Definition at line 45 of file AutocorrelationAnalyzer.h.
Referenced by analyze(), calculate(), covariance(), and operator<<().
CLHEP::HepVector AutocorrelationAnalyzer::theMeans [private] |
Definition at line 44 of file AutocorrelationAnalyzer.h.
Referenced by analyze(), calculate(), mean(), and operator<<().
int AutocorrelationAnalyzer::theNTotal [private] |
Definition at line 43 of file AutocorrelationAnalyzer.h.
Referenced by analyze(), and calculate().
int AutocorrelationAnalyzer::theSize [private] |
Definition at line 42 of file AutocorrelationAnalyzer.h.
Referenced by analyze(), calculate(), correlation(), covariance(), and mean().