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->SetPrimaryGenParticle(part);
127 ti->SetGenerationZeroGenParticle(part);
128 ti->SetRegenerationNr(0);
134 track->SetUserInformation(ti.release());
143 track->SetUserInformation(bi.release());
178 auto particleDef = track->GetParticleDefinition();
179 return (particleDef == G4NeutrinoE::NeutrinoEDefinition() ||
180 particleDef == G4AntiNeutrinoE::AntiNeutrinoEDefinition() ||
181 particleDef == G4NeutrinoMu::NeutrinoMuDefinition() ||
182 particleDef == G4AntiNeutrinoMu::AntiNeutrinoMuDefinition() ||
183 particleDef == G4NeutrinoTau::NeutrinoTauDefinition() ||
184 particleDef == G4AntiNeutrinoTau::AntiNeutrinoTauDefinition());