CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/Alignment/CommonAlignment/interface/AlignableDetUnit.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignment_AlignableDetUnit_H
00002 #define Alignment_CommonAlignment_AlignableDetUnit_H
00003 
00004 #include "Alignment/CommonAlignment/interface/Alignable.h"
00005 
00006 class GeomDetUnit;
00007 
00012 
00013 class AlignableDetUnit : public Alignable 
00014 {
00015 
00016 public:
00017   
00019   AlignableDetUnit(const GeomDetUnit *geomDetUnit);
00020   
00022   virtual ~AlignableDetUnit();
00023 
00025   virtual void addComponent( Alignable* );
00026 
00028   virtual Alignables components() const { return Alignables(); }
00029 
00031   virtual void recursiveComponents(Alignables &result) const {}
00032 
00034   virtual void move( const GlobalVector& displacement );
00035 
00037   virtual void rotateInGlobalFrame( const RotationType& rotation );
00038 
00040   virtual void setAlignmentPositionError(const AlignmentPositionError &ape, bool /*propDown*/);
00041 
00044   virtual void addAlignmentPositionError(const AlignmentPositionError& ape, bool /*propDown*/);
00045 
00049   virtual void addAlignmentPositionErrorFromRotation(const RotationType& rot, bool /*propDown*/);
00050 
00054   virtual void addAlignmentPositionErrorFromLocalRotation(const RotationType& rot, bool /*propDown*/);
00055 
00057   virtual void setSurfaceDeformation(const SurfaceDeformation *deformation, bool);
00059   virtual void addSurfaceDeformation(const SurfaceDeformation *deformation, bool);
00060 
00062   virtual StructureType alignableObjectId () const { return align::AlignableDetUnit; }
00063 
00065   virtual void dump() const;
00066 
00068   virtual Alignments* alignments() const;
00069 
00071   virtual AlignmentErrors* alignmentErrors() const;
00072 
00074   virtual int surfaceDeformationIdPairs(std::vector<std::pair<int,SurfaceDeformation*> > &) const;
00075  
00077   virtual void cacheTransformation();
00078 
00080   virtual void restoreCachedTransformation();
00081 
00083   const AlignmentPositionError* alignmentPositionError() const { return theAlignmentPositionError;}
00084 
00085 private:
00086 
00087   AlignmentPositionError* theAlignmentPositionError;
00088   SurfaceDeformation* theSurfaceDeformation;
00089   SurfaceDeformation* theCachedSurfaceDeformation;
00090 };
00091 
00092 #endif