30 if (!thePixelClusters.
isValid()){
32 return StatusCode::FAILURE;
34 ATH_MSG_DEBUG(
"I found " <<thePixelClusters->size()<<
" pix clusters");
36 if (!theStripClusters.
isValid()){
38 return StatusCode::FAILURE;
40 ATH_MSG_DEBUG(
"I found " <<theStripClusters->size()<<
" strip clusters");
46 auto myProtoTracks = std::make_unique<ActsTrk::ProtoTrackCollection>();
51 ATH_MSG_INFO(
"I received " << myProtoTracks->size() <<
" proto-tracks");
62 const Acts::GeometryContext tgContext =
m_ctxProvider.getGeometryContext(ctx);
63 const Acts::MagneticFieldContext mfContext =
m_ctxProvider.getMagneticFieldContext(ctx);
64 const Acts::CalibrationContext calContext{
m_ctxProvider.getCalibrationContext(ctx)};
68 Acts::VectorTrackContainer trackBackend;
69 Acts::VectorMultiTrajectory trackStateBackend;
72 bool initializedColumns =
false;
75 for (
auto & proto : *myProtoTracks){
77 tgContext, mfContext, calContext);
80 if (
res->size() == 0 )
continue;
81 if(not proto.measurements.size())
continue;
82 ATH_MSG_DEBUG(
".......Done track with size "<< proto.measurements.size());
83 const auto trackProxy =
res->getTrack(0);
84 if (not trackProxy.hasReferenceSurface()) {
85 ATH_MSG_INFO(
"There is not reference surface for this track");
88 if (!initializedColumns) {
89 trackContainer.ensureDynamicColumns(*
res);
90 initializedColumns =
true;
92 auto destProxy = trackContainer.getTrack(trackContainer.addTrack());
93 destProxy.copyFrom(trackProxy);
97 std::make_unique<Acts::BoundTrackParameters>( trackProxy.referenceSurface().getSharedPtr(),
98 trackProxy.parameters(),
99 trackProxy.covariance(),
100 trackProxy.particleHypothesis());
108 std::unique_ptr<ActsTrk::TrackContainer> constTracksContainer = std::make_unique<ActsTrk::TrackContainer>( std::move(constTrackBackend),
109 std::move(constTrackStateBackend) );
110 ATH_CHECK(trackContainerHandle.record(std::move(constTracksContainer)));
114 ATH_CHECK(handle.record(std::move(myProtoTracks)));
117 return StatusCode::SUCCESS;