Hello Geant4 community,
I am trying to simulate a Co-60 radioactive source using G4GeneralParticleSource (GPS) with true nuclear decay physics (i.e., letting Geant4 emit the gammas via G4RadioactiveDecayPhysics instead of manually shooting gammas).
However, I am consistently getting zero energy deposited for all events, even though my detector fully surrounds the source.
Simulation Setup
Geometry
- Detector: Spherical LaBr3 shell
- Inner radius: 5 mm
- Outer radius: 5.5 cm
- Centered at the origin
- Source: Point source at origin
- World/envelope: Air
The detector completely encloses the source.
Physics List
In main():
auto physicsList = new QBBC;
physicsList->RegisterPhysics(new G4RadioactiveDecayPhysics());
physicsList->SetVerboseLevel(1);
runManager->SetUserInitialization(physicsList);
I also call:
G4GenericIon::Definition();
Primary Generator (GPS, no macro file)
PrimaryGeneratorAction::PrimaryGeneratorAction()
{
fGPS = new G4GeneralParticleSource();
// Position: point source at origin
fGPS->GetCurrentSource()->GetPosDist()->SetPosDisType("Point");
fGPS->GetCurrentSource()->GetPosDist()->SetCentreCoords(
G4ThreeVector(0, 0, 0)
);
// Angular: isotropic
fGPS->GetCurrentSource()->GetAngDist()->SetAngDistType("iso");
// Energy (set to zero to let radioactive decay generate gammas)
fGPS->GetCurrentSource()->GetEneDist()->SetEnergyDisType("Mono");
fGPS->GetCurrentSource()->GetEneDist()->SetMonoEnergy(0.0);
}
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* event)
{
G4GenericIon::Definition();
// Co-60 nucleus
auto ion = G4IonTable::GetIonTable()->GetIon(27, 60, 0. * keV);
fGPS->SetParticleDefinition(ion);
fGPS->GeneratePrimaryVertex(event);
}
Output
For all events:
Gamma 0 deposited 0 keV
Gamma 1 deposited 0 keV
Gamma 2 deposited 0 keV
...
Physics output confirms:
Process: RadioactiveDecay
is active for GenericIon.
What I Expect
I expect Co-60 to decay and emit 1.17 MeV and 1.33 MeV gammas, which should deposit energy in the surrounding LaBr3 detector.
Question
What am I missing in my GPS / radioactive decay setup that prevents gammas from being generated or tracked?
Is there a required setting (e.g. particle lifetime, ion time, region cuts, or GPS configuration) that I have overlooked?
*Geant4 Version:*11.4.0
Operating System: Windows
Compiler/Version: MSVC (Visual Studio 2022) – MSBuild 18.0.5
*CMake Version:*4.1.1-msvc1