Directional Radioactive Decay Products

I’m currently working on a simulation with a detector that uses a collimator in front of Am241 source to measure it’s alpha and gamma energy spectrum.

Due to the collimator, we are only interested in a very limited angle in the simulation. I tried using a GPS with an isometric angle distribution in which I limited the angle, but it doesn’t seem to work. I guess the angle distribution only applies to the particle definition of the GPS, and since that is the ion and not the decay product, it doesn’t do anything.

Is there a simple way to apply an angle distribution to the decay products? Else, the efficiency of the simulation is really low (less than 1% of the events create a hit in the detector).

My current code:

fGenericParticleSource = new G4GeneralParticleSource();
fGenericParticleSource->SetParticleDefinition(G4IonTable::GetIonTable()->GetIon(95, 241));

auto* singleParticleSource = fGenericParticleSource->GetCurrentSource();
auto* energyDistribution = singleParticleSource->GetEneDist();
auto* positionDistribution = singleParticleSource->GetPosDist();
auto* angleDistribution = singleParticleSource->GetAngDist();

energyDistribution->SetMonoEnergy(0. * eV);

positionDistribution->SetCentreCoords(G4ThreeVector(0., 0., -0.5 * worldSizeZ));

// NOTE: useless apperently
angleDistribution->SetMaxPhi(2 * M_PI);
angleDistribution->SetMaxTheta(M_PI / 60);

fGenericParticleSource->SetParticleCharge(0. * eplus);


Hi Stephan,

Your understanding that the angular distribution is being imposed on the Am-241 radioisotope seems to me to be correct. I would suggest creating each of the prominent alpha emissions from Am-241 manually. You can generate multiple sources through the command “/gps/source/add [intensity]” with the appropriate intensity corresponding to the branching fraction. Similarly you will use “/gps/particle [name]” to define the alpha and set “/gps/energy [energy]” accordingly. The commands I have given you for interfacing are through a macro file, while I see that you’re interfacing with GPS in the primary generator, so you will have to adapt the above commands accordingly.

Sorry if this workaround was already obvious to you! but in case it wasn’t I thought I’d point you towards a possible solution.

Best of luck with your work,

Joseph DeCunha

Thanks for the answer, I figured a custom solution would be the only possible way.