diff --git a/src/algorithms/tracking/TrackParamTruthInit.cc b/src/algorithms/tracking/TrackParamTruthInit.cc index 35ab17917b..75ebd247d3 100644 --- a/src/algorithms/tracking/TrackParamTruthInit.cc +++ b/src/algorithms/tracking/TrackParamTruthInit.cc @@ -39,9 +39,11 @@ void TrackParamTruthInit::process(const Input& input, const Output& output) cons // Loop over input particles for (const auto& mcparticle : *mcparticles) { - // accept generator-stable particles (HepMC3/DDSim gun) or Geant4-produced - // secondaries; reject generator intermediates (partons, resonances, beams) - if (!(mcparticle.getGeneratorStatus() == 1 || mcparticle.getSimulatorStatus() != 0)) { + // Accept all generated particles that been transported in simulation. + // Both primary / decayed signal or beam background particles can produce truth seeds. + // SimulatorStatus will stay 0 for intermediate partons, resonances, or any particles + // that are not transported in simulation hence have no chance to leave hits. + if (mcparticle.getSimulatorStatus() == 0) { trace("ignoring particle with generatorStatus = {}, simulatorStatus = {}", mcparticle.getGeneratorStatus(), mcparticle.getSimulatorStatus()); continue;