_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