68 const double safeCut = 0.00005;
69 double totalE = track->GetTotalEnergy();
70 if(
isGamma(track) && totalE < safeCut) {
75 G4Event*
ev = G4EventManager::GetEventManager()->GetNonconstCurrentEvent();
82 track->GetKineticEnergy() <
m_config.russianRouletteNeutronThreshold) {
93 mutableTrack->SetWeight(
m_config.russianRouletteNeutronWeight);
97 if (
m_config.applyPRR &&
isGamma(track) && track->GetOriginTouchable() &&
98 track->GetOriginTouchable()->GetVolume()->GetName().substr(0, 3) ==
"LAr" &&
100 track->GetKineticEnergy() <
m_config.russianRoulettePhotonThreshold) {
111 mutableTrack->SetWeight(
m_config.russianRoulettePhotonWeight);
115 if(track->GetParentID() == 0) {
119 if(primaryPartInfo) {
125 std::unique_ptr<TrackInformation> ti = std::make_unique<TrackInformation>(part);
126 ti->SetRegenerationNr(0);
132 track->SetUserInformation(ti.release());
141 track->SetUserInformation(bi.release());
176 auto particleDef = track->GetParticleDefinition();
177 return (particleDef == G4NeutrinoE::NeutrinoEDefinition() ||
178 particleDef == G4AntiNeutrinoE::AntiNeutrinoEDefinition() ||
179 particleDef == G4NeutrinoMu::NeutrinoMuDefinition() ||
180 particleDef == G4AntiNeutrinoMu::AntiNeutrinoMuDefinition() ||
181 particleDef == G4NeutrinoTau::NeutrinoTauDefinition() ||
182 particleDef == G4AntiNeutrinoTau::AntiNeutrinoTauDefinition());