27 TMatrixD::Allocate ( n,n );
28 for (
int i1=0; i1<
n; i1++ )
29 for (
int i2=0; i2<
n; i2++ ) {
30 TMatrixD::operator() ( i1,i2 ) =
init;
37 TMatrixD::Allocate ( v.GetNrows(),v.GetNcols() );
38 TMatrixD::operator= ( v );
43 TMatrixD::Allocate ( p.GetNrows(),p.GetNcols() );
44 TMatrixD::operator= ( p );
49 TMatrixD::ResizeTo ( v );
50 TMatrixD::operator= ( v );
56 TMatrixD::ResizeTo ( v );
57 TMatrixD::operator= ( v );
91 mat ( 0,0 ) =rot.XX();
92 mat ( 0,1 ) =rot.XY();
93 mat ( 0,2 ) =rot.XZ();
94 mat ( 1,0 ) =rot.YX();
95 mat ( 1,1 ) =rot.YY();
96 mat ( 1,2 ) =rot.YZ();
97 mat ( 2,0 ) =rot.ZX();
98 mat ( 2,1 ) =rot.ZY();
99 mat ( 2,2 ) =rot.ZZ();
107 mret.ResizeTo ( m1.GetNrows(),m1.GetNrows() );
115 mat ( 0,0 ) =rot.XX();
116 mat ( 0,1 ) =rot.XY();
117 mat ( 0,2 ) =rot.XZ();
118 mat ( 0,3 ) =rot.XT();
119 mat ( 1,0 ) =rot.YX();
120 mat ( 1,1 ) =rot.YY();
121 mat ( 1,2 ) =rot.YZ();
122 mat ( 1,3 ) =rot.YT();
123 mat ( 2,0 ) =rot.ZX();
124 mat ( 2,1 ) =rot.ZY();
125 mat ( 2,2 ) =rot.ZZ();
126 mat ( 2,3 ) =rot.ZT();
127 mat ( 3,0 ) =rot.TX();
128 mat ( 3,1 ) =rot.TY();
129 mat ( 3,2 ) =rot.TZ();
130 mat ( 3,3 ) =rot.TT();
142 assert ( GetNrows() == m1.GetNrows() );
144 temp.ResizeTo ( m1.GetNrows(),m1.GetNrows() );
145 temp.Mult ( m1,mat );
148 for (
int r = 0;
r < GetNrows();
r++ ) {
149 for (
int c = 0;
c <=
r;
c++ ) {
151 for (
int k = 0; k < m1.GetNcols(); k++ ) {
152 tmp += temp (
r,k ) *m1 (
c,k );
154 ( *this ) (
r,
c ) = tmp;
168 TMatrixD dMat ( diff.GetNrows(),diff.GetNrows() );
171 for (
int i = 0;
i < diff.GetNrows();
i++ ) { dMat (
i,0 ) = diff (
i ); }
181 out <<
"Bbr Covariance Matrix:";
190 while ( isspace ( nextChar ) ) {
193 in.putback ( nextChar );
195 if ( EOF != nextChar ) {
196 if ( !isdigit ( nextChar ) ) {
198 const int DUMMY_SIZE = 1000;
199 char dummy[DUMMY_SIZE];
200 in.getline ( dummy, DUMMY_SIZE );
203 for (
int row = 1;
row <= mat.GetNrows(); ++
row ) {
204 for (
int col = 1;
col <= mat.GetNcols(); ++
col ) {
267 TVectorD temp ( m1 );
274 for ( ; a<e; ) { mret += ( * ( a++ ) ) * ( * ( b++ ) ); }
281 mret.ResizeTo ( m1 );
282 TMatrixD::Mult ( *
this,m1 );
283 int n = m1.GetNcols();
285 Double_t* temp1r = &TMatrixD::operator() ( 0,0 );
286 for (
int r=1;
r<=mret.GetNrows();
r++ ) {
288 for (
int c=1;
c<=
r;
c++ ) {
292 for (
int i=1;
i<=m1.GetNrows();
i++ ) {
293 tmp+= ( * ( tempir ) ) * ( * ( m1ic ) );
RhoError operator-(const RhoError &m1, const RhoError &m2)
RhoError & SimilarityWith(const RhoError &m, const TMatrixD &m1)
Double_t DetermineChisq(TVectorD &diff)
std::ostream & operator<<(std::ostream &o, const PndEventInfo &a)
static const Double_t chisqUndef
RhoError operator+(const RhoError &m1, const RhoError &m2)
friend void operator*=(F32vec1 &a, const F32vec1 &b)
RhoError & operator*=(Double_t t)
TString m2(TString pts, TString exts="e px py pz")
RhoError operator*(Double_t t, const RhoError &m1)
TMatrixD SimilarityT(TMatrixD &m1)
RhoError(Int_t n, Double_t init=0.0)
RhoError Similarity(const TMatrixD &m1) const
TBuffer & operator>>(TBuffer &buf, PndAnaPidSelector *&obj)
RhoError & operator=(const RhoError &v)
TMatrixT< double > TMatrixD