44 ATH_MSG_DEBUG(
" \\__ Number of retrieved tracks: " << tracks->size());
51 ATH_MSG_DEBUG(
" \\__ Number of already used measurement from previous passes: " << inputPrdMap->
size());
56 if (inputPrdMap ==
nullptr) {
57 ATH_CHECK( outputPrdMapHandle.
record( std::make_unique< ActsTrk::PrepRawDataAssociation >() ) );
59 ATH_CHECK( outputPrdMapHandle.
record( std::make_unique< ActsTrk::PrepRawDataAssociation >( *inputPrdMap ) ) );
64 enum class RecordStatus :
int {UNKNOWN=0,
SUCCESS, NOSOURCELINK, NULLSOURCELINK, ALREADYSTORED};
65 std::size_t nMeasurements = 0ul;
66 RecordStatus status = RecordStatus::UNKNOWN;
68 for (std::size_t i(0ul); i<tracks->size(); ++i) {
69 tracks->trackStateContainer().visitBackwards(tracks->getTrack(i).tipIndex(),
70 [&prdMap, &nMeasurements, &status,
this]
71 (
const auto state) ->
bool
74 if (not state.typeFlags().isMeasurement()) {
79 if ( not state.hasUncalibratedSourceLink() ) {
80 status = RecordStatus::NOSOURCELINK;
91 if (uncalibMeas ==
nullptr) {
92 status = RecordStatus::NULLSOURCELINK;
96 switch(uncalibMeas->type()) {
97 case xAOD::UncalibMeasType::PixelClusterType:
98 ++m_stat[kNPixelMeasurements];
100 case xAOD::UncalibMeasType::StripClusterType:
101 ++m_stat[kNStripMeasurements];
103 case xAOD::UncalibMeasType::HGTDClusterType:
104 ++m_stat[kNHgtdMeasurements];
111 const auto& [itr, inserted] = prdMap->
markAsUsed(uncalibMeas->identifier());
113 status = RecordStatus::ALREADYSTORED;
116 status = RecordStatus::SUCCESS;
119 if (status == RecordStatus::SUCCESS)
continue;
122 case RecordStatus::NOSOURCELINK:
123 {
ATH_MSG_ERROR(
"There was a problem when storing the Prd collections");
125 return StatusCode::FAILURE;
126 case RecordStatus::NULLSOURCELINK:
127 {
ATH_MSG_ERROR(
"There was a problem when storing the Prd collections");
129 return StatusCode::FAILURE;
130 case RecordStatus::ALREADYSTORED:
133 {
ATH_MSG_DEBUG(
"There was a problem when storing the Prd collections");
137 {
ATH_MSG_WARNING(
"There was a problem when storing the Prd collections");
143 ATH_MSG_DEBUG(
"Number of used measurements: " << prdMap->size() <<
" from " << tracks->size() <<
" tracks");
144 ATH_MSG_DEBUG(
" \\__ Found a total of " << nMeasurements <<
" measurements");
146 return StatusCode::SUCCESS;