![]() |
![]() |
#include <Alignment/CocoaFit/interface/MatrixMeschach.h>
Definition at line 24 of file MatrixMeschach.h.
MatrixMeschach::MatrixMeschach | ( | ) |
Definition at line 15 of file MatrixMeschach.cc.
Referenced by MatrixByMatrix(), operator *(), operator+(), and operator-().
Definition at line 28 of file MatrixMeschach.cc.
References _Mat, _NoColumns, and _NoLines.
00029 { 00030 //- std::cout << "creating matrix " << std::endl; 00031 _NoLines = NoLin; 00032 _NoColumns = NoCol; 00033 _Mat = m_get( NoLin, NoCol ); 00034 //_data = new ALIdouble[NoCol][NoLin]; 00035 }
MatrixMeschach::MatrixMeschach | ( | const MatrixMeschach & | mat | ) |
Definition at line 39 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, copy(), NoColumns(), and NoLines().
00040 { 00041 //- std::cout << "creating matrixc " << std::endl; 00042 _NoLines = mat._Mat->m; 00043 _NoColumns = mat._Mat->n; 00044 _Mat = m_get( mat.NoLines(), mat.NoColumns() ); 00045 // std::cout << "copy const" << mat._Mat << _Mat << NoLines() << NoColumns() << Mat()->m << Mat()->n <<std::endl; 00046 copy( mat ); 00047 }
MatrixMeschach::~MatrixMeschach | ( | ) |
Definition at line 21 of file MatrixMeschach.cc.
References _Mat.
00022 { 00023 //- std::cout << "deleting matrix " << std::endl; 00024 M_FREE(_Mat); 00025 }
Definition at line 266 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, TestMuL1L2Filter_cff::cerr, lat::endl(), and exception.
Referenced by EliminateColumns(), EliminateLines(), Fit::FillMatricesWithCalibratedParameters(), Fit::FillMatricesWithMeasurements(), and SetCorrelation().
00267 { 00268 if ( lin >= _Mat->m || col >= _Mat->n ) { 00269 std::cerr << "EXITING: matrix has only " << _NoLines << " lines and " 00270 << _NoColumns << " columns " << std::endl; 00271 std::cerr << "EXITING: matrix has only " << _Mat->m << " lines and " 00272 << _Mat->n << " columns " << std::endl; 00273 std::cerr << " You tried to add data in line " << lin << " and column " 00274 << col << std::endl; 00275 std::exception(); 00276 } 00277 _Mat->me[lin][col] = data; 00278 00279 }
void MatrixMeschach::copy | ( | const MatrixMeschach & | mat | ) | [private] |
Definition at line 51 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, parsecf::pyparsing::col(), GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, lat::endl(), Mat(), MatNonConst(), NoColumns(), and NoLines().
Referenced by EliminateColumns(), EliminateLines(), MatrixMeschach(), and operator=().
00052 { 00053 if( ALIUtils::debug >= 5) std::cout << "copy matrix" << mat._Mat << " " << _Mat << " L " << mat.NoLines() << " C " << mat.NoColumns() << " l " << mat.Mat()->m << " c " << mat.Mat()->n <<std::endl; 00054 00055 for( uint lin=0; lin < _NoLines; lin++ ) { 00056 for( uint col=0; col < _NoColumns; col++ ) { 00057 _Mat->me[lin][col] = mat.MatNonConst()->me[lin][col]; 00058 } 00059 } 00060 // m_copy( mat._Mat, _Mat ); 00061 }
Definition at line 359 of file MatrixMeschach.cc.
References GenMuonPlsPt100GeV_cfg::cout, and ostrDump().
Referenced by Fit::addDaMatrixToEntries(), EliminateColumns(), EliminateLines(), Fit::FillMatricesWithMeasurements(), Fit::getFitQuality(), Fit::GetSChi2(), Fit::multiplyMatrices(), and Fit::PropagateErrors().
Definition at line 326 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, AddData(), TestMuL1L2Filter_cff::cerr, copy(), GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, Dump(), lat::endl(), Mat(), NoColumns(), and NoLines().
00327 { 00328 //- return; 00329 if ( lin_last < lin_first ) { 00330 std::cerr << "EXITING: cannot Eliminate Lines in matrix if first line is " << 00331 lin_first << " and lastt line is " << lin_last << std::endl; 00332 //t std::exception(); 00333 return; 00334 } 00335 ALIint dif = (lin_last - lin_first) + 1; 00336 ALIint newANolin = NoLines(); 00337 ALIint newANocol = NoColumns() - dif; 00338 MatrixMeschach newmat( newANolin, newANocol ); 00339 ALIint jjn = 0; 00340 for ( ALIint jj=0; jj<NoColumns(); jj++) { 00341 if( jj < lin_first || jj > lin_last ) { 00342 for ( ALIint ii=0; ii<NoLines(); ii++) { 00343 newmat.AddData( ii, jjn, (*this)(ii,jj) ); 00344 if(ALIUtils::debug >= 9) std::cout << ii << jjn << "nmat" << newmat.Mat()->me[ii][jjn] << std::endl; 00345 } 00346 jjn++; 00347 } 00348 } 00349 M_FREE( _Mat ); 00350 _Mat = m_get( newANolin, newANocol ); 00351 copy( newmat ); 00352 _NoLines = _Mat->m; 00353 _NoColumns = _Mat->n; 00354 Dump( "newnewmat" ); 00355 }
Definition at line 292 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, AddData(), TestMuL1L2Filter_cff::cerr, copy(), GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, Dump(), lat::endl(), Mat(), NoColumns(), and NoLines().
00293 { 00294 //- return; 00295 if ( lin_last < lin_first ) { 00296 std::cerr << "EXITING: cannot Eliminate Lines in matrix if first line is " << 00297 lin_first << " and lastt line is " << lin_last << std::endl; 00298 //t std::exception(); 00299 return; 00300 } 00301 ALIint dif = (lin_last - lin_first) + 1; 00302 ALIint newANolin = NoLines() - dif; 00303 ALIint newANocol = NoColumns(); 00304 MatrixMeschach newmat( newANolin, newANocol ); 00305 ALIint iin = 0; 00306 for ( ALIint ii=0; ii<NoLines(); ii++) { 00307 if( ii < lin_first || ii > lin_last ) { 00308 for ( ALIint jj=0; jj<NoColumns(); jj++) { 00309 newmat.AddData(iin, jj, (*this)(ii,jj) ); 00310 if(ALIUtils::debug >= 9) std::cout << iin << jj << "nmat" << newmat.Mat()->me[iin][jj] << std::endl; 00311 } 00312 iin++; 00313 } 00314 } 00315 M_FREE( _Mat ); 00316 _Mat = m_get( newANolin, newANocol ); 00317 copy( newmat ); 00318 _NoLines = _Mat->m; 00319 _NoColumns = _Mat->n; 00320 Dump( "newnewmat" ); 00321 00322 }
void MatrixMeschach::inverse | ( | ) |
Definition at line 252 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, and lat::endl().
Referenced by Fit::multiplyMatrices(), and Fit::PropagateErrors().
00253 { 00254 if(ALIUtils::debug >= 9) std::cout << "inverse" << _NoLines << "C" << _NoColumns << std::endl; 00255 MAT* tempmat = m_get(_NoLines, _NoColumns); 00256 ALIdouble factor = 1000.; 00257 (*this) *= 1./factor; 00258 m_inverse( _Mat, tempmat ); 00259 m_copy( tempmat, _Mat ); 00260 (*this) *= 1./factor; 00261 M_FREE(tempmat); 00262 }
const MAT* MatrixMeschach::Mat | ( | ) | const [inline] |
Definition at line 61 of file MatrixMeschach.h.
References _Mat.
Referenced by copy(), Fit::dumpEntryAfterFit(), Fit::dumpEntryCorrelations(), EliminateColumns(), EliminateLines(), FittedEntriesSet::FillCorrelations(), FittedEntriesSet::FillEntries(), NtupleManager::FillFitParameters(), CocoaAnalyzer::GetOptAlignInfoFromOptO(), Fit::multiplyMatrices(), operator+(), and operator=().
00061 { 00062 return _Mat; 00063 }
MAT* MatrixMeschach::MatNonConst | ( | ) | const [inline] |
Definition at line 67 of file MatrixMeschach.h.
References _Mat.
Referenced by copy(), MatrixByMatrix(), operator *(), and Fit::PropagateErrors().
00067 { 00068 return _Mat; 00069 }
ALIint MatrixMeschach::NoColumns | ( | ) | const [inline] |
Definition at line 52 of file MatrixMeschach.h.
References _NoColumns.
Referenced by Fit::CheckIfMeasIsProportionalToAnother(), copy(), EliminateColumns(), EliminateLines(), MatrixByMatrix(), MatrixMeschach(), operator *(), operator *=(), operator+(), and operator=().
00052 { 00053 return _NoColumns; 00054 }
ALIint MatrixMeschach::NoLines | ( | ) | const [inline] |
Definition at line 49 of file MatrixMeschach.h.
References _NoLines.
Referenced by Fit::CheckIfFitPossible(), Fit::CheckIfMeasIsProportionalToAnother(), copy(), EliminateColumns(), EliminateLines(), MatrixByMatrix(), MatrixMeschach(), operator *(), operator *=(), operator+(), operator=(), and Fit::setCorrelationFromParamFitted().
00049 { 00050 return _NoLines; 00051 }
void MatrixMeschach::operator *= | ( | const MatrixMeschach & | mat | ) |
Definition at line 85 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, TestMuL1L2Filter_cff::cerr, GenMuonPlsPt100GeV_cfg::cout, lat::endl(), NoColumns(), and NoLines().
00086 { 00087 // std::cout << " multiply matrices " << std::endl; 00088 00089 if( _NoColumns != mat.NoLines() ){ 00090 std::cerr << " !! Trying two multiply two matrices when the number of columns of first one is not equal to number of files of second one " << std::endl; 00091 std::cout << " multiplying matrix " << _NoLines << " x " << _NoColumns << " and " << mat.NoLines() << " x " << mat.NoColumns() << " results in " << _NoLines << " x " << mat.NoColumns() << std::endl; 00092 } 00093 _NoColumns = mat.NoColumns(); 00094 00095 MAT* tempmat = m_get( _NoColumns, _NoLines ); 00096 m_transp( _Mat, tempmat); 00097 // M_FREE( _Mat ); 00098 _Mat = m_get( _NoLines, mat.NoColumns() ); 00099 mtrm_mlt( tempmat, mat._Mat, _Mat); 00100 00101 // _NoColumns = mat.NoColumns(); 00102 // M_FREE(tempmat); 00103 }
void MatrixMeschach::operator+= | ( | const MatrixMeschach & | mat | ) |
Definition at line 107 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, TestMuL1L2Filter_cff::cerr, and lat::endl().
00108 { 00109 if(_NoLines != mat._NoLines || _NoColumns != mat._NoColumns ) { 00110 std::cerr << "!!!! cannot sum two matrices with different size" << std::endl 00111 << "MATRIX 1:" << _NoLines << " X " << _NoColumns << std::endl 00112 << "MATRIX 2:" << mat._NoLines << " X " << mat._NoColumns << std::endl; 00113 } 00114 MAT* tempmat = m_get( _NoColumns, _NoLines ); 00115 m_copy( _Mat, tempmat); 00116 M_FREE( _Mat ); 00117 _Mat = m_get( _NoLines, _NoColumns ); 00118 m_add( tempmat, mat._Mat, _Mat); 00119 M_FREE(tempmat); 00120 00121 }
MatrixMeschach & MatrixMeschach::operator= | ( | const MatrixMeschach & | mat | ) |
Definition at line 65 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, TestMuL1L2Filter_cff::cerr, copy(), GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, lat::endl(), exception, Mat(), NoColumns(), and NoLines().
00066 { 00067 if ( this == 0 ) { 00068 std::cerr << "EXITING: trying to use 'operator=' with an MatrixMeschach for which memory space is not reserved!!!!" << std::endl; 00069 std::exception(); 00070 } 00071 00072 if ( mat._Mat != _Mat ) { 00073 _NoLines = mat._Mat->m; 00074 _NoColumns = mat._Mat->n; 00075 M_FREE( _Mat ); 00076 _Mat = m_get( mat.NoLines(), mat.NoColumns() ); 00077 copy( mat ); 00078 } 00079 if(ALIUtils::debug >= 9) std::cout << "operator=" << mat._Mat << _Mat << NoLines() << NoColumns() << Mat()->m << Mat()->n <<std::endl; 00080 return *this; 00081 }
Definition at line 365 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, and lat::endl().
Referenced by Dump(), and Fit::dumpMatrices().
00366 { 00367 fout << "DUMPM@@@@@ " << mtext << " @@@@@" << std::endl; 00368 fout << "Matrix is (_Mat)" << _Mat->m << "x" << _Mat->n << std::endl; 00369 fout << "Matrix is " << _NoLines << "x" << _NoColumns << std::endl; 00370 for (uint ii=0; ii<_Mat->m; ii++) { 00371 for (uint jj=0; jj<_Mat->n; jj++) { 00372 fout << std::setw(8) << _Mat->me[ii][jj] << " "; 00373 } 00374 fout << std::endl; 00375 } 00376 // m_output(_Mat); 00377 00378 }
Definition at line 382 of file MatrixMeschach.cc.
References AddData(), GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, lat::endl(), and funct::sqrt().
Referenced by Fit::setCorrelationFromParamFitted().
00383 { 00384 AddData(i1,i2,corr * sqrt( (*this)(i1,i1)*(*this)(i2,i2) ) ); 00385 AddData(i2,i1,corr * sqrt( (*this)(i1,i1)*(*this)(i2,i2) ) ); 00386 if(ALIUtils::debug >= 9) std::cout << i1<< i2<< corr << "CORR" << (*this)(i1,i1) << " " << (*this)(i2,i2) << std::endl; 00387 //- std::cout << (*this)(i1,i1)*(*this)(i2,i2) << std::endl; 00388 //- std::cout << sqrt( (*this)(i1,i1)*(*this)(i2,i2) ) << std::endl; 00389 if(ALIUtils::debug >= 9) std::cout << corr * sqrt( (*this)(i1,i1)*(*this)(i2,i2) ) << std::endl; 00390 00391 }
void MatrixMeschach::setMat | ( | MAT * | mat | ) | [inline] |
Definition at line 64 of file MatrixMeschach.h.
References _Mat.
Referenced by MatrixByMatrix(), and operator *().
00064 { 00065 _Mat = mat; 00066 }
Definition at line 55 of file MatrixMeschach.h.
References _NoColumns.
Referenced by MatrixByMatrix(), and operator *().
00055 { 00056 _NoColumns = ncol; 00057 }
Definition at line 58 of file MatrixMeschach.h.
References _NoLines.
00058 { 00059 _NoLines = nlin; 00060 }
void MatrixMeschach::transpose | ( | ) |
Definition at line 210 of file MatrixMeschach.cc.
References _Mat, _NoColumns, _NoLines, and parsecf::pyparsing::col().
Referenced by Fit::getFitQuality(), Fit::GetSChi2(), and Fit::multiplyMatrices().
00211 { 00212 // if(ALIUtils::debug >= 9) 00213 /* std::cout << "transposed" <<_NoLines<<_NoColumns; 00214 MAT* tempmat = m_get(_NoColumns, _NoLines); 00215 m_transp( _Mat, tempmat ); 00216 std::cout << "transposed" <<_NoLines<<_NoColumns; 00217 M_FREE( _Mat ); 00218 _Mat = m_get(_NoColumns, _NoLines); 00219 std::cout << "transposed" <<_NoLines<<_NoColumns; 00220 m_copy( tempmat, _Mat ); 00221 std::cout << "transposed" <<_NoLines<<_NoColumns; 00222 int ntemp = _NoLines; 00223 _NoLines = _NoColumns; 00224 _NoColumns = ntemp; 00225 M_FREE(tempmat); 00226 */ 00227 00228 //- std::cout << "transposed" <<_NoLines<<_NoColumns; 00229 MAT* tempmat = m_get(_NoColumns, _NoLines); 00230 m_transp( _Mat, tempmat ); 00231 //- std::cout << "transposed" <<_NoLines<<_NoColumns; 00232 M_FREE( _Mat ); 00233 _Mat = m_get(_NoColumns, _NoLines); 00234 //- std::cout << "transposed" <<_NoLines<<_NoColumns; 00235 for( uint lin=0; lin < _NoColumns; lin++ ) { 00236 for( uint col=0; col < _NoLines; col++ ) { 00237 //- std::cout << "setting mat " << lin << " " << col << std::endl; 00238 _Mat->me[lin][col] = tempmat->me[lin][col]; 00239 } 00240 } 00241 // m_copy( tempmat, _Mat ); 00242 //- std::cout << "transposed" <<_NoLines<<_NoColumns; 00243 int ntemp = _NoLines; 00244 _NoLines = _NoColumns; 00245 _NoColumns = ntemp; 00246 M_FREE(tempmat); 00247 00248 }
MAT* MatrixMeschach::_Mat [private] |
Definition at line 77 of file MatrixMeschach.h.
Referenced by AddData(), copy(), EliminateColumns(), EliminateLines(), inverse(), Mat(), MatNonConst(), MatrixMeschach(), operator *=(), operator()(), operator+=(), operator=(), ostrDump(), setMat(), transpose(), and ~MatrixMeschach().
ALIint MatrixMeschach::_NoColumns [private] |
Definition at line 75 of file MatrixMeschach.h.
Referenced by AddData(), copy(), EliminateColumns(), EliminateLines(), inverse(), MatrixMeschach(), NoColumns(), operator *=(), operator+=(), operator=(), ostrDump(), setNoColumns(), and transpose().
ALIint MatrixMeschach::_NoLines [private] |
Definition at line 74 of file MatrixMeschach.h.
Referenced by AddData(), copy(), EliminateColumns(), EliminateLines(), inverse(), MatrixMeschach(), NoLines(), operator *=(), operator+=(), operator=(), ostrDump(), setNoLines(), and transpose().