CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
Alignable Class Referenceabstract

#include <Alignable.h>

Inheritance diagram for Alignable:
AlignableBeamSpot AlignableComposite AlignableDetUnit AlignableCSCEndcap AlignableCSCRing AlignableCSCStation AlignableDet AlignableDTBarrel AlignableDTStation AlignableDTWheel AlignableMuon AlignableTracker

Public Types

typedef align::Alignables Alignables
 
typedef align::GlobalVector GlobalVector
 
typedef align::LocalVector LocalVector
 
typedef align::PositionType PositionType
 
typedef align::RotationType RotationType
 
typedef align::Scalar Scalar
 
typedef align::StructureType StructureType
 

Public Member Functions

virtual void addAlignmentPositionError (const AlignmentPositionError &ape, bool propagateDown)=0
 
virtual void addAlignmentPositionErrorFromLocalRotation (const RotationType &rotation, bool propagateDown)=0
 
virtual void addAlignmentPositionErrorFromRotation (const RotationType &rotation, bool propagateDown)=0
 
virtual void addComponent (Alignable *)=0
 
virtual void addSurfaceDeformation (const SurfaceDeformation *deformation, bool propagateDown)=0
 
 Alignable (align::ID, const AlignableSurface &)
 
 Alignable (align::ID, const RotationType &)
 
virtual StructureType alignableObjectId () const =0
 Return the alignable type identifier. More...
 
virtual AlignmentErrorsExtendedalignmentErrors () const =0
 Return vector of alignment errors. More...
 
AlignmentParametersalignmentParameters () const
 Get the AlignmentParameters. More...
 
virtual Alignmentsalignments () const =0
 Return vector of alignment data. More...
 
virtual void cacheTransformation ()
 cache the current position, rotation and other parameters (e.g. surface deformations), also for possible components More...
 
virtual Alignables components () const =0
 Return vector of all direct components. More...
 
const AlignablesdeepComponents () const
 
const GlobalVectordisplacement () const
 Return change of the global position since the creation of the object. More...
 
virtual void dump () const =0
 Recursive printout of alignable information. More...
 
bool firstCompsWithParams (Alignables &paramComps) const
 
const DetIdgeomDetId () const
 
const PositionTypeglobalPosition () const
 Return the global position of the object. More...
 
const RotationTypeglobalRotation () 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 &paramComps) const
 
Alignablemother () const
 Return pointer to container alignable (if any) More...
 
virtual void move (const GlobalVector &displacement)=0
 Movement with respect to the global reference frame. More...
 
virtual void recursiveComponents (Alignables &result) const =0
 
virtual void restoreCachedTransformation ()
 restore the previously cached transformation, also for possible components More...
 
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 rotateInGlobalFrame (const RotationType &rotation)=0
 
virtual void rotateInLocalFrame (const RotationType &rotation)
 Rotation intepreted in the local reference frame. More...
 
const RotationTyperotation () const
 Return change of orientation since the creation of the object. More...
 
void setAlignmentParameters (AlignmentParameters *dap)
 Set the AlignmentParameters. More...
 
virtual void setAlignmentPositionError (const AlignmentPositionError &ape, bool propagateDown)=0
 Set the alignment position error - if (!propagateDown) do not affect daughters. More...
 
void setMother (Alignable *mother)
 Assign mother to alignable. More...
 
virtual void setSurfaceDeformation (const SurfaceDeformation *deformation, bool propagateDown)=0
 Set the surface deformation parameters - if (!propagateDown) do not affect daughters. More...
 
void setSurvey (const SurveyDet *)
 Set survey info. More...
 
int size () const
 Return number of direct components. More...
 
const AlignableSurfacesurface () const
 Return the Surface (global position and orientation) of the object. More...
 
virtual int surfaceDeformationIdPairs (std::vector< std::pair< int, SurfaceDeformation * > > &) const =0
 
AlignmentSurfaceDeformationssurfaceDeformations () const
 Return surface deformations, sorted by DetId. More...
 
const SurveyDetsurvey () const
 Return survey info. More...
 
virtual ~Alignable ()
 Destructor. More...
 

Protected Member Functions

void addDisplacement (const GlobalVector &displacement)
 
void addRotation (const RotationType &rotation)
 

Protected Attributes

GlobalVector theCachedDisplacement
 
RotationType theCachedRotation
 
AlignableSurface theCachedSurface
 
Alignables theDeepComponents
 
DetId theDetId
 
GlobalVector theDisplacement
 
align::ID theId
 
RotationType theRotation
 
AlignableSurface theSurface
 

Private Member Functions

 Alignable ()
 private default ctr. to enforce usage of the specialised ones More...
 

Private Attributes

AlignmentParameterstheAlignmentParameters
 
AlignabletheMother
 
const SurveyDettheSurvey
 

Detailed Description

Abstract base class for alignable entities. Any Alignable object can be moved and rotated. Also an alignment uncertainty can be set.

Date:
2011/09/19 11:42:35
Revision:
1.36

(last update by

Author:
mussgill

)

Definition at line 29 of file Alignable.h.

Member Typedef Documentation

Definition at line 39 of file Alignable.h.

Definition at line 37 of file Alignable.h.

Definition at line 38 of file Alignable.h.

Definition at line 35 of file Alignable.h.

Definition at line 36 of file Alignable.h.

Definition at line 34 of file Alignable.h.

Definition at line 40 of file Alignable.h.

Constructor & Destructor Documentation

Alignable::Alignable ( align::ID  id,
const AlignableSurface surf 
)

Constructor from id and surface, setting also geomDetId (AlignableNavigator relies on the fact that only AlignableDet/DetUnit have geomDetId!)

Definition at line 19 of file Alignable.cc.

Alignable::Alignable ( align::ID  id,
const RotationType rot 
)

Constructor for a composite with given rotation. Position is found (later) from average of daughters' positions.

Definition at line 31 of file Alignable.cc.

Alignable::~Alignable ( )
virtual

Destructor.

Definition at line 43 of file Alignable.cc.

Alignable::Alignable ( )
inlineprivate

private default ctr. to enforce usage of the specialised ones

Definition at line 241 of file Alignable.h.

Member Function Documentation

virtual void Alignable::addAlignmentPositionError ( const AlignmentPositionError ape,
bool  propagateDown 
)
pure virtual

Add (or set if not already present) the AlignmentPositionError, but if (!propagateDown) do not affect daughters

Implemented in AlignableComposite, AlignableBeamSpot, AlignableDetUnit, and AlignableDet.

virtual void Alignable::addAlignmentPositionErrorFromLocalRotation ( const RotationType rotation,
bool  propagateDown 
)
pure virtual

add (or set if not already present) the AlignmentPositionError which would result from a rotation (given in the LOCAL frame of the Alignable) of the alignable object, but if (!propagateDown) do not affect daughters

Implemented in AlignableComposite, AlignableBeamSpot, and AlignableDetUnit.

virtual void Alignable::addAlignmentPositionErrorFromRotation ( const RotationType rotation,
bool  propagateDown 
)
pure virtual

add (or set if not already present) the AlignmentPositionError which would result from a rotation (given in the GLOBAL frame of CMS) of the alignable object, but if (!propagateDown) do not affect daughters

Implemented in AlignableComposite, AlignableBeamSpot, AlignableDetUnit, and AlignableDet.

virtual void Alignable::addComponent ( Alignable )
pure virtual

Add a component to alignable (GF: Should be interface in Composite, but needed in AlignableBuilder::build)

Implemented in AlignableComposite, AlignableBeamSpot, and AlignableDetUnit.

Referenced by SurveyInputBase::addComponent(), and AlignableBuilder::build().

void Alignable::addDisplacement ( const GlobalVector displacement)
protected

Definition at line 229 of file Alignable.cc.

void Alignable::addRotation ( const RotationType rotation)
protected

Definition at line 237 of file Alignable.cc.

virtual void Alignable::addSurfaceDeformation ( const SurfaceDeformation deformation,
bool  propagateDown 
)
pure virtual

Add the surface deformation parameters to the existing ones, if (!propagateDown) do not affect daughters.

Implemented in AlignableBeamSpot, AlignableComposite, and AlignableDetUnit.

virtual StructureType Alignable::alignableObjectId ( ) const
pure virtual
virtual AlignmentErrorsExtended* Alignable::alignmentErrors ( ) const
pure virtual
AlignmentParameters* Alignable::alignmentParameters ( ) const
inline
virtual Alignments* Alignable::alignments ( ) const
pure virtual
void Alignable::cacheTransformation ( )
virtual

cache the current position, rotation and other parameters (e.g. surface deformations), also for possible components

Reimplemented in AlignableDetUnit.

Definition at line 273 of file Alignable.cc.

virtual Alignables Alignable::components ( ) const
pure virtual
const Alignables& Alignable::deepComponents ( ) const
inline

Return the list of lowest daughters (non-composites) of Alignable. Contain itself if Alignable is a unit.

Definition at line 71 of file Alignable.h.

const GlobalVector& Alignable::displacement ( ) const
inline

Return change of the global position since the creation of the object.

Definition at line 140 of file Alignable.h.

Referenced by operator<<(), and SurveyOutput::write().

virtual void Alignable::dump ( ) const
pure virtual
bool Alignable::firstCompsWithParams ( Alignables paramComps) const

Steps down hierarchy until components with AlignmentParameters are found and adds them to argument. True either if no such components are found or if all branches of components end with such components (i.e. 'consistent').

Definition at line 50 of file Alignable.cc.

const DetId& Alignable::geomDetId ( ) const
inline

Return the DetId of the associated GeomDet (0 by default) This should be removed. Ultimately we need only one ID.

Definition at line 182 of file Alignable.h.

Referenced by MuonAlignmentInputSurveyDB::addSurveyInfo_().

const PositionType& Alignable::globalPosition ( ) const
inline

Return the global position of the object.

Definition at line 134 of file Alignable.h.

Referenced by operator<<().

const RotationType& Alignable::globalRotation ( ) const
inline

Return the global orientation of the object.

Definition at line 137 of file Alignable.h.

Referenced by AlignableBuilder::build(), and operator<<().

align::ID Alignable::id ( ) const
inline
bool Alignable::lastCompsWithParams ( Alignables paramComps) const

Steps down hierarchy to the lowest level of components with AlignmentParameters and adds them to argument. True either if no such components are found or if all branches of components end with such components (i.e. 'consistent').

Definition at line 81 of file Alignable.cc.

Alignable* Alignable::mother ( ) const
inline

Return pointer to container alignable (if any)

Definition at line 90 of file Alignable.h.

Referenced by AlignmentMonitorGeneric::event().

virtual void Alignable::move ( const GlobalVector displacement)
pure virtual

Movement with respect to the global reference frame.

Implemented in AlignableComposite, AlignableBeamSpot, and AlignableDetUnit.

Referenced by SurveyInputTrackerFromDB::addSurveyInfo(), and SurveyAlignment::shiftSensors().

virtual void Alignable::recursiveComponents ( Alignables result) const
pure virtual

Provide all components, subcomponents, subsub... etc. of Alignable down to AlignableDetUnit, except for 'single childs' like e.g. AlignableDetUnits of AlignableDets representing single sided SiStrip modules. (for performance reason by adding to argument)

Implemented in AlignableComposite, AlignableBeamSpot, and AlignableDetUnit.

void Alignable::restoreCachedTransformation ( )
virtual

restore the previously cached transformation, also for possible components

Reimplemented in AlignableDetUnit.

Definition at line 289 of file Alignable.cc.

void Alignable::rotateAroundGlobalAxis ( const GlobalVector axis,
Scalar  radians 
)
virtual

Rotation around arbitratry global axis.

Definition at line 133 of file Alignable.cc.

void Alignable::rotateAroundGlobalX ( Scalar  radians)
virtual

Rotation around global x-axis.

Definition at line 151 of file Alignable.cc.

void Alignable::rotateAroundGlobalY ( Scalar  radians)
virtual

Rotation around global y-axis.

Definition at line 177 of file Alignable.cc.

void Alignable::rotateAroundGlobalZ ( Scalar  radians)
virtual

Rotation around global z-axis.

Definition at line 203 of file Alignable.cc.

void Alignable::rotateAroundLocalAxis ( const LocalVector axis,
Scalar  radians 
)
virtual

Rotation around arbitratry local axis.

Definition at line 142 of file Alignable.cc.

void Alignable::rotateAroundLocalX ( Scalar  radians)
virtual

Rotation around local x-axis.

Definition at line 164 of file Alignable.cc.

void Alignable::rotateAroundLocalY ( Scalar  radians)
virtual

Rotation around local y-axis.

Definition at line 190 of file Alignable.cc.

void Alignable::rotateAroundLocalZ ( Scalar  radians)
virtual

Rotation around local z-axis.

Definition at line 216 of file Alignable.cc.

virtual void Alignable::rotateInGlobalFrame ( const RotationType rotation)
pure virtual

Rotation intepreted such that the orientation of the rotation axis is w.r.t. to the global coordinate system. Rotation is relative to current orientation

Implemented in AlignableComposite, AlignableBeamSpot, and AlignableDetUnit.

Referenced by SurveyAlignment::shiftSensors().

void Alignable::rotateInLocalFrame ( const RotationType rotation)
virtual

Rotation intepreted in the local reference frame.

Definition at line 120 of file Alignable.cc.

Referenced by SurveyInputTrackerFromDB::addSurveyInfo().

const RotationType& Alignable::rotation ( ) const
inline

Return change of orientation since the creation of the object.

Definition at line 143 of file Alignable.h.

Referenced by operator<<(), and SurveyOutput::write().

void Alignable::setAlignmentParameters ( AlignmentParameters dap)
virtual void Alignable::setAlignmentPositionError ( const AlignmentPositionError ape,
bool  propagateDown 
)
pure virtual

Set the alignment position error - if (!propagateDown) do not affect daughters.

Implemented in AlignableComposite, AlignableBeamSpot, AlignableDetUnit, and AlignableDet.

void Alignable::setMother ( Alignable mother)
inline

Assign mother to alignable.

Definition at line 93 of file Alignable.h.

virtual void Alignable::setSurfaceDeformation ( const SurfaceDeformation deformation,
bool  propagateDown 
)
pure virtual

Set the surface deformation parameters - if (!propagateDown) do not affect daughters.

Implemented in AlignableBeamSpot, AlignableComposite, and AlignableDetUnit.

void Alignable::setSurvey ( const SurveyDet survey)
int Alignable::size ( ) const
inline
const AlignableSurface& Alignable::surface ( ) const
inline
virtual int Alignable::surfaceDeformationIdPairs ( std::vector< std::pair< int, SurfaceDeformation * > > &  ) const
pure virtual

Return surface deformations as a vector of pairs of raw DetId and pointers to surface deformations

Implemented in AlignableComposite, AlignableBeamSpot, and AlignableDetUnit.

AlignmentSurfaceDeformations * Alignable::surfaceDeformations ( void  ) const

Return surface deformations, sorted by DetId.

Definition at line 245 of file Alignable.cc.

const SurveyDet* Alignable::survey ( ) const
inline

Return survey info.

Definition at line 210 of file Alignable.h.

Referenced by SurveyAlignmentPoints::findAlignPars(), and SurveyDBUploader::getSurveyInfo().

Member Data Documentation

AlignmentParameters* Alignable::theAlignmentParameters
private

Definition at line 241 of file Alignable.h.

GlobalVector Alignable::theCachedDisplacement
protected

Definition at line 233 of file Alignable.h.

RotationType Alignable::theCachedRotation
protected

Definition at line 234 of file Alignable.h.

AlignableSurface Alignable::theCachedSurface
protected

Definition at line 232 of file Alignable.h.

Alignables Alignable::theDeepComponents
protected

Definition at line 236 of file Alignable.h.

DetId Alignable::theDetId
protected

Definition at line 222 of file Alignable.h.

GlobalVector Alignable::theDisplacement
protected

Definition at line 229 of file Alignable.h.

align::ID Alignable::theId
protected

Definition at line 225 of file Alignable.h.

Alignable* Alignable::theMother
private

Definition at line 245 of file Alignable.h.

RotationType Alignable::theRotation
protected

Definition at line 230 of file Alignable.h.

AlignableSurface Alignable::theSurface
protected
const SurveyDet* Alignable::theSurvey
private

Definition at line 247 of file Alignable.h.