@asaim thank you for the clarification. So going back to my original question, how can I check if a particle is doing its last step inside a given volume, either because it exits from a boundary or it is absorbed or killed by a process? Maybe G4Step::IsLastStepInVolume() is ok for exiting particles but what for absorbed/killed ones? Should I check for fStopAndKill track status? Is it sufficient?