CMS 3D CMS Logo

AlignableComposite.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignment_AlignableComposite_H
2 #define Alignment_CommonAlignment_AlignableComposite_H
3 
5 
22 
23 class GeomDet;
24 
25 class AlignableComposite : public Alignable {
26 public:
31 
33  ~AlignableComposite() override;
34 
37  void update(align::ID, StructureType aType, const RotationType& rot = RotationType());
38 
42  void addComponent(Alignable* component) final;
43 
45  const Alignables& components() const override { return theComponents; }
46 
48  void recursiveComponents(Alignables& result) const override;
49 
51  void move(const GlobalVector& displacement) override;
52 
54  virtual void moveComponentsLocal(const LocalVector& localDisplacement);
55 
57  virtual void moveComponentLocal(const int i, const LocalVector& localDisplacement);
58 
60  void rotateInGlobalFrame(const RotationType& rotation) override;
61 
64  void setAlignmentPositionError(const AlignmentPositionError& ape, bool propagateDown) override;
65 
68  void addAlignmentPositionError(const AlignmentPositionError& ape, bool propagateDown) override;
69 
72  void addAlignmentPositionErrorFromRotation(const RotationType& rotation, bool propagateDown) override;
73 
76  void addAlignmentPositionErrorFromLocalRotation(const RotationType& rotation, bool propagateDown) override;
77 
79  void setSurfaceDeformation(const SurfaceDeformation* deformation, bool propagateDown) override;
80 
83  void addSurfaceDeformation(const SurfaceDeformation* deformation, bool propagateDown) override;
84 
86  StructureType alignableObjectId() const override { return theStructureType; }
87 
89  void dump() const override;
90 
92  Alignments* alignments() const override;
93 
95  AlignmentErrorsExtended* alignmentErrors() const override;
96 
98  int surfaceDeformationIdPairs(std::vector<std::pair<int, SurfaceDeformation*> >&) const override;
99 
100 protected:
102  explicit AlignableComposite(const GeomDet* geomDet);
103 
106  void update(const GeomDet* geomDet);
107 
108  // avoid implicit cast of not explicitely defined version to the defined ones
109  template <class T>
110  void update(T) = delete;
111 
113 
115 
116 private:
119 
120  Alignables theComponents; // direct daughters
121 };
122 
123 #endif
Vector3DBase
Definition: Vector3DBase.h:8
TkRotation< Scalar >
AlignableComposite::alignments
Alignments * alignments() const override
Return alignment data.
Definition: AlignableComposite.cc:254
mps_fire.i
i
Definition: mps_fire.py:428
Alignable::Alignables
align::Alignables Alignables
Definition: Alignable.h:34
GeomDet
Definition: GeomDet.h:27
AlignableComposite::components
const Alignables & components() const override
Return vector of direct components.
Definition: AlignableComposite.h:45
AlignableComposite::recursiveComponents
void recursiveComponents(Alignables &result) const override
Provide all components, subcomponents etc. (cf. description in base class)
Definition: AlignableComposite.cc:67
Alignable
Definition: Alignable.h:27
AlignableComposite::setSurfaceDeformation
void setSurfaceDeformation(const SurfaceDeformation *deformation, bool propagateDown) override
Set the surface deformation parameters - if (!propagateDown) do not affect daughters.
Definition: AlignableComposite.cc:213
AlignableComposite
Definition: AlignableComposite.h:25
AlignableComposite::addSurfaceDeformation
void addSurfaceDeformation(const SurfaceDeformation *deformation, bool propagateDown) override
Definition: AlignableComposite.cc:225
Alignable::StructureType
align::StructureType StructureType
Definition: Alignable.h:35
AlignableComposite::addAlignmentPositionErrorFromRotation
void addAlignmentPositionErrorFromRotation(const RotationType &rotation, bool propagateDown) override
Definition: AlignableComposite.cc:175
SurfaceDeformation
Definition: SurfaceDeformation.h:18
AlignableComposite::setSurface
void setSurface(const AlignableSurface &s)
Definition: AlignableComposite.h:112
alignCSCRings.s
s
Definition: alignCSCRings.py:92
AlignableComposite::dump
void dump() const override
Recursive printout of alignable structure.
Definition: AlignableComposite.cc:237
AlignableComposite::addAlignmentPositionErrorFromLocalRotation
void addAlignmentPositionErrorFromLocalRotation(const RotationType &rotation, bool propagateDown) override
Definition: AlignableComposite.cc:203
AlignableComposite::addComponent
void addComponent(Alignable *component) final
Definition: AlignableComposite.cc:53
AlignableComposite::update
void update(align::ID, StructureType aType, const RotationType &rot=RotationType())
Definition: AlignableComposite.cc:43
Alignable::displacement
const GlobalVector & displacement() const
Return change of the global position since the creation of the object.
Definition: Alignable.h:141
Alignable::rotation
const RotationType & rotation() const
Return change of orientation since the creation of the object.
Definition: Alignable.h:144
align::ID
uint32_t ID
Definition: Definitions.h:24
AlignableComposite::theStructureType
StructureType theStructureType
Definition: AlignableComposite.h:114
AlignableComposite::AlignableComposite
AlignableComposite()
default constructor hidden
Definition: AlignableComposite.h:118
Alignable::RotationType
align::RotationType RotationType
Definition: Alignable.h:31
AlignableComposite::alignableObjectId
StructureType alignableObjectId() const override
Return the alignable type identifier.
Definition: AlignableComposite.h:86
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
Alignable::theSurface
AlignableSurface theSurface
Definition: Alignable.h:237
AlignmentErrorsExtended
Definition: AlignmentErrorsExtended.h:10
AlignableComposite::moveComponentLocal
virtual void moveComponentLocal(const int i, const LocalVector &localDisplacement)
Move a single component with respect to the local reference frame.
Definition: AlignableComposite.cc:96
AlignableComposite::rotateInGlobalFrame
void rotateInGlobalFrame(const RotationType &rotation) override
Rotation interpreted in global reference frame.
Definition: AlignableComposite.cc:109
AlignableComposite::move
void move(const GlobalVector &displacement) override
Move with respect to the global reference frame.
Definition: AlignableComposite.cc:80
AlignableComposite::surfaceDeformationIdPairs
int surfaceDeformationIdPairs(std::vector< std::pair< int, SurfaceDeformation * > > &) const override
Return surface deformations.
Definition: AlignableComposite.cc:286
AlignableSurface
Definition: AlignableSurface.h:20
T
long double T
Definition: Basic3DVectorLD.h:48
AlignableComposite::theComponents
Alignables theComponents
Definition: AlignableComposite.h:118
AlignableComposite::moveComponentsLocal
virtual void moveComponentsLocal(const LocalVector &localDisplacement)
Move with respect to the local reference frame.
Definition: AlignableComposite.cc:91
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
Alignable.h
AlignableComposite::addAlignmentPositionError
void addAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown) override
Definition: AlignableComposite.cc:160
mps_fire.result
result
Definition: mps_fire.py:311
AlignableComposite::~AlignableComposite
~AlignableComposite() override
deleting its components
Definition: AlignableComposite.cc:27
AlignmentPositionError
Definition: AlignmentPositionError.h:10
AlignableComposite::setAlignmentPositionError
void setAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown) override
Definition: AlignableComposite.cc:148
Alignments
Definition: Alignments.h:10
AlignableComposite::alignmentErrors
AlignmentErrorsExtended * alignmentErrors() const override
Return vector of alignment errors.
Definition: AlignableComposite.cc:269