20 std::vector<float> coords;
21 if (ilayer >= m_hits.size())
22 throw std::range_error(
"FPGATrackSimTrack::getCoords() out of bounds");
26 coords.push_back(m_hits[ilayer].getEtaCoord());
27 coords.push_back(m_hits[ilayer].getPhiCoord());
31 coords = computeIdealCoords(ilayer);
39 std::vector<float> coords;
50 unsigned other_layer = (
m_hits[ilayer].getSide() == 0) ? ilayer + 1 : ilayer - 1;
54 double hitGPhi =
m_hits[ilayer].getGPhi();
60 hitGPhi += (
m_hits[ilayer].getR() - target_r) * houghRho;
61 expectedGPhi -= target_r * houghRho;
65 expectedGPhi -= (
std::pow(target_r * houghRho, 3.0) / 6.0);
68 double hitZ =
m_hits[ilayer].getZ();
70 hitZ -=
m_hits[ilayer].getGCotTheta() * (
m_hits[ilayer].getR() - target_r);
75 coords.push_back(hitZ);
76 coords.push_back(hitGPhi - expectedGPhi);
81 hitGPhi += (
m_hits[ilayer].getR() - target_r) * houghRho;
83 hitGPhi += (
pow(
m_hits[ilayer].
getR() * houghRho, 3.0) / 6.0);
86 double z =
m_hits[ilayer].getZ();
88 z -=
m_hits[ilayer].getGCotTheta() * (
m_hits[ilayer].getR() - target_r);
94 coords.push_back(hitGPhi);
102 if (coords.size() > 0) {
106 throw std::range_error(
"FPGATrackSimTrack::getCoord(layer,coord) out of bounds");
120 unsigned target_coord = 1;
125 if (coords.size() > target_coord) {
126 return coords.at(target_coord);
129 throw std::range_error(
"FPGATrackSimTrack::getCoord(layer,coord) out of bounds");
135 for (
const auto& hit :
m_hits) {
136 nCoords += hit.getDim();
147 throw std::range_error(
"FPGATrackSimTrack::setFPGATrackSimHit() out of bounds");