32 ATH_CHECK(seedHandle.
record(std::make_unique<ActsTrk::SeedContainer>()));
36 std::map<Identifier::value_type, Acts::SpacePointIndex2> spacePointMap;
37 seeds->
spacePoints().reserve(spacePointsHandle->size());
42 if (!spacePoint->measurements().empty()) {
44 const auto identifier = spacePoint->measurements().at(0)->identifier();
47 auto [it, inserted] = spacePointMap.emplace(identifier, seeds->
spacePoints().size()-1ul);
49 ATH_MSG_ERROR(
"Duplicate identifier 0x" << std::hex << identifier << std::dec
50 <<
" found for space point. Keeping first occurrence.");
55 seeds->reserve(tracksHandle->size());
57 for (
const auto& track : *tracksHandle) {
58 std::vector<Acts::SpacePointIndex2> spacePointsToStoreInSeed;
60 if (hit.isReal() && hit.isPixel()) {
61 ATH_MSG_DEBUG(
"Hit coordinates in module " << hit.getRdoIdentifier()
62 <<
": (" << hit.getPhiCoord() <<
", " << hit.getEtaCoord() <<
")");
65 auto it = spacePointMap.find(hit.getRdoIdentifier());
66 if (it != spacePointMap.end()) {
67 spacePointsToStoreInSeed.push_back(it->second);
70 << std::hex << hit.getRdoIdentifier() << std::dec);
80 auto seed = seeds->
push_back(spacePointsToStoreInSeed);
81 seed.vertexZ() = track.getZ0();
82 if (track.getChi2ndof() != 0.0) {
83 seed.quality() = 1.0 / track.getChi2ndof();
91 return StatusCode::SUCCESS;