00001 #ifndef Alignment_CommonAlignment_SurveyDet_h 00002 #define Alignment_CommonAlignment_SurveyDet_h 00003 00013 #include "Alignment/CommonAlignment/interface/AlignableSurface.h" 00014 00015 class SurveyDet 00016 { 00017 public: 00018 00033 SurveyDet( 00034 const AlignableSurface&, // set the surface 00035 const align::ErrorMatrix& // set the survey errors 00036 ); 00037 00038 inline const align::PositionType& position() const; 00039 00040 inline const align::RotationType& rotation() const; 00041 00042 inline const align::ErrorMatrix& errors() const; 00043 00044 inline const align::LocalPoints& localPoints() const; 00045 00046 inline align::GlobalPoints globalPoints() const; 00047 00050 AlgebraicMatrix derivatives( 00051 unsigned int index // index of point 00052 ) const; 00053 00054 private: 00055 00056 AlignableSurface theSurface; // surface of det from survey info 00057 00058 align::ErrorMatrix theErrors; 00059 00060 std::vector<align::LocalPoint> thePoints; // survey points on the surface 00061 }; 00062 00063 const align::PositionType& SurveyDet::position() const 00064 { 00065 return theSurface.position(); 00066 } 00067 00068 const align::RotationType& SurveyDet::rotation() const 00069 { 00070 return theSurface.rotation(); 00071 } 00072 00073 const align::ErrorMatrix& SurveyDet::errors() const 00074 { 00075 return theErrors; 00076 } 00077 00078 const align::LocalPoints& SurveyDet::localPoints() const 00079 { 00080 return thePoints; 00081 } 00082 00083 align::GlobalPoints SurveyDet::globalPoints() const 00084 { 00085 return theSurface.toGlobal(thePoints); 00086 } 00087 00088 #endif