|
|
Go to the documentation of this file.
35 throw cms::Exception(
"Alignment") <<
"@SUB=AlignableComposite::update\n"
36 <<
"Trying to update with GeomDet* pointing to 'nullptr'.";
45 throw cms::Exception(
"Alignment") <<
"@SUB=AlignableComposite::update\n"
46 <<
"Current alignable type does not match type of the update.";
75 iter->recursiveComponents(
result);
83 i->move(displacement);
92 this->
move(this->
surface().toGlobal(localDisplacement));
98 throw cms::Exception(
"LogicError") <<
"AlignableComposite index (" <<
i <<
") out of range";
101 comp[
i]->move(this->
surface().toGlobal(localDisplacement));
114 for (
const auto&
i :
comp) {
129 const GlobalVector localPositionVector =
i->globalPosition() - myPosition;
155 i->setAlignmentPositionError(ape, propagateDown);
167 i->addAlignmentPositionError(ape, propagateDown);
185 const GlobalVector localPositionVector =
i->globalPosition() - myPosition;
194 i->addAlignmentPositionError(ape, propagateDown);
195 i->addAlignmentPositionErrorFromRotation(
rotation, propagateDown);
220 i->setSurfaceDeformation(deformation, propagateDown);
232 i->addSurfaceDeformation(deformation, propagateDown);
244 <<
" components" << std::endl
245 <<
" position = " << this->
globalPosition() <<
", orientation:" << std::endl
249 for (
const auto&
i :
comp)
261 std::unique_ptr<Alignments> tmpAlignments{
i->alignments()};
262 std::copy(tmpAlignments->m_align.begin(), tmpAlignments->m_align.end(), std::back_inserter(m_alignments->
m_align));
276 std::unique_ptr<AlignmentErrorsExtended> tmpAlignmentErrorsExtended{
i->alignmentErrors()};
277 std::copy(tmpAlignmentErrorsExtended->m_alignError.begin(),
278 tmpAlignmentErrorsExtended->m_alignError.end(),
282 return m_alignmentErrors;
291 count +=
i->surfaceDeformationIdPairs(
result);
Alignments * alignments() const override
Return alignment data.
Alignables theDeepComponents
void rotate(const RotationType &rotation)
align::Alignables Alignables
const Alignables & components() const override
Return vector of direct components.
void recursiveComponents(Alignables &result) const override
Provide all components, subcomponents etc. (cf. description in base class)
void setSurfaceDeformation(const SurfaceDeformation *deformation, bool propagateDown) override
Set the surface deformation parameters - if (!propagateDown) do not affect daughters.
void addSurfaceDeformation(const SurfaceDeformation *deformation, bool propagateDown) override
Basic3DVector< T > multiplyInverse(const Basic3DVector< T > &v) const
Log< level::Info, false > LogInfo
void addAlignmentPositionErrorFromRotation(const RotationType &rotation, bool propagateDown) override
const Plane & surface() const
The nominal surface of the GeomDet.
CompConstraintType compConstraintType_
void dump() const override
Recursive printout of alignable structure.
void update(align::ID, const AlignableSurface &)
void addAlignmentPositionErrorFromLocalRotation(const RotationType &rotation, bool propagateDown) override
void addComponent(Alignable *component) final
void update(align::ID, StructureType aType, const RotationType &rot=RotationType())
void addRotation(const RotationType &rotation)
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
const GlobalVector & displacement() const
Return change of the global position since the creation of the object.
DetId geographicalId() const
The label of this GeomDet.
const RotationType & rotation() const
Return change of orientation since the creation of the object.
StructureType theStructureType
AlignableComposite()
default constructor hidden
StructureType alignableObjectId() const override
Return the alignable type identifier.
void move(const GlobalVector &displacement)
AlignableSurface theSurface
const BasicVectorType & basicVector() const
virtual void moveComponentLocal(const int i, const LocalVector &localDisplacement)
Move a single component with respect to the local reference frame.
void setMother(Alignable *mother)
Assign mother to alignable.
void rotateInGlobalFrame(const RotationType &rotation) override
Rotation interpreted in global reference frame.
void move(const GlobalVector &displacement) override
Move with respect to the global reference frame.
int surfaceDeformationIdPairs(std::vector< std::pair< int, SurfaceDeformation * > > &) const override
Return surface deformations.
constexpr uint32_t rawId() const
get the raw id
const Alignables & deepComponents() const
void addDisplacement(const GlobalVector &displacement)
virtual void moveComponentsLocal(const LocalVector &localDisplacement)
Move with respect to the local reference frame.
void addAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown) override
std::vector< AlignTransform > m_align
std::vector< AlignTransformErrorExtended > m_alignError
~AlignableComposite() override
deleting its components
const PositionType & globalPosition() const
Return the global position of the object.
void setAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown) override
AlignmentErrorsExtended * alignmentErrors() const override
Return vector of alignment errors.
const RotationType & globalRotation() const
Return the global orientation of the object.
int size() const
Return number of direct components.