Skip to content

Commit

Permalink
Merge pull request #12282 from ghellwig/fix_surface-deformation-cachi…
Browse files Browse the repository at this point in the history
…ng_for_non-alignables_75X

Fix bug in caching of surface deformations.
  • Loading branch information
cmsbuild committed Nov 6, 2015
2 parents 358c16c + 45f2661 commit 12fd2d5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Alignment/CommonAlignment/interface/Alignable.h
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ class Alignable
/// and pointers to surface deformations
virtual int surfaceDeformationIdPairs(std::vector<std::pair<int,SurfaceDeformation*> > &) const = 0;

/// cache the current position, rotation and other parameters (e.g. surface deformations)
/// cache the current position, rotation and other parameters (e.g. surface deformations), also for possible components
virtual void cacheTransformation();

/// restore the previously cached transformation, also for possible components
Expand Down
9 changes: 9 additions & 0 deletions Alignment/CommonAlignment/src/Alignable.cc
Original file line number Diff line number Diff line change
Expand Up @@ -243,9 +243,18 @@ AlignmentSurfaceDeformations* Alignable::surfaceDeformations( void ) const

void Alignable::cacheTransformation()
{
// first treat itself
theCachedSurface = theSurface;
theCachedDisplacement = theDisplacement;
theCachedRotation = theRotation;

// now treat components (a clean design would move that to AlignableComposite...)
const Alignables comps(this->components());

for (auto it = comps.begin(); it != comps.end(); ++it) {
(*it)->cacheTransformation();
}

}

void Alignable::restoreCachedTransformation()
Expand Down

0 comments on commit 12fd2d5

Please sign in to comment.