18 return StatusCode::SUCCESS;
32 ATH_CHECK(seedHandle.record(std::make_unique<ActsTrk::SeedContainer>()));
36 std::multimap<xAOD::DetectorIDHashType, Acts::SpacePointIndex2> spacePointMap;
37 seeds->
spacePoints().reserve(spacePointsHandle->size());
41 if (!spacePoint->measurements().empty()) {
43 spacePointMap.emplace(spacePoint->measurements().at(0)->identifierHash(), seeds->
spacePoints().size()-1
ul);
47 seeds->reserve(tracksHandle->size());
49 for (
const auto&
track : *tracksHandle) {
50 std::vector<const FPGATrackSimHit*> hitsToStoreInSeed;
51 std::vector<Acts::SpacePointIndex2> spacePointsToStoreInSeed;
53 if (hit.isReal() && hit.isPixel()) {
54 ATH_MSG_DEBUG(
"Hit coordinates in module " << hit.getIdentifierHash() <<
": (" << hit.getPhiCoord() <<
", " << hit.getEtaCoord() <<
")");
56 auto range = spacePointMap.equal_range(hit.getIdentifierHash());
60 if (std::abs(hit.getPhiCoord() - spacePoint->
measurements().at(0)->localPosition<2>()[0]) < kEpsilon &&
61 std::abs(hit.getEtaCoord() - spacePoint->
measurements().at(0)->localPosition<2>()[1]) < kEpsilon) {
62 spacePointsToStoreInSeed.push_back(
it->second);
76 auto seed = seeds->
push_back(spacePointsToStoreInSeed);
77 seed.vertexZ() =
track.getZ0();
78 if (
track.getChi2ndof() != 0.0) {
79 seed.quality() = 1.0 /
track.getChi2ndof();
87 return StatusCode::SUCCESS;