67 const double safeCut = 0.00005;
68 double totalE = track->GetTotalEnergy();
69 if(
isGamma(track) && totalE < safeCut) {
74 G4Event*
ev = G4EventManager::GetEventManager()->GetNonconstCurrentEvent();
80 track->GetWeight() <
m_config.russianRouletteNeutronWeight &&
81 track->GetKineticEnergy() <
m_config.russianRouletteNeutronThreshold) {
92 mutableTrack->SetWeight(
m_config.russianRouletteNeutronWeight);
96 if (
m_config.applyPRR &&
isGamma(track) && track->GetOriginTouchable() &&
97 track->GetOriginTouchable()->GetVolume()->GetName().substr(0, 3) ==
"LAr" &&
98 track->GetWeight() <
m_config.russianRoulettePhotonWeight &&
99 track->GetKineticEnergy() <
m_config.russianRoulettePhotonThreshold) {
110 mutableTrack->SetWeight(
m_config.russianRoulettePhotonWeight);
114 if(track->GetParentID() == 0) {
118 if(primaryPartInfo) {
124 std::unique_ptr<TrackInformation> ti = std::make_unique<TrackInformation>(part);
125 ti->SetRegenerationNr(0);
131 track->SetUserInformation(ti.release());
140 track->SetUserInformation(bi.release());
175 auto particleDef = track->GetParticleDefinition();
176 return (particleDef == G4NeutrinoE::NeutrinoEDefinition() ||
177 particleDef == G4AntiNeutrinoE::AntiNeutrinoEDefinition() ||
178 particleDef == G4NeutrinoMu::NeutrinoMuDefinition() ||
179 particleDef == G4AntiNeutrinoMu::AntiNeutrinoMuDefinition() ||
180 particleDef == G4NeutrinoTau::NeutrinoTauDefinition() ||
181 particleDef == G4AntiNeutrinoTau::AntiNeutrinoTauDefinition());