00001 #ifndef GUARD_surveypxbimage_h 00002 #define GUARD_surveypxbimage_h 00003 00004 #include <sstream> 00005 #include <vector> 00006 #include <utility> 00007 #include "DataFormats/GeometryVector/interface/LocalPoint.h" 00008 #include "DataFormats/GeometryVector/interface/LocalTag.h" 00009 #include "DataFormats/GeometryVector/interface/Point3DBase.h" 00010 00012 class SurveyPxbImage 00013 { 00014 public: 00015 typedef unsigned int count_t; 00016 typedef unsigned int id_t; 00017 typedef double value_t; 00018 typedef Point3DBase<value_t, LocalTag> coord_t; 00019 typedef std::pair<id_t,id_t> idPair_t; 00020 00022 enum location{ 00023 ll, // lower left mark (0) 00024 ul, // upper left mark (1) 00025 lr, // lower right mark (2) 00026 ur // upper right mark (3) 00027 }; 00028 00029 // Constructors 00030 SurveyPxbImage(); 00052 SurveyPxbImage(std::istringstream &iss) : isValidFlag_(false) 00053 { 00054 fill(iss); 00055 }; 00056 00057 void fill(std::istringstream &iss); 00058 00060 id_t getIdFirst() { return idPair_.first; }; 00062 id_t getIdSecond() { return idPair_.second; }; 00064 const idPair_t getIdPair() { return idPair_; }; 00065 00069 const coord_t getCoord(count_t m); 00070 00072 value_t getSigmaX() { return sigma_x_; } 00073 00075 value_t getSigmaY() { return sigma_y_; } 00076 00078 bool isValid() { return isValidFlag_; }; 00079 00080 00081 protected: 00083 std::vector<coord_t> measurementVec_; 00084 00086 value_t sigma_x_, sigma_y_; 00087 00089 bool isRotated_; 00090 00092 bool isValidFlag_; 00093 00096 idPair_t idPair_; 00097 00098 }; 00099 00100 #endif 00101