45 return StatusCode::FAILURE;
49 return StatusCode::FAILURE;
53 return StatusCode::FAILURE;
56 std::multimap<uint64_t, const xAOD::TrackParticle*> track_hits;
59 for(
const auto trk:*tracks){
60 auto trkTrk_link = trk->trackLink();
61 if (trkTrk_link.isValid()){
62 auto trkTrk = *trkTrk_link;
63 auto states = trkTrk->trackStateOnSurfaces();
64 for(
const auto state:*states){
68 auto hitOnTrack = state->measurementOnTrack();
82 typedef std::multimap<uint64_t, const xAOD::TrackParticle*>::iterator MMAPIterator;
85 std::pair<MMAPIterator, MMAPIterator> result = track_hits.equal_range(hit->identifier());
86 int count = std::distance(result.first, result.second);
87 std::vector<ElementLink<xAOD::TrackParticleContainer>> vec_ElemLink_SCT;
89 JetSCTClusterHits(*hit)=0;
92 JetSCTClusterHits(*hit)=1;
93 for (MMAPIterator it = result.first; it != result.second; ++it){
97 JetSCTClusterTrackAssocs(*hit)=vec_ElemLink_SCT;
101 std::pair<MMAPIterator, MMAPIterator> result = track_hits.equal_range(hit->identifier());
102 int count = std::distance(result.first, result.second);
103 std::vector<ElementLink<xAOD::TrackParticleContainer>> vec_ElemLink_pix;
105 JetPixelClusterHits(*hit)=0;
108 JetPixelClusterHits(*hit)=1;
109 for (MMAPIterator it = result.first; it != result.second; ++it){
113 JetPixelClusterTrackAssocs(*hit)=vec_ElemLink_pix;
115 return StatusCode::SUCCESS;