74 auto monitor_expectNextToInnermost =
Monitored::Collection(
"expectNextToInnermostHit", *track_particles,
78 fill(
m_monGroupName.value(),monitor_pt,monitor_eta, monitor_pixelHits, monitor_innermostHits, monitor_nextToInnermostHits,
79 monitor_expectInnermost, monitor_expectNextToInnermost);
80 return StatusCode::SUCCESS;
91 std::optional<ActsTrk::TrackContainer::ConstTrackProxy> >::
value);
92 std::optional<ActsTrk::TrackContainer::ConstTrackProxy> optional_track = *link_to_track;
94 if ( not optional_track.has_value() ) {
96 return StatusCode::SUCCESS;
99 ActsTrk::TrackContainer::ConstTrackProxy
track = optional_track.value();
100 std::array<uint8_t, Acts::NumTrackStateFlags+1> counts{};
103 lastMeasurementIndex =
track.tipIndex();
105 track.container().trackStateContainer().visitBackwards(lastMeasurementIndex,
106 [&counts] (
const typename ActsTrk::TrackStateBackend::ConstTrackStateProxy &state) ->
void
108 Acts::ConstTrackStateType
flag = state.typeFlags();
109 ++counts[Acts::NumTrackStateFlags];
111 for (
unsigned int flag_i=0; flag_i<Acts::NumTrackStateFlags; ++flag_i) {
112 if (
flag.test(flag_i)) {
113 if (flag_i == Acts::TrackStateFlag::HoleFlag) {
114 if (!state.hasReferenceSurface() || !state.referenceSurface().associatedDetectorElement()) continue;
122 auto monitor_measurement =
Monitored::Scalar<int>(
"Measurements",counts[Acts::TrackStateFlag::MeasurementFlag]);
123 auto monitor_parameter =
Monitored::Scalar<int>(
"Parameters",counts[Acts::TrackStateFlag::ParameterFlag]);
126 auto monitor_material =
Monitored::Scalar<int>(
"MaterialStates",counts[Acts::TrackStateFlag::MaterialFlag]);
127 auto monitor_sharedHit =
Monitored::Scalar<int>(
"SharedHits",counts[Acts::TrackStateFlag::SharedHitFlag]);
129 fill(m_monGroupName.value(),
130 monitor_states, monitor_measurement, monitor_parameter, monitor_outlier, monitor_hole,
131 monitor_material, monitor_sharedHit);
132 return StatusCode::SUCCESS;