CMS 3D CMS Logo

AlignableDetUnit.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignment_AlignableDetUnit_H
2 #define Alignment_CommonAlignment_AlignableDetUnit_H
3 
6 
7 
12 
13 class AlignableDetUnit : public Alignable
14 {
15 
16 public:
17 
19  AlignableDetUnit(const GeomDetUnit *geomDetUnit);
20 
22  ~AlignableDetUnit() override;
23 
26  void update(const GeomDetUnit* geomDetUnit);
27 
29  void addComponent( Alignable* ) final;
30 
32  const Alignables& components() const override { return emptyComponents_; }
33 
35  void recursiveComponents(Alignables &result) const override {}
36 
38  void move( const GlobalVector& displacement ) override;
39 
41  void rotateInGlobalFrame( const RotationType& rotation ) override;
42 
44  void setAlignmentPositionError(const AlignmentPositionError &ape, bool /*propDown*/) final;
45 
48  void addAlignmentPositionError(const AlignmentPositionError& ape, bool /*propDown*/) final;
49 
53  void addAlignmentPositionErrorFromRotation(const RotationType& rot, bool /*propDown*/) final;
54 
58  void addAlignmentPositionErrorFromLocalRotation(const RotationType& rot, bool /*propDown*/) final;
59 
61  void setSurfaceDeformation(const SurfaceDeformation *deformation, bool) final;
63  void addSurfaceDeformation(const SurfaceDeformation *deformation, bool) final;
64 
67 
69  void dump() const override;
70 
72  Alignments* alignments() const override;
73 
75  AlignmentErrorsExtended* alignmentErrors() const override;
76 
78  int surfaceDeformationIdPairs(std::vector<std::pair<int,SurfaceDeformation*> > &) const override;
79 
81  void cacheTransformation() override;
82 
84  void cacheTransformation(const align::RunNumber&) override;
85 
87  void restoreCachedTransformation() override;
88 
90  void restoreCachedTransformation(const align::RunNumber&) override;
91 
94 
95 private:
96 
101  Cache<SurfaceDeformation*> surfaceDeformationsCache_;
102 };
103 
104 #endif
void dump() const override
Printout information about GeomDet.
int surfaceDeformationIdPairs(std::vector< std::pair< int, SurfaceDeformation * > > &) const override
Return surface deformations.
Cache< SurfaceDeformation * > surfaceDeformationsCache_
const GlobalVector & displacement() const
Return change of the global position since the creation of the object.
Definition: Alignable.h:144
const Alignables & components() const override
Returns a null vector (no components here)
AlignmentErrorsExtended * alignmentErrors() const override
Return vector of alignment errors.
void setSurfaceDeformation(const SurfaceDeformation *deformation, bool) final
Set surface deformation parameters (2nd argument without effect)
void recursiveComponents(Alignables &result) const override
Do nothing (no components here, so no subcomponents either...)
SurfaceDeformation * theCachedSurfaceDeformation
static const Alignables emptyComponents_
void update(const GeomDetUnit *geomDetUnit)
Alignments * alignments() const override
Return vector of alignment data.
const RotationType & rotation() const
Return change of orientation since the creation of the object.
Definition: Alignable.h:147
~AlignableDetUnit() override
Destructor.
AlignableDetUnit(const GeomDetUnit *geomDetUnit)
Constructor from GeomDetUnit - must not be NULL pointer!
void cacheTransformation() override
cache the current position, rotation and other parameters (e.g. surface deformations) ...
void addComponent(Alignable *) final
No components here => exception!
void setAlignmentPositionError(const AlignmentPositionError &ape, bool) final
Set the AlignmentPositionError (no components => second argument ignored)
void addAlignmentPositionError(const AlignmentPositionError &ape, bool) final
StructureType alignableObjectId() const override
Return the alignable type identifier.
const AlignmentPositionError * alignmentPositionError() const
alignment position error - for checking only, otherwise use alignmentErrors() above! ...
void addAlignmentPositionErrorFromRotation(const RotationType &rot, bool) final
void addAlignmentPositionErrorFromLocalRotation(const RotationType &rot, bool) final
AlignmentPositionError * theAlignmentPositionError
void addSurfaceDeformation(const SurfaceDeformation *deformation, bool) final
Add surface deformation parameters to the existing ones (2nd argument without effect) ...
void move(const GlobalVector &displacement) override
Move with respect to the global reference frame.
void rotateInGlobalFrame(const RotationType &rotation) override
Rotation with respect to the global reference frame.
SurfaceDeformation * theSurfaceDeformation
align::Alignables Alignables
Definition: Alignable.h:37
cond::RealTimeType< cond::runnumber >::type RunNumber
Definition: Utilities.h:38
void restoreCachedTransformation() override
restore the previously cached transformation