CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
AlignmentExtendedCorrelationsStore Class Reference

#include <AlignmentExtendedCorrelationsStore.h>

Inheritance diagram for AlignmentExtendedCorrelationsStore:
AlignmentCorrelationsStore

Public Types

typedef std::map< Alignable
*, ExtendedCorrelationsTable * > 
ExtendedCorrelations
 
typedef
AlignmentExtendedCorrelationsEntry 
ExtendedCorrelationsEntry
 
typedef std::map< Alignable
*, ExtendedCorrelationsEntry
ExtendedCorrelationsTable
 
- Public Types inherited from AlignmentCorrelationsStore
typedef std::map< Alignable
*, CorrelationsTable * > 
Correlations
 
typedef std::map< Alignable
*, AlgebraicMatrix
CorrelationsTable
 

Public Member Functions

 AlignmentExtendedCorrelationsStore (const edm::ParameterSet &config)
 
virtual void correlations (Alignable *ap1, Alignable *ap2, AlgebraicSymMatrix &cov, int row, int col) const
 
virtual bool correlationsAvailable (Alignable *ap1, Alignable *ap2) const
 Check whether correlations are stored for a given pair of alignables. More...
 
virtual void getCorrelations (Alignable *ap1, Alignable *ap2, AlgebraicMatrix &mat) const
 Get correlations. More...
 
virtual void resetCorrelations (void)
 Reset correlations. More...
 
virtual void setCorrelations (Alignable *ap1, Alignable *ap2, const AlgebraicSymMatrix &cov, int row, int col)
 
virtual void setCorrelations (Alignable *ap1, Alignable *ap2, AlgebraicMatrix &mat)
 
virtual unsigned int size (void) const
 Get number of stored correlations. More...
 
virtual ~AlignmentExtendedCorrelationsStore (void)
 
- Public Member Functions inherited from AlignmentCorrelationsStore
 AlignmentCorrelationsStore (void)
 
virtual ~AlignmentCorrelationsStore (void)
 

Protected Member Functions

virtual void fillCorrelationsTable (Alignable *ap1, Alignable *ap2, ExtendedCorrelationsTable *table, const AlgebraicSymMatrix &cov, int row, int col, bool transpose)
 
virtual void fillCovariance (Alignable *ap1, Alignable *ap2, const ExtendedCorrelationsEntry &entry, AlgebraicSymMatrix &cov, int row, int col) const
 
virtual void fillCovarianceT (Alignable *ap1, Alignable *ap2, const ExtendedCorrelationsEntry &entry, AlgebraicSymMatrix &cov, int row, int col) const
 
virtual void readFromCovariance (Alignable *ap1, Alignable *ap2, ExtendedCorrelationsEntry &entry, const AlgebraicSymMatrix &cov, int row, int col)
 
virtual void readFromCovarianceT (Alignable *ap1, Alignable *ap2, ExtendedCorrelationsEntry &entry, const AlgebraicSymMatrix &cov, int row, int col)
 
void resizeCorruptCorrelations (ExtendedCorrelationsEntry &entry, double maxCorr)
 
- Protected Member Functions inherited from AlignmentCorrelationsStore
virtual void fillCorrelationsTable (Alignable *ap1, Alignable *ap2, CorrelationsTable *table, const AlgebraicSymMatrix &cov, int row, int col, bool transpose)
 
virtual void fillCovariance (Alignable *ap1, Alignable *ap2, const AlgebraicMatrix &entry, AlgebraicSymMatrix &cov, int row, int col) const
 
virtual void fillCovarianceT (Alignable *ap1, Alignable *ap2, const AlgebraicMatrix &entry, AlgebraicSymMatrix &cov, int row, int col) const
 
virtual void readFromCovariance (Alignable *ap1, Alignable *ap2, AlgebraicMatrix &entry, const AlgebraicSymMatrix &cov, int row, int col)
 
virtual void readFromCovarianceT (Alignable *ap1, Alignable *ap2, AlgebraicMatrix &entry, const AlgebraicSymMatrix &cov, int row, int col)
 

Protected Attributes

ExtendedCorrelations theCorrelations
 
double theCut
 
int theMaxUpdates
 
double theWeight
 
- Protected Attributes inherited from AlignmentCorrelationsStore
Correlations theCorrelations
 

Detailed Description

Definition at line 18 of file AlignmentExtendedCorrelationsStore.h.

Member Typedef Documentation

Definition at line 25 of file AlignmentExtendedCorrelationsStore.h.

Definition at line 23 of file AlignmentExtendedCorrelationsStore.h.

Definition at line 24 of file AlignmentExtendedCorrelationsStore.h.

Constructor & Destructor Documentation

AlignmentExtendedCorrelationsStore::AlignmentExtendedCorrelationsStore ( const edm::ParameterSet config)

Definition at line 11 of file AlignmentExtendedCorrelationsStore.cc.

References edm::ParameterSet::getParameter(), theCut, theMaxUpdates, and theWeight.

12 {
13  theMaxUpdates = config.getParameter<int>( "MaxUpdates" );
14  theCut = config.getParameter<double>( "CutValue" );
15  theWeight = config.getParameter<double>( "Weight" );
16 
17  edm::LogInfo("Alignment") << "@SUB=AlignmentExtendedCorrelationsStore::AlignmentExtendedCorrelationsStore"
18  << "Created.";
19 }
T getParameter(std::string const &) const
virtual AlignmentExtendedCorrelationsStore::~AlignmentExtendedCorrelationsStore ( void  )
inlinevirtual

Definition at line 29 of file AlignmentExtendedCorrelationsStore.h.

29 {}

Member Function Documentation

void AlignmentExtendedCorrelationsStore::correlations ( Alignable ap1,
Alignable ap2,
AlgebraicSymMatrix cov,
int  row,
int  col 
) const
virtual

Write correlations directly to the covariance matrix starting at the given position. Indices are assumed to start from 0.

Reimplemented from AlignmentCorrelationsStore.

Definition at line 22 of file AlignmentExtendedCorrelationsStore.cc.

References fillCovariance(), fillCovarianceT(), std::swap(), theCorrelations, and geometryDiff::transpose().

Referenced by resetCorrelations().

24 {
25  static Alignable* previousAlignable = 0;
26  static ExtendedCorrelationsTable* previousCorrelations;
27 
28  // Needed by 'resetCorrelations()' to reset the static pointer:
29  if ( ap1 == 0 ) { previousAlignable = 0; return; }
30 
31  bool transpose = ( ap2 > ap1 );
32  if ( transpose ) std::swap( ap1, ap2 );
33 
34  if ( ap1 == previousAlignable )
35  {
36  ExtendedCorrelationsTable::const_iterator itC2 = previousCorrelations->find( ap2 );
37  if ( itC2 != previousCorrelations->end() )
38  {
39  transpose ?
40  fillCovarianceT( ap1, ap2, (*itC2).second, cov, row, col ) :
41  fillCovariance( ap1, ap2, (*itC2).second, cov, row, col );
42  }
43  }
44  else
45  {
46  ExtendedCorrelations::const_iterator itC1 = theCorrelations.find( ap1 );
47  if ( itC1 != theCorrelations.end() )
48  {
49  previousAlignable = ap1;
50  previousCorrelations = (*itC1).second;
51 
52  ExtendedCorrelationsTable::const_iterator itC2 = (*itC1).second->find( ap2 );
53  if ( itC2 != (*itC1).second->end() )
54  {
55  transpose ?
56  fillCovarianceT( ap1, ap2, (*itC2).second, cov, row, col ) :
57  fillCovariance( ap1, ap2, (*itC2).second, cov, row, col );
58  }
59  }
60  }
61 
62  // don't fill anything into the covariance if there's no entry
63  return;
64 }
std::map< Alignable *, ExtendedCorrelationsEntry > ExtendedCorrelationsTable
virtual void fillCovariance(Alignable *ap1, Alignable *ap2, const ExtendedCorrelationsEntry &entry, AlgebraicSymMatrix &cov, int row, int col) const
U second(std::pair< T, U > const &p)
virtual void fillCovarianceT(Alignable *ap1, Alignable *ap2, const ExtendedCorrelationsEntry &entry, AlgebraicSymMatrix &cov, int row, int col) const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
bool AlignmentExtendedCorrelationsStore::correlationsAvailable ( Alignable ap1,
Alignable ap2 
) const
virtual

Check whether correlations are stored for a given pair of alignables.

Reimplemented from AlignmentCorrelationsStore.

Definition at line 154 of file AlignmentExtendedCorrelationsStore.cc.

References std::swap(), theCorrelations, and geometryDiff::transpose().

155 {
156  bool transpose = ( ap2 > ap1 );
157  if ( transpose ) std::swap( ap1, ap2 );
158 
159  ExtendedCorrelations::const_iterator itC1 = theCorrelations.find( ap1 );
160  if ( itC1 != theCorrelations.end() )
161  {
162  ExtendedCorrelationsTable::const_iterator itC2 = itC1->second->find( ap2 );
163  if ( itC2 != itC1->second->end() ) return true;
164  }
165  return false;
166 }
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void AlignmentExtendedCorrelationsStore::fillCorrelationsTable ( Alignable ap1,
Alignable ap2,
ExtendedCorrelationsTable table,
const AlgebraicSymMatrix cov,
int  row,
int  col,
bool  transpose 
)
protectedvirtual

Definition at line 194 of file AlignmentExtendedCorrelationsStore.cc.

References Alignable::alignmentParameters(), AlignmentParameters::numSelected(), readFromCovariance(), and readFromCovarianceT().

Referenced by setCorrelations().

198 {
199  ExtendedCorrelationsTable::iterator itC = table->find( ap2 );
200 
201  if ( itC != table->end() )
202  {
203  //if ( itC->second.counter() > theMaxUpdates ) return;
204 
205  transpose ?
206  readFromCovarianceT( ap1, ap2, itC->second, cov, row, col ) :
207  readFromCovariance( ap1, ap2, itC->second, cov, row, col );
208 
209  //itC->second.incrementCounter();
210  }
211  else
212  {
213  int nRow = ap1->alignmentParameters()->numSelected();
214  int nCol = ap2->alignmentParameters()->numSelected();
215  ExtendedCorrelationsEntry newEntry( nRow, nCol );
216 
217  transpose ?
218  readFromCovarianceT( ap1, ap2, newEntry, cov, row, col ) :
219  readFromCovariance( ap1, ap2, newEntry, cov, row, col );
220 
221  (*table)[ap2] = newEntry;
222  }
223 }
list table
Definition: asciidump.py:386
AlignmentExtendedCorrelationsEntry ExtendedCorrelationsEntry
AlignmentParameters * alignmentParameters() const
Get the AlignmentParameters.
Definition: Alignable.h:57
U second(std::pair< T, U > const &p)
virtual void readFromCovariance(Alignable *ap1, Alignable *ap2, ExtendedCorrelationsEntry &entry, const AlgebraicSymMatrix &cov, int row, int col)
int numSelected(void) const
Get number of selected parameters.
virtual void readFromCovarianceT(Alignable *ap1, Alignable *ap2, ExtendedCorrelationsEntry &entry, const AlgebraicSymMatrix &cov, int row, int col)
void AlignmentExtendedCorrelationsStore::fillCovariance ( Alignable ap1,
Alignable ap2,
const ExtendedCorrelationsEntry entry,
AlgebraicSymMatrix cov,
int  row,
int  col 
) const
protectedvirtual

Definition at line 227 of file AlignmentExtendedCorrelationsStore.cc.

References edm::hlt::Exception, edm::detail::isnan(), AlignmentExtendedCorrelationsEntry::numCol(), AlignmentExtendedCorrelationsEntry::numRow(), and mathSSE::sqrt().

Referenced by correlations().

229 {
230  int nRow = entry.numRow();
231  int nCol = entry.numCol();
232 
233  for ( int iRow = 0; iRow < nRow; ++iRow )
234  {
235  double factor = sqrt(cov[row+iRow][row+iRow]);
236  if ( std::isnan(factor) ) throw cms::Exception("LogicError") << "[AlignmentExtendedCorrelationsStore::fillCovariance] "
237  << "NaN-factor: sqrt(" << cov[row+iRow][row+iRow] << ")";
238 
239  for ( int jCol = 0; jCol < nCol; ++jCol )
240  cov[row+iRow][col+jCol] = entry( iRow, jCol )*factor;
241  }
242 
243  for ( int jCol = 0; jCol < nCol; ++jCol )
244  {
245  double factor = sqrt(cov[col+jCol][col+jCol]);
246  if ( std::isnan(factor) ) throw cms::Exception("LogicError") << "[AlignmentExtendedCorrelationsStore::fillCovariance] "
247  << "NaN-factor: sqrt(" << cov[col+jCol][col+jCol] << ")";
248 
249  for ( int iRow = 0; iRow < nRow; ++iRow )
250  cov[row+iRow][col+jCol] *= factor;
251  }
252 }
bool isnan(float x)
Definition: math.h:13
T sqrt(T t)
Definition: SSEVec.h:46
std::pair< std::string, MonitorElement * > entry
Definition: ME_MAP.h:8
void AlignmentExtendedCorrelationsStore::fillCovarianceT ( Alignable ap1,
Alignable ap2,
const ExtendedCorrelationsEntry entry,
AlgebraicSymMatrix cov,
int  row,
int  col 
) const
protectedvirtual

Definition at line 256 of file AlignmentExtendedCorrelationsStore.cc.

References edm::hlt::Exception, edm::detail::isnan(), AlignmentExtendedCorrelationsEntry::numCol(), AlignmentExtendedCorrelationsEntry::numRow(), and mathSSE::sqrt().

Referenced by correlations().

258 {
259  int nRow = entry.numRow();
260  int nCol = entry.numCol();
261 
262  for ( int iRow = 0; iRow < nRow; ++iRow )
263  {
264  double factor = sqrt(cov[col+iRow][col+iRow]);
265  if ( std::isnan(factor) ) throw cms::Exception("LogicError") << "[AlignmentExtendedCorrelationsStore::fillCovarianceT] "
266  << "NaN-factor: sqrt(" << cov[col+iRow][col+iRow] << ")";
267  for ( int jCol = 0; jCol < nCol; ++jCol )
268  cov[row+jCol][col+iRow] = entry( iRow, jCol )*factor;
269  }
270 
271  for ( int jCol = 0; jCol < nCol; ++jCol )
272  {
273  double factor = sqrt(cov[row+jCol][row+jCol]);
274  if ( std::isnan(factor) ) throw cms::Exception("LogicError") << "[AlignmentExtendedCorrelationsStore::fillCovarianceT] "
275  << "NaN-factor: sqrt(" << cov[row+jCol][row+jCol] << ")";
276  for ( int iRow = 0; iRow < nRow; ++iRow )
277  cov[row+jCol][col+iRow] *= factor;
278  }
279 
280 }
bool isnan(float x)
Definition: math.h:13
T sqrt(T t)
Definition: SSEVec.h:46
std::pair< std::string, MonitorElement * > entry
Definition: ME_MAP.h:8
void AlignmentExtendedCorrelationsStore::getCorrelations ( Alignable ap1,
Alignable ap2,
AlgebraicMatrix mat 
) const
virtual

Get correlations.

Definition at line 134 of file AlignmentExtendedCorrelationsStore.cc.

References std::swap(), theCorrelations, and geometryDiff::transpose().

135 {
136  bool transpose = ( ap2 > ap1 );
137  if ( transpose ) std::swap( ap1, ap2 );
138 
139  ExtendedCorrelations::const_iterator itC1 = theCorrelations.find( ap1 );
140  if ( itC1 != theCorrelations.end() )
141  {
142  ExtendedCorrelationsTable::const_iterator itC2 = itC1->second->find( ap2 );
143  if ( itC2 != itC1->second->end() )
144  {
145  mat = transpose ? itC2->second.matrix().T() : itC2->second.matrix();
146  return;
147  }
148  }
149 
150  mat = AlgebraicMatrix();
151 }
CLHEP::HepMatrix AlgebraicMatrix
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void AlignmentExtendedCorrelationsStore::readFromCovariance ( Alignable ap1,
Alignable ap2,
ExtendedCorrelationsEntry entry,
const AlgebraicSymMatrix cov,
int  row,
int  col 
)
protectedvirtual

Definition at line 284 of file AlignmentExtendedCorrelationsStore.cc.

References AlignmentExtendedCorrelationsEntry::numCol(), AlignmentExtendedCorrelationsEntry::numRow(), resizeCorruptCorrelations(), and mathSSE::sqrt().

Referenced by fillCorrelationsTable().

286 {
287  int nRow = entry.numRow();
288  int nCol = entry.numCol();
289 
290  for ( int iRow = 0; iRow < nRow; ++iRow )
291  {
292  double factor = sqrt(cov[row+iRow][row+iRow]);
293  for ( int jCol = 0; jCol < nCol; ++jCol )
294  entry( iRow, jCol ) = cov[row+iRow][col+jCol]/factor;
295  }
296 
297  double maxCorr = 0;
298 
299  for ( int jCol = 0; jCol < nCol; ++jCol )
300  {
301  double factor = sqrt(cov[col+jCol][col+jCol]);
302  for ( int iRow = 0; iRow < nRow; ++iRow )
303  {
304  entry( iRow, jCol ) /= factor;
305  if ( fabs( entry( iRow, jCol ) ) > maxCorr ) maxCorr = fabs( entry( iRow, jCol ) );
306  }
307  }
308 
309  resizeCorruptCorrelations( entry, maxCorr );
310 }
T sqrt(T t)
Definition: SSEVec.h:46
std::pair< std::string, MonitorElement * > entry
Definition: ME_MAP.h:8
void resizeCorruptCorrelations(ExtendedCorrelationsEntry &entry, double maxCorr)
void AlignmentExtendedCorrelationsStore::readFromCovarianceT ( Alignable ap1,
Alignable ap2,
ExtendedCorrelationsEntry entry,
const AlgebraicSymMatrix cov,
int  row,
int  col 
)
protectedvirtual

Definition at line 314 of file AlignmentExtendedCorrelationsStore.cc.

References AlignmentExtendedCorrelationsEntry::numCol(), AlignmentExtendedCorrelationsEntry::numRow(), resizeCorruptCorrelations(), and mathSSE::sqrt().

Referenced by fillCorrelationsTable().

316 {
317  int nRow = entry.numRow();
318  int nCol = entry.numCol();
319 
320  for ( int iRow = 0; iRow < nRow; ++iRow )
321  {
322  double factor = sqrt(cov[col+iRow][col+iRow]);
323  for ( int jCol = 0; jCol < nCol; ++jCol )
324  entry( iRow, jCol ) = cov[row+jCol][col+iRow]/factor;
325  }
326 
327  double maxCorr = 0;
328 
329  for ( int jCol = 0; jCol < nCol; ++jCol )
330  {
331  double factor = sqrt(cov[row+jCol][row+jCol]);
332  for ( int iRow = 0; iRow < nRow; ++iRow )
333  {
334  entry( iRow, jCol ) /= factor;
335  if ( fabs( entry( iRow, jCol ) ) > maxCorr ) maxCorr = fabs( entry( iRow, jCol ) );
336  }
337  }
338 
339  resizeCorruptCorrelations( entry, maxCorr );
340 }
T sqrt(T t)
Definition: SSEVec.h:46
std::pair< std::string, MonitorElement * > entry
Definition: ME_MAP.h:8
void resizeCorruptCorrelations(ExtendedCorrelationsEntry &entry, double maxCorr)
void AlignmentExtendedCorrelationsStore::resetCorrelations ( void  )
virtual

Reset correlations.

Reimplemented from AlignmentCorrelationsStore.

Definition at line 169 of file AlignmentExtendedCorrelationsStore.cc.

References correlations(), setCorrelations(), and theCorrelations.

170 {
171  ExtendedCorrelations::iterator itC;
172  for ( itC = theCorrelations.begin(); itC != theCorrelations.end(); ++itC ) delete (*itC).second;
173  theCorrelations.erase( theCorrelations.begin(), theCorrelations.end() );
174 
175  // Reset the static pointers to the 'previous alignables'
176  AlgebraicSymMatrix dummy;
177  correlations( 0, 0, dummy, 0, 0 );
178  setCorrelations( 0, 0, dummy, 0, 0 );
179 }
virtual void correlations(Alignable *ap1, Alignable *ap2, AlgebraicSymMatrix &cov, int row, int col) const
virtual void setCorrelations(Alignable *ap1, Alignable *ap2, const AlgebraicSymMatrix &cov, int row, int col)
CLHEP::HepSymMatrix AlgebraicSymMatrix
void AlignmentExtendedCorrelationsStore::resizeCorruptCorrelations ( ExtendedCorrelationsEntry entry,
double  maxCorr 
)
protected

Definition at line 344 of file AlignmentExtendedCorrelationsStore.cc.

References theCut, and theWeight.

Referenced by readFromCovariance(), and readFromCovarianceT().

346 {
347  if ( maxCorr > 1. )
348  {
349  entry *= theWeight/maxCorr;
350  }
351  else if ( maxCorr > theCut )
352  {
353  entry *= 1. - ( maxCorr - theCut )/( 1. - theCut )*( 1. - theWeight );
354  }
355 }
std::pair< std::string, MonitorElement * > entry
Definition: ME_MAP.h:8
void AlignmentExtendedCorrelationsStore::setCorrelations ( Alignable ap1,
Alignable ap2,
const AlgebraicSymMatrix cov,
int  row,
int  col 
)
virtual

Get correlations directly from the given position of the covariance matrix and store them. Indices are assumed to start from 0.

Reimplemented from AlignmentCorrelationsStore.

Definition at line 67 of file AlignmentExtendedCorrelationsStore.cc.

References fillCorrelationsTable(), std::swap(), theCorrelations, and geometryDiff::transpose().

Referenced by resetCorrelations().

69 {
70  static Alignable* previousAlignable = 0;
71  static ExtendedCorrelationsTable* previousCorrelations;
72 
73  // Needed by 'resetCorrelations()' to reset the static pointer:
74  if ( ap1 == 0 ) { previousAlignable = 0; return; }
75 
76  bool transpose = ( ap2 > ap1 );
77  if ( transpose ) std::swap( ap1, ap2 );
78 
79  if ( ap1 == previousAlignable )
80  {
81  fillCorrelationsTable( ap1, ap2, previousCorrelations, cov, row, col, transpose );
82  }
83  else
84  {
85  ExtendedCorrelations::iterator itC = theCorrelations.find( ap1 );
86  if ( itC != theCorrelations.end() )
87  {
88  fillCorrelationsTable( ap1, ap2, itC->second, cov, row, col, transpose );
89  previousAlignable = ap1;
90  previousCorrelations = itC->second;
91  }
92  else
93  {
94  // make new entry
96  fillCorrelationsTable( ap1, ap2, newTable, cov, row, col, transpose );
97 
98  theCorrelations[ap1] = newTable;
99 
100  previousAlignable = ap1;
101  previousCorrelations = newTable;
102  }
103  }
104 }
std::map< Alignable *, ExtendedCorrelationsEntry > ExtendedCorrelationsTable
virtual void fillCorrelationsTable(Alignable *ap1, Alignable *ap2, ExtendedCorrelationsTable *table, const AlgebraicSymMatrix &cov, int row, int col, bool transpose)
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void AlignmentExtendedCorrelationsStore::setCorrelations ( Alignable ap1,
Alignable ap2,
AlgebraicMatrix mat 
)
virtual

Set correlations without checking whether the maximum number of updates has already been reached.

Reimplemented from AlignmentCorrelationsStore.

Definition at line 107 of file AlignmentExtendedCorrelationsStore.cc.

References std::swap(), theCorrelations, and geometryDiff::transpose().

108 {
109  bool transpose = ( ap2 > ap1 );
110  if ( transpose ) std::swap( ap1, ap2 );
111 
112  ExtendedCorrelations::iterator itC1 = theCorrelations.find( ap1 );
113  if ( itC1 != theCorrelations.end() )
114  {
115  ExtendedCorrelationsTable::iterator itC2 = itC1->second->find( ap1 );
116  if ( itC2 != itC1->second->end() )
117  {
118  itC2->second = transpose ? ExtendedCorrelationsEntry( mat.T() ) : ExtendedCorrelationsEntry( mat );
119  }
120  else
121  {
122  (*itC1->second)[ap2] = transpose ? ExtendedCorrelationsEntry( mat.T() ) : ExtendedCorrelationsEntry( mat );
123  }
124  }
125  else
126  {
128  (*newTable)[ap2] = transpose ? ExtendedCorrelationsEntry( mat.T() ) : ExtendedCorrelationsEntry( mat );
129  theCorrelations[ap1] = newTable;
130  }
131 }
std::map< Alignable *, ExtendedCorrelationsEntry > ExtendedCorrelationsTable
AlignmentExtendedCorrelationsEntry ExtendedCorrelationsEntry
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
unsigned int AlignmentExtendedCorrelationsStore::size ( void  ) const
virtual

Get number of stored correlations.

Reimplemented from AlignmentCorrelationsStore.

Definition at line 182 of file AlignmentExtendedCorrelationsStore.cc.

References theCorrelations.

183 {
184  unsigned int size = 0;
185  ExtendedCorrelations::const_iterator itC;
186  for ( itC = theCorrelations.begin(); itC != theCorrelations.end(); ++itC )
187  size += itC->second->size();
188 
189  return size;
190 }
virtual unsigned int size(void) const
Get number of stored correlations.

Member Data Documentation

ExtendedCorrelations AlignmentExtendedCorrelationsStore::theCorrelations
protected
double AlignmentExtendedCorrelationsStore::theCut
protected
int AlignmentExtendedCorrelationsStore::theMaxUpdates
protected
double AlignmentExtendedCorrelationsStore::theWeight
protected