10 edm::LogInfo(
"Alignment") <<
"@SUB=AlignmentCorrelationsStore::AlignmentCorrelationsStore "
22 if ( ap1 == 0 ) { previousAlignable = 0;
return; }
27 if ( ap1 == previousAlignable )
29 CorrelationsTable::const_iterator itC2 = previousCorrelations->find( ap2 );
30 if ( itC2 != previousCorrelations->end() )
42 previousAlignable = ap1;
43 previousCorrelations = (*itC1).second;
45 CorrelationsTable::const_iterator itC2 = (*itC1).second->find( ap2 );
46 if ( itC2 != (*itC1).second->end() )
67 if ( ap1 == 0 ) { previousAlignable = 0;
return; }
72 if ( ap1 == previousAlignable )
82 previousAlignable = ap1;
83 previousCorrelations = itC->second;
91 previousAlignable = ap1;
92 previousCorrelations = newTable;
106 (*itC1->second)[ap2] = transpose ? mat.T() : mat;
111 (*newTable)[ap2] = transpose ? mat.T() : mat;
125 CorrelationsTable::const_iterator itC2 = itC1->second->find( ap2 );
126 if ( itC2 != itC1->second->end() )
return true;
134 Correlations::iterator itC;
147 unsigned int size = 0;
148 Correlations::const_iterator itC;
150 size += itC->second->size();
160 CorrelationsTable::iterator itC = table->find( ap2 );
162 if ( itC != table->end() )
178 (*table)[ap2] = newEntry;
187 int nRow = entry.num_row();
188 int nCol = entry.num_col();
190 for (
int iRow = 0; iRow < nRow; ++iRow )
191 for (
int jCol = 0; jCol < nCol; ++jCol )
192 cov[row+iRow][col+jCol] = entry[iRow][jCol];
200 int nRow = entry.num_row();
201 int nCol = entry.num_col();
203 for (
int iRow = 0; iRow < nRow; ++iRow )
204 for (
int jCol = 0; jCol < nCol; ++jCol )
205 cov[row+jCol][col+iRow] = entry[iRow][jCol];
213 int nRow = entry.num_row();
214 int nCol = entry.num_col();
216 for (
int iRow = 0; iRow < nRow; ++iRow )
217 for (
int jCol = 0; jCol < nCol; ++jCol )
218 entry[iRow][jCol] = cov[row+iRow][col+jCol];
226 int nRow = entry.num_row();
227 int nCol = entry.num_col();
229 for (
int iRow = 0; iRow < nRow; ++iRow )
230 for (
int jCol = 0; jCol < nCol; ++jCol )
231 entry[iRow][jCol] = cov[row+jCol][col+iRow];
std::map< Alignable *, AlgebraicMatrix > CorrelationsTable
Correlations theCorrelations
virtual void fillCovariance(Alignable *ap1, Alignable *ap2, const AlgebraicMatrix &entry, AlgebraicSymMatrix &cov, int row, int col) const
virtual void fillCorrelationsTable(Alignable *ap1, Alignable *ap2, CorrelationsTable *table, const AlgebraicSymMatrix &cov, int row, int col, bool transpose)
virtual void readFromCovarianceT(Alignable *ap1, Alignable *ap2, AlgebraicMatrix &entry, const AlgebraicSymMatrix &cov, int row, int col)
virtual bool correlationsAvailable(Alignable *ap1, Alignable *ap2) const
Check whether correlations are stored for a given pair of alignables.
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
AlignmentCorrelationsStore(void)
virtual unsigned int size(void) const
Get number of stored correlations.
virtual void setCorrelations(Alignable *ap1, Alignable *ap2, const AlgebraicSymMatrix &cov, int row, int col)
CLHEP::HepMatrix AlgebraicMatrix
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
virtual void fillCovarianceT(Alignable *ap1, Alignable *ap2, const AlgebraicMatrix &entry, AlgebraicSymMatrix &cov, int row, int col) const
virtual void resetCorrelations(void)
Reset correlations.
int numSelected(void) const
Get number of selected parameters.
virtual void correlations(Alignable *ap1, Alignable *ap2, AlgebraicSymMatrix &cov, int row, int col) const
CLHEP::HepSymMatrix AlgebraicSymMatrix
virtual void readFromCovariance(Alignable *ap1, Alignable *ap2, AlgebraicMatrix &entry, const AlgebraicSymMatrix &cov, int row, int col)