Radioactive decay biasing - spontaneous fission process

_Geant4 Version:_11.1.2
_Operating System:_Ubuntu 22.04.4 LTS
_Compiler/Version:_11.4.0
_CMake Version:_3.22.1

Hello,

I’m attempting to model spontaneous fission and alpha decay of uranium fuel. Given that these processes are quite rare I’ve assumed I need to use a biasing technique. I’ve looked at forum posts/examples etc. and this is what I have in the physics file:

    G4GenericBiasingPhysics* biasingPhysics = new G4GenericBiasingPhysics();

    std::vector< G4String > neutronProcessesToBias, alphaProcessesToBias;
    // Neutron decay (spontaneous fission)
    neutronProcessesToBias        .push_back( "Decay"           );
    biasingPhysics->PhysicsBias("neutron",          neutronProcessesToBias);
    // Alpha decay
    alphaProcessesToBias        .push_back( "Decay"           );
    biasingPhysics->PhysicsBias("alpha",          alphaProcessesToBias);
    
    RegisterPhysics (biasingPhysics);

So I’m biasing neutrons (SF) and alpha particles. Then I’m using stacking action to score either neutrons or alphas in a file:

if(aTrack->GetDefinition()->GetParticleName()==“neutron”) {
if(aTrack->GetCreatorProcess()) {
process = aTrack->GetCreatorProcess()->GetProcessName();
particle = aTrack->GetParticleDefinition()->GetParticleName();
Er = aTrack->GetKineticEnergy();
std::ofstream file(“output.out”, std::ios::app); // appends to file
file << particle << “\t”
<< aTrack->GetParticleDefinition()->GetParticleType() << “\t”
<< process << “\t”
<< Er/keV << G4endl;

     G4cout << "Particle name = " << aTrack->GetDefinition()->GetParticleName();
   }
 }

The output file isn’t being created when I try to score neutrons, so I’m clearly doing something wrong but I’m not sure what exactly. Is this the correct way to bias spontaneous fission?

Thanks in advance,

Emma