48 const double safeCut = 0.00005;
49 double totalE = track->GetTotalEnergy();
50 if(
isGamma(track) && totalE < safeCut) {
55 G4Event*
ev = G4EventManager::GetEventManager()->GetNonconstCurrentEvent();
60 bool rouletted =
false;
65 track->GetKineticEnergy() <
m_config.russianRouletteNeutronThreshold) {
83 mutableTrack->SetWeight(
m_config.russianRouletteNeutronWeight);
88 if (
m_config.russianRoulettePhotonThreshold > 0 &&
isGamma(track) && track->GetOriginTouchable() &&
89 track->GetOriginTouchable()->GetVolume()->GetName().substr(0, 3) ==
"LAr" &&
91 track->GetKineticEnergy() <
m_config.russianRoulettePhotonThreshold) {
109 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());