8 edm::LogInfo(
"Alignment") <<
"@SUB=AlignmentCorrelationsStore::AlignmentCorrelationsStore " 14 static Alignable* previousAlignable =
nullptr;
19 previousAlignable =
nullptr;
27 if (ap1 == previousAlignable) {
28 CorrelationsTable::const_iterator itC2 = previousCorrelations->find(ap2);
29 if (itC2 != previousCorrelations->end()) {
36 previousAlignable = ap1;
37 previousCorrelations = (*itC1).second;
39 CorrelationsTable::const_iterator itC2 = (*itC1).second->find(ap2);
40 if (itC2 != (*itC1).second->end()) {
53 static Alignable* previousAlignable =
nullptr;
58 previousAlignable =
nullptr;
66 if (ap1 == previousAlignable) {
72 previousAlignable = ap1;
73 previousCorrelations = itC->second;
79 previousAlignable = ap1;
80 previousCorrelations = newTable;
92 (*itC1->second)[ap2] = transpose ? mat.T() : mat;
95 (*newTable)[ap2] = transpose ? mat.T() : mat;
107 CorrelationsTable::const_iterator itC2 = itC1->second->find(ap2);
108 if (itC2 != itC1->second->end())
115 Correlations::iterator itC;
117 delete (*itC).second;
127 unsigned int size = 0;
128 Correlations::const_iterator itC;
130 size += itC->second->size();
142 CorrelationsTable::iterator itC = table->find(ap2);
144 if (itC != table->end()) {
155 (*table)[ap2] = newEntry;
161 int nRow = entry.num_row();
162 int nCol = entry.num_col();
164 for (
int iRow = 0; iRow < nRow; ++iRow)
165 for (
int jCol = 0; jCol < nCol; ++jCol)
166 cov[row + iRow][col + jCol] = entry[iRow][jCol];
171 int nRow = entry.num_row();
172 int nCol = entry.num_col();
174 for (
int iRow = 0; iRow < nRow; ++iRow)
175 for (
int jCol = 0; jCol < nCol; ++jCol)
176 cov[row + jCol][col + iRow] = entry[iRow][jCol];
181 int nRow = entry.num_row();
182 int nCol = entry.num_col();
184 for (
int iRow = 0; iRow < nRow; ++iRow)
185 for (
int jCol = 0; jCol < nCol; ++jCol)
186 entry[iRow][jCol] = cov[row + iRow][col + jCol];
191 int nRow = entry.num_row();
192 int nCol = entry.num_col();
194 for (
int iRow = 0; iRow < nRow; ++iRow)
195 for (
int jCol = 0; jCol < nCol; ++jCol)
196 entry[iRow][jCol] = cov[row + jCol][col + iRow];
Correlations theCorrelations
void fillCovariance(Alignable *ap1, Alignable *ap2, const AlgebraicMatrix &entry, AlgebraicSymMatrix &cov, int row, int col) const
void fillCorrelationsTable(Alignable *ap1, Alignable *ap2, CorrelationsTable *table, const AlgebraicSymMatrix &cov, int row, int col, bool transpose)
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)
std::map< Alignable *, AlgebraicMatrix > CorrelationsTable
CLHEP::HepMatrix AlgebraicMatrix
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
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
void readFromCovariance(Alignable *ap1, Alignable *ap2, AlgebraicMatrix &entry, const AlgebraicSymMatrix &cov, int row, int col)