42 std::unique_ptr<InDet::PixelClusterCollection> PixelCollFromHits = std::make_unique<InDet::PixelClusterCollection>();
43 std::unique_ptr<InDet::SCT_ClusterCollection> SCTCollFromHits = std::make_unique<InDet::SCT_ClusterCollection>();
45 std::unique_ptr<InDet::PixelClusterCollection> PixelCollFromClusters = std::make_unique<InDet::PixelClusterCollection>();
46 std::unique_ptr<InDet::SCT_ClusterCollection> SCTCollFromClusters = std::make_unique<InDet::SCT_ClusterCollection>();
48 std::unique_ptr<InDet::SCT_ClusterCollection> SCTCollFromSP = std::make_unique<InDet::SCT_ClusterCollection>();
49 std::unique_ptr<xAOD::PixelClusterContainer> PixelContFromHits = std::make_unique<xAOD::PixelClusterContainer>();
50 std::unique_ptr<xAOD::PixelClusterAuxContainer> PixelAuxContFromHits = std::make_unique<xAOD::PixelClusterAuxContainer>();
51 PixelContFromHits->setStore (PixelAuxContFromHits.get());
53 std::unique_ptr<xAOD::StripClusterContainer> SCTContFromHits = std::make_unique<xAOD::StripClusterContainer>();
54 std::unique_ptr<xAOD::StripClusterAuxContainer> SCTAuxContFromHits = std::make_unique<xAOD::StripClusterAuxContainer>();
55 SCTContFromHits->setStore(SCTAuxContFromHits.get() );
57 std::unique_ptr<xAOD::PixelClusterContainer> PixelContFromClusters = std::make_unique<xAOD::PixelClusterContainer>();
58 std::unique_ptr<xAOD::PixelClusterAuxContainer> PixelAuxContFromClusters = std::make_unique<xAOD::PixelClusterAuxContainer>();
59 PixelContFromClusters->setStore (PixelAuxContFromClusters.get());
61 std::unique_ptr<xAOD::StripClusterContainer> SCTContFromClusters = std::make_unique<xAOD::StripClusterContainer>();
62 std::unique_ptr<xAOD::StripClusterAuxContainer> SCTAuxContFromClusters = std::make_unique<xAOD::StripClusterAuxContainer>();
63 SCTContFromClusters->setStore(SCTAuxContFromClusters.get() );
65 std::unique_ptr<xAOD::SpacePointContainer> StripSPCont = std::make_unique<xAOD::SpacePointContainer>();
66 std::unique_ptr<xAOD::SpacePointAuxContainer> StripSPAuxCont = std::make_unique<xAOD::SpacePointAuxContainer>();
67 StripSPCont->setStore(StripSPAuxCont.get() );
69 std::unique_ptr<xAOD::SpacePointContainer> PixelSPCont = std::make_unique<xAOD::SpacePointContainer>();
70 std::unique_ptr<xAOD::SpacePointAuxContainer> PixelSPAuxCont = std::make_unique<xAOD::SpacePointAuxContainer>();
71 PixelSPCont->setStore(PixelSPAuxCont.get() );
73 std::unique_ptr<ActsTrk::ProtoTrackCollection> ProtoTracksFromRoads = std::make_unique<ActsTrk::ProtoTrackCollection>();
74 std::unique_ptr<ActsTrk::ProtoTrackCollection> ProtoTracksFromTracks = std::make_unique<ActsTrk::ProtoTrackCollection>();
79 if (FPGAClustersHandle.
isValid()) {
97 if (!FPGARoadsHandle.
isValid()) {
98 ATH_MSG_FATAL(
"Failed to retrieve 1st stage FPGATrackSimRoadCollection");
99 return StatusCode::FAILURE;
103 ATH_CHECK(
m_ActsTrkConverter->findProtoTracks(ctx, *PixelContFromClusters, *SCTContFromClusters, *ProtoTracksFromRoads, *FPGARoadColl));
108 if (!FPGATracksHandle.
isValid()) {
109 ATH_MSG_FATAL(
"Failed to retrieve 1st stage FPGATrackSimTrackCollection");
110 return StatusCode::FAILURE;
115 ATH_CHECK(
m_ActsTrkConverter->findProtoTracks(ctx, *PixelContFromClusters, *SCTContFromClusters, *ProtoTracksFromTracks, *FPGATrackColl));
126 ATH_CHECK(
m_ClusterConverter->convertSpacePoints(*FPGASPColl, *StripSPCont, *PixelSPCont, *SCTContFromClusters, *PixelContFromClusters) );
128 else {{
ATH_MSG_WARNING(
"Failed to retrieve 1st stage FPGATrackSimSpacePointCollection. Will skip SP conversion ");}}
132 else {
ATH_MSG_WARNING(
"Failed to retrieve 1st stage FPGATrackSimClusterCollection. Will skip clusters and track conversion ");}
136 ATH_CHECK( xAODPixelClusterFromFPGAClusterHandle.
record (std::move(PixelContFromClusters), std::move(PixelAuxContFromClusters)));
137 ATH_CHECK( xAODStripClusterFromFPGAClusterHandle.
record (std::move(SCTContFromClusters), std::move(SCTAuxContFromClusters)));
141 ATH_CHECK( ActsProtoTrackFromFPGATrackHandle.
record (std::move(ProtoTracksFromTracks)));
144 ATH_CHECK( ActsProtoTrackFromFPGARoadHandle.
record (std::move(ProtoTracksFromRoads)));
151 ATH_CHECK( xAODStripSpacePointFromFPGAHandle.
record (std::move(StripSPCont), std::move(StripSPAuxCont)));
152 ATH_CHECK( xAODPixelSpacePointFromFPGAHandle.
record (std::move(PixelSPCont), std::move(PixelSPAuxCont)));
159 if (FPGAHitsHandle.
isValid()) {
171 else {
ATH_MSG_WARNING(
"Failed to retrieve 1st stage FPGATrackSimHitCollection. Will skip hit conversion ");}
176 ATH_CHECK( xAODPixelClusterFromFPGAHitHandle.
record (std::move(PixelContFromHits),std::move(PixelAuxContFromHits)));
177 ATH_CHECK( xAODStripClusterFromFPGAHitHandle.
record (std::move(SCTContFromHits),std::move(SCTAuxContFromHits)));
182 if (!FPGATracksHandle.
isValid()) {
183 ATH_MSG_FATAL(
"Failed to retrieve 1st stage FPGATrackSimTrackCollection");
184 return StatusCode::FAILURE;
189 ATH_CHECK(
m_ActsTrkConverter->findProtoTracks(ctx, *PixelContFromClusters, *SCTContFromClusters, *ProtoTracksFromTracks, *FPGATrackColl));
194 return StatusCode::SUCCESS;