File indexing completed on 2024-04-06 11:57:24
0001 #include "Alignment/SurveyAnalysis/interface/SurveyPxbImage.h"
0002
0003 #include <stdexcept>
0004 #include <utility>
0005 #include <sstream>
0006 #include <vector>
0007 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0008
0009 void SurveyPxbImage::fill(std::istringstream &iss) {
0010 id_t id1, id2;
0011 value_t x0, y0;
0012 value_t x1, y1;
0013 value_t x2, y2;
0014 value_t x3, y3;
0015 value_t sx, sy;
0016 bool rotflag;
0017 if (!(iss >> id1 >> x0 >> y0 >> x1 >> y1 >> id2 >> x2 >> y2 >> x3 >> y3 >> sy >> sx >> rotflag).fail()) {
0018 idPair_.first = id1;
0019 idPair_.second = id2;
0020 if (!rotflag) {
0021 measurementVec_.push_back(coord_t(x0, -y0));
0022 measurementVec_.push_back(coord_t(x1, -y1));
0023 measurementVec_.push_back(coord_t(x2, -y2));
0024 measurementVec_.push_back(coord_t(x3, -y3));
0025 } else {
0026 measurementVec_.push_back(coord_t(-x0, y0));
0027 measurementVec_.push_back(coord_t(-x1, y1));
0028 measurementVec_.push_back(coord_t(-x2, y2));
0029 measurementVec_.push_back(coord_t(-x3, y3));
0030 }
0031 sigma_x_ = sx;
0032 sigma_y_ = sy;
0033 isRotated_ = rotflag;
0034 isValidFlag_ = true;
0035 } else
0036 isValidFlag_ = false;
0037 }
0038
0039 const SurveyPxbImage::coord_t SurveyPxbImage::getCoord(count_t m) {
0040 if (m > 0 && m < 5)
0041 return measurementVec_[m - 1];
0042 else
0043 throw std::out_of_range("Attempt to access an inexistent measurement");
0044 }