84 ATH_MSG_DEBUG(
"Retrieved " << tracks->size() <<
" tracks..." );
87 ATH_MSG_DEBUG(
"Retrieved " << muons->size() <<
" muons..." );
107 std::vector<const xAOD::TrackParticle*> tracks_vector(tracks->begin(), tracks->end());
108 for (
const auto& track : tracks_vector ) {
119 dec_type_label(*track) = truth ? acc_type_label(*truth) : TruthDecoratorHelpers::TruthType::Label::NoTruth;
120 dec_source_label(*track) = truth ? acc_source_label(*truth) : TruthDecoratorHelpers::TruthSource::Label::NoTruth;
121 dec_vertex_index(*track) = truth ? acc_vertex_index(*truth) : -2;
122 dec_muon_origin_label(*track) = -2;
128 for (
const auto muon : *muons ) {
131 if (muon->muonType() != xAOD::Muon::MuonType::Combined) {
continue; }
134 unsigned int muTruthOrigin = 0;
139 auto track_link = muon->inDetTrackParticleLink();
140 if ( !track_link.isValid() ) {
continue; }
141 auto track = *track_link;
145 if ( !truth ) {
continue; }
150 if ( abs(truth->pdgId()) != 13 ) {
166 muTruthOrigin = it->second;
170 ATH_MSG_ERROR(
"Muon truth origin not found in the map: " <<
static_cast<int>(muTruthOriginType));
171 return StatusCode::FAILURE;
176 dec_muon_origin_label(*track) = muTruthOrigin;
179 return StatusCode::SUCCESS;