00001 #ifndef Alignment_CommonAlignment_AlignableDetUnit_H 00002 #define Alignment_CommonAlignment_AlignableDetUnit_H 00003 00004 #include "Alignment/CommonAlignment/interface/Alignable.h" 00005 00010 00011 class AlignableDetUnit : public Alignable 00012 { 00013 00014 public: 00015 00017 AlignableDetUnit( align::ID, const AlignableSurface& ); 00018 00020 virtual ~AlignableDetUnit(); 00021 00023 virtual void addComponent( Alignable* ); 00024 00026 virtual Alignables components() const { return Alignables(); } 00027 00029 virtual void recursiveComponents(Alignables &result) const {} 00030 00032 virtual void move( const GlobalVector& displacement ); 00033 00035 virtual void rotateInGlobalFrame( const RotationType& rotation ); 00036 00038 virtual void setAlignmentPositionError(const AlignmentPositionError& ape); 00039 00041 virtual void addAlignmentPositionError(const AlignmentPositionError& ape); 00042 00045 virtual void addAlignmentPositionErrorFromRotation(const RotationType& rot); 00046 00049 virtual void addAlignmentPositionErrorFromLocalRotation(const RotationType& rot); 00050 00052 virtual StructureType alignableObjectId () const { return align::AlignableDetUnit; } 00053 00055 virtual void dump() const; 00056 00058 virtual Alignments* alignments() const; 00059 00061 virtual AlignmentErrors* alignmentErrors() const; 00062 00063 private: 00064 00065 AlignmentPositionError* theAlignmentPositionError; 00066 00067 }; 00068 00069 #endif