21         return StatusCode::SUCCESS;
 
   34         if (measurements->empty()){
 
   35             return StatusCode::SUCCESS;
 
   42             decorHandle(*prdViewer.at(0)) = 
LinkType{};
 
   45             if ((simHitViewer.size() == 0 || 
m_idHelperSvc->detElementHash(simHitViewer.at(0)->identify()) > viewHash)  && 
 
   46                  !simHitViewer.loadView(chambId)) {
 
   49             } 
else if (
m_idHelperSvc->detElementHash(simHitViewer.at(0)->identify())  < viewHash \
 
   51                         return m_idHelperSvc->detElementHash(hit->identify()) == viewHash;
 
   55             ATH_MSG_VERBOSE(
"Container size "<<simHits->size()<<
" viewer size: "<<simHitViewer.size()<<
" view hash: "<<viewHash);
 
   56             std::unordered_set<Identifier> prds{};
 
   60                 switch (measurement->type()) {
 
   68                         if (matching_itr != simHitViewer.end()) {
 
   69                             bestSimHit =(*matching_itr);
 
   76                         const int ml = mmIdHelper.multilayer(mmHit->identify());
 
   77                         for (
const uint16_t strip : mmHit->stripNumbers()) {
 
   78                             prds.insert(mmIdHelper.channelID(mmHit->identify(), ml, mmHit->gasGap(), strip));
 
   84                         if (matching_itr != simHitViewer.end()) {
 
   85                             bestSimHit =(*matching_itr);
 
   98                     if (measurement->numDimensions() == 1) {
 
   99                         locPos = measurement->localPosition<1>().
x() * Amg::Vector3D::UnitX();
 
  101                         locPos.block<2,1>(0,0) = xAOD::toEigen(measurement->localPosition<2>());
 
  105                         if (gasGapId != 
m_idHelperSvc->gasGapId(simHit->identify())) {
 
  114                         if (measurement->numDimensions() == 1) {
 
  115                             dist = std::abs(prdPos.x() - simHit->localPosition().x()) 
 
  116                                  / std::sqrt(measurement->localCovariance<1>()(0,0));
 
  118                             const Amg::Vector2D diff = (prdPos - xAOD::toEigen(simHit->localPosition())).block<2,1>(0,0);
 
  119                             dist = std::sqrt(
diff.dot(xAOD::toEigen(measurement->localCovariance<2>()).inverse() * 
diff));
 
  121                         if (dist < closestDistance) {
 
  122                             closestDistance = dist;
 
  129                     return StatusCode::FAILURE;
 
  135             decorHandle(*measurement) = 
LinkType{*simHits, bestSimHit->
index()};
 
  138         } 
while (prdViewer.next());
 
  140         return StatusCode::SUCCESS;