CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/Alignment/CommonAlignment/interface/AlignableSurface.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignment_AlignableSurface_H
00002 #define Alignment_CommonAlignment_AlignableSurface_H
00003 
00013 #include <vector>
00014 
00015 #include "Alignment/CommonAlignment/interface/Utilities.h"
00016 #include "DataFormats/GeometrySurface/interface/GloballyPositioned.h"
00017 
00018 class BoundPlane;
00019 
00020 class AlignableSurface:
00021   public GloballyPositioned<align::Scalar>
00022 {
00023   public:
00024 
00026   AlignableSurface(
00027                    const BoundPlane& surface
00028                    );
00029 
00031   AlignableSurface(
00032                    const align::PositionType& = PositionType(), // default 0
00033                    const align::RotationType& = RotationType()  // default identity
00034                    );
00035 
00036   align::Scalar width() const { return theWidth; }
00037 
00038   align::Scalar length() const { return theLength; }
00039 
00040   void setWidth(align::Scalar width) { theWidth = width; }
00041 
00042   void setLength(align::Scalar length) { theLength = length; }
00043 
00044   using GloballyPositioned<align::Scalar>::toGlobal;
00045   using GloballyPositioned<align::Scalar>::toLocal;
00046 
00048   align::GlobalPoints toGlobal(
00049                                const align::LocalPoints&
00050                                ) const;
00051 
00053   align::RotationType toGlobal(
00054                                const align::RotationType&
00055                                ) const;
00056 
00058   align::EulerAngles toGlobal(
00059                               const align::EulerAngles&
00060                               ) const;
00061 
00063   align::RotationType toLocal(
00064                               const align::RotationType&
00065                               ) const;
00066 
00068   align::EulerAngles toLocal(
00069                              const align::EulerAngles&
00070                              ) const;
00071 
00072   private:
00073 
00074   align::Scalar theWidth;
00075   align::Scalar theLength;
00076 };
00077 
00078 #endif