97 std::unique_ptr<TruthParticleHitCounts>
98 truth_particle_hit_counts( std::make_unique<TruthParticleHitCounts>() );
115 measurement_to_truth_association_maps{};
122 return assoc ? assoc->size() : 0ul;
130 unsigned int measurement_type_i=0;
131 --measurement_type_i;
133 ++measurement_type_i;
134 if (!associated_truth_particles)
continue;
137 assert (truth_particle);
139 if (mother_particle) {
140 assert(measurement_type_i < (*truth_particle_hit_counts)[mother_particle].
size());
141 ++(*truth_particle_hit_counts)[mother_particle][measurement_type_i];
147 unsigned int truth_particles_without_enough_measurements
149 [
this, n_hits_min](
const std::pair<const xAOD::TruthParticle * const,HitCounterArray> &elm) {
150 unsigned int n_measurements=std::accumulate(elm.second.begin(), elm.second.end(),0u);
152 return n_measurements<n_hits_min;
155 m_nTruthParticlesWithHits += truth_particle_hit_counts->size();
157 ATH_MSG_DEBUG(
"Truth particles with hits:" << truth_particle_hit_counts->size()
158 <<
", without enough hits: " << truth_particles_without_enough_measurements);
161 if (truth_particle_hit_counts_out_handle.
record( std::move(truth_particle_hit_counts)).isFailure()) {
163 return StatusCode::FAILURE;
166 return StatusCode::SUCCESS;