35 const EventContext& ctx)
const {
37 if (msgLvl(MSG::DEBUG)) {
38 ATH_MSG_DEBUG(
"Making xAOD::SpacePointContainer from SpacePointAuxInput");
41 ATH_MSG_DEBUG(
"Metadata numOfPixelSpacePoints: " << metadata->numOfPixelSpacePoints);
50 if (metadata->numOfPixelSpacePoints > 0 &&
57 << metadata->numOfPixelSpacePoints
58 <<
" but one or more required vectors are empty");
59 return StatusCode::SUCCESS;
62 if (metadata->numOfPixelSpacePoints > 0 && spAux.
elementIdList.empty()) {
69 std::make_unique<xAOD::SpacePointContainer>(),
70 std::make_unique<xAOD::SpacePointAuxContainer>()));
79 return StatusCode::FAILURE;
83 for (
unsigned int i = 0; i < metadata->numOfPixelSpacePoints; i++) {
87 <<
" >= elementIdList.size()=" << spAux.
elementIdList.size());
88 return StatusCode::FAILURE;
93 <<
" >= varianceR.size()=" << spAux.
varianceR.size());
94 return StatusCode::FAILURE;
99 <<
" >= varianceZ.size()=" << spAux.
varianceZ.size());
100 return StatusCode::FAILURE;
106 return StatusCode::FAILURE;
112 return StatusCode::FAILURE;
116 auto sp = pixelSpacePointsHandle->push_back(std::make_unique<xAOD::SpacePoint>());
119 Eigen::Matrix<float, 3, 1> globalPosition(
133 std::vector<const xAOD::UncalibratedMeasurement*>());
136 if (measIdx >= 0 &&
static_cast<size_t>(measIdx) < pixelClusters->size()) {
144 ATH_MSG_DEBUG(
"Created " << pixelSpacePointsHandle->size() <<
" pixel spacepoints");
146 return StatusCode::SUCCESS;
152 const EventContext& ctx)
const {
153 ATH_MSG_DEBUG(
"Making xAOD::SpacePointContainer from SpacePointAuxInput");
156 ATH_MSG_DEBUG(
"Metadata numOfStripSpacePoints: " << metadata->numOfStripSpacePoints);
164 if (metadata->numOfStripSpacePoints > 0 &&
170 ATH_MSG_ERROR(
"Inconsistent metadata: numOfStripSpacePoints = "
171 << metadata->numOfStripSpacePoints
172 <<
" but one or more required vectors are empty");
173 return StatusCode::FAILURE;
176 if (metadata->numOfStripSpacePoints > 0 && sspAux.
elementIdList.empty()) {
183 std::make_unique<xAOD::SpacePointContainer>(),
184 std::make_unique<xAOD::SpacePointAuxContainer>()));
191 if (!stripClusters.
isValid()) {
193 return StatusCode::FAILURE;
197 for (
unsigned int i = 0; i < metadata->numOfStripSpacePoints; i++) {
201 <<
" >= elementIdList.size()=" << sspAux.
elementIdList.size());
202 return StatusCode::FAILURE;
207 <<
" >= varianceR.size()=" << sspAux.
varianceR.size());
208 return StatusCode::FAILURE;
213 <<
" >= varianceZ.size()=" << sspAux.
varianceZ.size());
214 return StatusCode::FAILURE;
220 return StatusCode::FAILURE;
226 return StatusCode::FAILURE;
230 auto ssp = stripSpacePointsHandle->push_back(std::make_unique<xAOD::SpacePoint>());
233 Eigen::Matrix<float, 3, 1> globalPosition(
243 std::vector<xAOD::DetectorIDHashType> elementIds;
249 float topHalfStripLength = 0.0f;
250 float bottomHalfStripLength = 0.0f;
261 Eigen::Matrix<float, 3, 1> topStripDirection = Eigen::Matrix<float, 3, 1>::Zero();
263 topStripDirection = Eigen::Matrix<float, 3, 1>(
269 Eigen::Matrix<float, 3, 1> bottomStripDirection = Eigen::Matrix<float, 3, 1>::Zero();
271 bottomStripDirection = Eigen::Matrix<float, 3, 1>(
277 Eigen::Matrix<float, 3, 1> stripCenterDistance = Eigen::Matrix<float, 3, 1>::Zero();
279 stripCenterDistance = Eigen::Matrix<float, 3, 1>(
285 Eigen::Matrix<float, 3, 1> topStripCenter = Eigen::Matrix<float, 3, 1>::Zero();
287 topStripCenter = Eigen::Matrix<float, 3, 1>(
295 std::move(elementIds),
299 std::vector<const xAOD::UncalibratedMeasurement*>(),
301 bottomHalfStripLength,
303 bottomStripDirection,
308 if (meas_idx1 >= 0 &&
static_cast<size_t>(meas_idx1) < stripClusters->size() &&
309 meas_idx2 >= 0 &&
static_cast<size_t>(meas_idx2) < stripClusters->size()) {
323 ssp->globalPosition() = globalPosition;
327 << globalPosition(0) <<
", "
328 << globalPosition(1) <<
", "
329 << globalPosition(2) <<
")");
332 ATH_MSG_DEBUG(
"Created " << stripSpacePointsHandle->size() <<
" strip spacepoints");
334 return StatusCode::SUCCESS;