CMS 3D CMS Logo

AlignableComposite.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignment_AlignableComposite_H
00002 #define Alignment_CommonAlignment_AlignableComposite_H
00003 
00004 #include "Alignment/CommonAlignment/interface/Alignable.h"
00005 
00022 
00023 class GeomDet;
00024 
00025 class AlignableComposite : public Alignable 
00026 {
00027 
00028 public:
00032   AlignableComposite( align::ID id,
00033                       StructureType aType,
00034                       const RotationType& rot = RotationType() );
00035 
00037   virtual ~AlignableComposite();
00038 
00042   virtual void addComponent( Alignable* component );
00043 
00045   virtual Alignables components() const { return theComponents; }
00046 
00048   virtual void recursiveComponents(Alignables &result) const;
00049 
00051   virtual void move( const GlobalVector& displacement ); 
00052 
00054   virtual void moveComponentsLocal( const LocalVector& localDisplacement );
00055 
00057   virtual void moveComponentLocal( const int i, const LocalVector& localDisplacement );
00058 
00060   virtual void rotateInGlobalFrame( const RotationType& rotation );
00061 
00063   virtual void setAlignmentPositionError( const AlignmentPositionError& ape );
00064 
00066   virtual void addAlignmentPositionError( const AlignmentPositionError& ape );
00067 
00069   virtual void addAlignmentPositionErrorFromRotation( const RotationType& rotation );
00070 
00072   virtual void addAlignmentPositionErrorFromLocalRotation( const RotationType& rotation );
00073 
00075   virtual StructureType alignableObjectId() const { return theStructureType; }
00076 
00078   virtual void dump() const;
00079 
00081   virtual Alignments* alignments() const;
00082 
00084   virtual AlignmentErrors* alignmentErrors() const;
00085 
00086 protected:
00088   explicit AlignableComposite( const GeomDet* geomDet );
00089 
00090   void setSurface( const AlignableSurface& s) { theSurface = s; }
00091   
00092   StructureType theStructureType;
00093 
00094 private:
00096   AlignableComposite() : Alignable (0, RotationType()) {};
00097 
00098   Alignables theComponents; // direct daughters
00099 };
00100 
00101 #endif

Generated on Tue Jun 9 17:23:41 2009 for CMSSW by  doxygen 1.5.4