#include <AlignableComposite.h>
Public Member Functions | |
void | addAlignmentPositionError (const AlignmentPositionError &ape, bool propagateDown) override |
void | addAlignmentPositionErrorFromLocalRotation (const RotationType &rotation, bool propagateDown) override |
void | addAlignmentPositionErrorFromRotation (const RotationType &rotation, bool propagateDown) override |
void | addComponent (Alignable *component) override |
void | addSurfaceDeformation (const SurfaceDeformation *deformation, bool propagateDown) override |
AlignableComposite (align::ID id, StructureType aType, const RotationType &rot=RotationType()) | |
StructureType | alignableObjectId () const override |
Return the alignable type identifier. More... | |
AlignmentErrorsExtended * | alignmentErrors () const override |
Return vector of alignment errors. More... | |
Alignments * | alignments () const override |
Return alignment data. More... | |
Alignables | components () const override |
Return vector of direct components. More... | |
void | dump () const override |
Recursive printout of alignable structure. More... | |
void | move (const GlobalVector &displacement) override |
Move with respect to the global reference frame. More... | |
virtual void | moveComponentLocal (const int i, const LocalVector &localDisplacement) |
Move a single component with respect to the local reference frame. More... | |
virtual void | moveComponentsLocal (const LocalVector &localDisplacement) |
Move with respect to the local reference frame. More... | |
void | recursiveComponents (Alignables &result) const override |
Provide all components, subcomponents etc. (cf. description in base class) More... | |
void | rotateInGlobalFrame (const RotationType &rotation) override |
Rotation interpreted in global reference frame. More... | |
void | setAlignmentPositionError (const AlignmentPositionError &ape, bool propagateDown) override |
void | setSurfaceDeformation (const SurfaceDeformation *deformation, bool propagateDown) override |
Set the surface deformation parameters - if (!propagateDown) do not affect daughters. More... | |
int | surfaceDeformationIdPairs (std::vector< std::pair< int, SurfaceDeformation * > > &) const override |
Return surface deformations. More... | |
void | update (align::ID, StructureType aType, const RotationType &rot=RotationType()) |
~AlignableComposite () override | |
deleting its components More... | |
Public Member Functions inherited from Alignable | |
Alignable (align::ID, const AlignableSurface &) | |
Alignable (align::ID, const RotationType &) | |
AlignmentParameters * | alignmentParameters () const |
Get the AlignmentParameters. More... | |
virtual void | cacheTransformation () |
cache the current position, rotation and other parameters (e.g. surface deformations), also for possible components More... | |
virtual void | cacheTransformation (const align::RunNumber &) |
virtual CompConstraintType | compConstraintType () const |
Return the alignable type of contraints wrt. its components. More... | |
const Alignables & | deepComponents () const |
const GlobalVector & | displacement () const |
Return change of the global position since the creation of the object. More... | |
bool | firstCompsWithParams (Alignables ¶mComps) const |
const DetId & | geomDetId () const |
const PositionType & | globalPosition () const |
Return the global position of the object. More... | |
const RotationType & | globalRotation () const |
Return the global orientation of the object. More... | |
align::ID | id () const |
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit). More... | |
bool | lastCompsWithParams (Alignables ¶mComps) const |
Alignable * | mother () const |
Return pointer to container alignable (if any) More... | |
virtual void | restoreCachedTransformation () |
restore the previously cached transformation, also for possible components More... | |
virtual void | restoreCachedTransformation (const align::RunNumber &) |
virtual void | rotateAroundGlobalAxis (const GlobalVector &axis, Scalar radians) |
Rotation around arbitratry global axis. More... | |
virtual void | rotateAroundGlobalX (Scalar radians) |
Rotation around global x-axis. More... | |
virtual void | rotateAroundGlobalY (Scalar radians) |
Rotation around global y-axis. More... | |
virtual void | rotateAroundGlobalZ (Scalar radians) |
Rotation around global z-axis. More... | |
virtual void | rotateAroundLocalAxis (const LocalVector &axis, Scalar radians) |
Rotation around arbitratry local axis. More... | |
virtual void | rotateAroundLocalX (Scalar radians) |
Rotation around local x-axis. More... | |
virtual void | rotateAroundLocalY (Scalar radians) |
Rotation around local y-axis. More... | |
virtual void | rotateAroundLocalZ (Scalar radians) |
Rotation around local z-axis. More... | |
virtual void | rotateInLocalFrame (const RotationType &rotation) |
Rotation intepreted in the local reference frame. More... | |
const RotationType & | rotation () const |
Return change of orientation since the creation of the object. More... | |
void | setAlignmentParameters (AlignmentParameters *dap) |
Set the AlignmentParameters. More... | |
void | setMother (Alignable *mother) |
Assign mother to alignable. More... | |
void | setSurvey (const SurveyDet *) |
Set survey info. More... | |
int | size () const |
Return number of direct components. More... | |
const AlignableSurface & | surface () const |
Return the Surface (global position and orientation) of the object. More... | |
AlignmentSurfaceDeformations * | surfaceDeformations () const |
Return surface deformations, sorted by DetId. More... | |
const SurveyDet * | survey () const |
Return survey info. More... | |
void | update (align::ID, const AlignableSurface &) |
virtual | ~Alignable () |
Destructor. More... | |
Protected Member Functions | |
AlignableComposite (const GeomDet *geomDet) | |
Constructor from GeomDet, only for use in AlignableDet. More... | |
void | setSurface (const AlignableSurface &s) |
void | update (const GeomDet *geomDet) |
template<class T > | |
void | update (T)=delete |
Protected Member Functions inherited from Alignable | |
void | addDisplacement (const GlobalVector &displacement) |
void | addRotation (const RotationType &rotation) |
virtual void | updateMother (const GlobalVector &shift) |
Private Member Functions | |
AlignableComposite () | |
default constructor hidden More... | |
Private Attributes | |
Alignables | theComponents |
Additional Inherited Members | |
Public Types inherited from Alignable | |
typedef align::Alignables | Alignables |
enum | CompConstraintType { CompConstraintType::NONE, CompConstraintType::POSITION, CompConstraintType::POSITION_Z } |
typedef align::GlobalVector | GlobalVector |
typedef align::LocalVector | LocalVector |
typedef align::PositionType | PositionType |
typedef align::RotationType | RotationType |
typedef align::Scalar | Scalar |
typedef align::StructureType | StructureType |
Protected Types inherited from Alignable | |
template<class T > | |
using | Cache = std::map< align::RunNumber, T > |
Definition at line 25 of file AlignableComposite.h.
AlignableComposite::AlignableComposite | ( | align::ID | id, |
StructureType | aType, | ||
const RotationType & | rot = RotationType() |
||
) |
Constructor for a composite with given rotation. Position can be found from average of daughters' positions later, using addComponent(Alignable*).
Definition at line 22 of file AlignableComposite.cc.
References Alignable::compConstraintType_, and Alignable::POSITION.
|
override |
deleting its components
Definition at line 32 of file AlignableComposite.cc.
References mps_fire::i, and theComponents.
|
explicitprotected |
Constructor from GeomDet, only for use in AlignableDet.
Definition at line 14 of file AlignableComposite.cc.
References Alignable::compConstraintType_, and Alignable::POSITION.
|
inlineprivate |
default constructor hidden
Definition at line 123 of file AlignableComposite.h.
Referenced by alignableObjectId().
|
overridevirtual |
Add the AlignmentPositionError (if this Alignable is a Det) and, if (propagateDown), add to all the components of the composite
Implements Alignable.
Reimplemented in AlignableDet.
Definition at line 202 of file AlignableComposite.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, components(), and mps_fire::i.
Referenced by AlignableDet::addAlignmentPositionError(), and components().
|
overridevirtual |
Add the AlignmentPositionError resulting from local rotation (if this Alignable is a Det) and, if (propagateDown), add to all the components of the composite
Adds the AlignmentPositionError (in x,y,z coordinates) that would result on the various components from a possible Rotation of a composite the rotation matrix is in interpreted in LOCAL coordinates of the composite
Implements Alignable.
Definition at line 258 of file AlignableComposite.cc.
References addAlignmentPositionErrorFromRotation(), Alignable::globalRotation(), and TkRotation< T >::multiplyInverse().
Referenced by components().
|
overridevirtual |
Add the AlignmentPositionError resulting from global rotation (if this Alignable is a Det) and, if (propagateDown), add to all the components of the composite
Adds the AlignmentPositionError (in x,y,z coordinates) that would result on the various components from a possible Rotation of a composite the rotation matrix is in interpreted in GLOBAL coordinates
Implements Alignable.
Reimplemented in AlignableDet.
Definition at line 222 of file AlignableComposite.cc.
References PV3DBase< T, PVType, FrameType >::basicVector(), AlCaHLTBitMon_QueryRunRegistry::comp, components(), Alignable::globalPosition(), mps_fire::i, and TkRotation< T >::multiplyInverse().
Referenced by addAlignmentPositionErrorFromLocalRotation(), AlignableDet::addAlignmentPositionErrorFromRotation(), and components().
|
overridevirtual |
Add a component and set its mother to this alignable. (Note: The component will be adopted, e.g. later deleted.) Also find average position of this composite from its modules' positions.
Implements Alignable.
Definition at line 64 of file AlignableComposite.cc.
References Alignable::deepComponents(), Alignable::globalPosition(), gen::k, GloballyPositioned< T >::move(), Alignable::setMother(), theComponents, Alignable::theDeepComponents, and Alignable::theSurface.
Referenced by AlignableDet::AlignableDet(), AlignableDTChamber::AlignableDTChamber(), AlignableTrackerBuilder::buildPixelDetector(), and AlignableTrackerBuilder::buildStripDetector().
|
overridevirtual |
Add the surface deformation parameters to the existing ones, if (!propagateDown) do not affect daughters.
Implements Alignable.
Definition at line 285 of file AlignableComposite.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, components(), and mps_fire::i.
Referenced by components().
|
inlineoverridevirtual |
Return the alignable type identifier.
Implements Alignable.
Definition at line 92 of file AlignableComposite.h.
References AlignableComposite(), alignmentErrors(), alignments(), dump(), surfaceDeformationIdPairs(), theStructureType, and update().
Referenced by dump(), and recursiveComponents().
|
overridevirtual |
Return vector of alignment errors.
Implements Alignable.
Reimplemented in AlignableTracker, AlignableMuon, AlignableDTBarrel, AlignableCSCEndcap, and AlignableDet.
Definition at line 346 of file AlignableComposite.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, components(), popcon2dropbox::copy(), mps_fire::i, and AlignmentErrorsExtended::m_alignError.
Referenced by alignableObjectId(), and AlignableDet::alignmentErrors().
|
overridevirtual |
Return alignment data.
Implements Alignable.
Reimplemented in AlignableTracker, AlignableMuon, AlignableDTBarrel, AlignableCSCEndcap, AlignableDet, and AlignableSiStripDet.
Definition at line 322 of file AlignableComposite.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, components(), popcon2dropbox::copy(), mps_fire::i, and Alignments::m_align.
Referenced by alignableObjectId(), and AlignableDet::alignments().
|
inlineoverridevirtual |
Return vector of direct components.
Implements Alignable.
Reimplemented in AlignableMuon, AlignableCSCEndcap, AlignableCSCRing, AlignableCSCStation, AlignableDTBarrel, AlignableDTStation, and AlignableDTWheel.
Definition at line 51 of file AlignableComposite.h.
References addAlignmentPositionError(), addAlignmentPositionErrorFromLocalRotation(), addAlignmentPositionErrorFromRotation(), addSurfaceDeformation(), Alignable::displacement(), mps_fire::i, move(), moveComponentLocal(), moveComponentsLocal(), recursiveComponents(), mps_fire::result, rotateInGlobalFrame(), Alignable::rotation(), setAlignmentPositionError(), setSurfaceDeformation(), and theComponents.
Referenced by addAlignmentPositionError(), addAlignmentPositionErrorFromRotation(), AlignmentParameterSelector::addAllAlignables(), AlignmentParameterSelector::addSelection(), addSurfaceDeformation(), AlignableSiStripDet::AlignableSiStripDet(), alignmentErrors(), AlignableTracker::alignmentErrors(), alignments(), AlignableTracker::alignments(), AlignableTrackerBuilder::buildAlignables(), AlignableSiStripDet::consistifyAlignments(), dump(), move(), moveComponentLocal(), operator<<(), recursiveComponents(), rotateInGlobalFrame(), setAlignmentPositionError(), setSurfaceDeformation(), surfaceDeformationIdPairs(), and AlignableDet::update().
|
overridevirtual |
Recursive printout of alignable structure.
Implements Alignable.
Reimplemented in AlignableCSCRing, AlignableCSCStation, AlignableCSCEndcap, AlignableDTBarrel, AlignableDTStation, and AlignableDTWheel.
Definition at line 299 of file AlignableComposite.cc.
References alignableObjectId(), AlCaHLTBitMon_QueryRunRegistry::comp, components(), Alignable::globalPosition(), Alignable::globalRotation(), and mps_fire::i.
Referenced by alignableObjectId().
|
overridevirtual |
Move with respect to the global reference frame.
Implements Alignable.
Definition at line 95 of file AlignableComposite.cc.
References Alignable::addDisplacement(), AlCaHLTBitMon_QueryRunRegistry::comp, components(), mps_fire::i, GloballyPositioned< T >::move(), and Alignable::theSurface.
Referenced by Vispa.Gui.WidgetContainer.WidgetContainer::autosize(), components(), Vispa.Gui.VispaWidget.VispaWidget::dragWidget(), moveComponentsLocal(), Vispa.Gui.VispaWidget.VispaWidget::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().
|
virtual |
Move a single component with respect to the local reference frame.
Definition at line 119 of file AlignableComposite.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, components(), Exception, mps_fire::i, Alignable::size(), and Alignable::surface().
Referenced by components().
|
virtual |
Move with respect to the local reference frame.
Definition at line 111 of file AlignableComposite.cc.
References move(), and Alignable::surface().
Referenced by components().
|
overridevirtual |
Provide all components, subcomponents etc. (cf. description in base class)
Implements Alignable.
Definition at line 79 of file AlignableComposite.cc.
References align::AlignableDet, alignableObjectId(), and components().
Referenced by components().
|
overridevirtual |
Rotation interpreted in global reference frame.
Rotation intepreted such, that the orientation of the rotation axis is w.r.t. to the global coordinate system. This, however, does NOT mean the center of the rotation. This is simply taken as the center of the Alignable-object
Implements Alignable.
Definition at line 137 of file AlignableComposite.cc.
References Alignable::addRotation(), PV3DBase< T, PVType, FrameType >::basicVector(), AlCaHLTBitMon_QueryRunRegistry::comp, components(), Alignable::globalPosition(), mps_fire::i, TkRotation< T >::multiplyInverse(), GloballyPositioned< T >::rotate(), and Alignable::theSurface.
Referenced by components().
|
overridevirtual |
Set the AlignmentPositionError (if this Alignable is a Det) and, if (propagateDown), to all the components of the composite
Implements Alignable.
Reimplemented in AlignableDet.
Definition at line 185 of file AlignableComposite.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, components(), and mps_fire::i.
Referenced by components(), and AlignableDet::setAlignmentPositionError().
|
inlineprotected |
Definition at line 117 of file AlignableComposite.h.
References alignCSCRings::s, and Alignable::theSurface.
Referenced by AlignableCSCEndcap::AlignableCSCEndcap(), AlignableCSCRing::AlignableCSCRing(), AlignableCSCStation::AlignableCSCStation(), AlignableDTBarrel::AlignableDTBarrel(), AlignableDTStation::AlignableDTStation(), and AlignableDTWheel::AlignableDTWheel().
|
overridevirtual |
Set the surface deformation parameters - if (!propagateDown) do not affect daughters.
Implements Alignable.
Definition at line 271 of file AlignableComposite.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, components(), and mps_fire::i.
Referenced by components().
|
overridevirtual |
Return surface deformations.
Implements Alignable.
Definition at line 370 of file AlignableComposite.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, components(), KineDebug3::count(), mps_fire::i, and mps_fire::result.
Referenced by alignableObjectId().
void AlignableComposite::update | ( | align::ID | id, |
StructureType | aType, | ||
const RotationType & | rot = RotationType() |
||
) |
Updater for a composite with given rotation. The given id and structure type have to match the current ones.
Definition at line 50 of file AlignableComposite.cc.
References Exception, Alignable::globalPosition(), theStructureType, and Alignable::update().
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), alignableObjectId(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), dqm-mbProfile.Profile::finish(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), AlignableDet::update(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().
|
protected |
Updater from GeomDet, only for use in AlignableDet The given GeomDetUnit id has to match the current id.
Definition at line 38 of file AlignableComposite.cc.
References Exception, GeomDet::geographicalId(), DetId::rawId(), GeomDet::surface(), and Alignable::update().
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), dqm-mbProfile.Profile::finish(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().
|
protecteddelete |
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), dqm-mbProfile.Profile::finish(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().
|
private |
Definition at line 123 of file AlignableComposite.h.
Referenced by addComponent(), components(), and ~AlignableComposite().
|
protected |
Definition at line 119 of file AlignableComposite.h.
Referenced by AlignableCSCChamber::AlignableCSCChamber(), AlignableDTChamber::AlignableDTChamber(), AlignableDTSuperLayer::AlignableDTSuperLayer(), alignableObjectId(), and update().