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 
11 
12 class AlignableDetUnit : public Alignable {
13 public:
15  AlignableDetUnit(const GeomDetUnit* geomDetUnit);
16 
18  ~AlignableDetUnit() override;
19 
22  void update(const GeomDetUnit* geomDetUnit);
23 
25  void addComponent(Alignable*) final;
26 
28  const Alignables& components() const override { return emptyComponents_; }
29 
31  void recursiveComponents(Alignables& result) const override {}
32 
34  void move(const GlobalVector& displacement) override;
35 
37  void rotateInGlobalFrame(const RotationType& rotation) override;
38 
40  void setAlignmentPositionError(const AlignmentPositionError& ape, bool /*propDown*/) final;
41 
44  void addAlignmentPositionError(const AlignmentPositionError& ape, bool /*propDown*/) final;
45 
49  void addAlignmentPositionErrorFromRotation(const RotationType& rot, bool /*propDown*/) final;
50 
54  void addAlignmentPositionErrorFromLocalRotation(const RotationType& rot, bool /*propDown*/) final;
55 
57  void setSurfaceDeformation(const SurfaceDeformation* deformation, bool) final;
59  void addSurfaceDeformation(const SurfaceDeformation* deformation, bool) final;
60 
63 
65  void dump() const override;
66 
68  Alignments* alignments() const override;
69 
71  AlignmentErrorsExtended* alignmentErrors() const override;
72 
74  int surfaceDeformationIdPairs(std::vector<std::pair<int, SurfaceDeformation*> >&) const override;
75 
77  void cacheTransformation() override;
78 
80  void cacheTransformation(const align::RunNumber&) override;
81 
83  void restoreCachedTransformation() override;
84 
86  void restoreCachedTransformation(const align::RunNumber&) override;
87 
90 
91 private:
96  Cache<SurfaceDeformation*> surfaceDeformationsCache_;
97 };
98 
99 #endif
void dump() const override
Printout information about GeomDet.
AlignmentErrorsExtended * alignmentErrors() const override
Return vector of alignment errors.
Cache< SurfaceDeformation * > surfaceDeformationsCache_
StructureType alignableObjectId() const override
Return the alignable type identifier.
void setSurfaceDeformation(const SurfaceDeformation *deformation, bool) final
Set surface deformation parameters (2nd argument without effect)
const AlignmentPositionError * alignmentPositionError() const
alignment position error - for checking only, otherwise use alignmentErrors() above! ...
SurfaceDeformation * theCachedSurfaceDeformation
static const Alignables emptyComponents_
void update(const GeomDetUnit *geomDetUnit)
~AlignableDetUnit() override
Destructor.
int surfaceDeformationIdPairs(std::vector< std::pair< int, SurfaceDeformation *> > &) const override
Return surface deformations.
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)
const Alignables & components() const override
Returns a null vector (no components here)
void addAlignmentPositionError(const AlignmentPositionError &ape, bool) final
void recursiveComponents(Alignables &result) const override
Do nothing (no components here, so no subcomponents either...)
align::RotationType RotationType
Definition: Alignable.h:31
const GlobalVector & displacement() const
Return change of the global position since the creation of the object.
Definition: Alignable.h:141
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.
Alignments * alignments() const override
Return vector of alignment data.
SurfaceDeformation * theSurfaceDeformation
align::Alignables Alignables
Definition: Alignable.h:34
cond::RealTimeType< cond::runnumber >::type RunNumber
Definition: Utilities.h:37
void restoreCachedTransformation() override
restore the previously cached transformation
const RotationType & rotation() const
Return change of orientation since the creation of the object.
Definition: Alignable.h:144