Incorrect alpha trajectory and bragg peak

Hello,

I am simulating the trajectory and energy deposition of alpha particles in a scintillator material, the shape of the trajectories and energy deposition are not how I expect them to be and I can’t manage to correct it. Especially, my simulation doesn’t render the bragg peak of the energy deposition properly.

To give more detailed information :

  • I am shooting 5.5 MeV alphas in a ZnS material of density 4.09.
  • This is my PhysicsList :

CustomPhysicsList::CustomPhysicsList() {}

CustomPhysicsList::~CustomPhysicsList() {}

void CustomPhysicsList::ConstructProcess()
{

QGSP_BIC::ConstructProcess();
RegisterPhysics(new G4StepLimiterPhysics());

// Default physics
RegisterPhysics(new G4DecayPhysics());
// Radioactive decay
RegisterPhysics(new G4RadioactiveDecayPhysics());
// EM physics
RegisterPhysics(new G4EmStandardPhysics_option4());
//RegisterPhysics(new G4EmLivermorePhysics());

RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP());
RegisterPhysics( new G4EmExtraPhysics());
RegisterPhysics( new G4HadronElasticPhysics());
RegisterPhysics( new G4StoppingPhysics());
RegisterPhysics( new G4IonBinaryCascadePhysics());
RegisterPhysics( new G4NeutronTrackingCut());

// Optical physics
G4OpAbsorption* absorption = new G4OpAbsorption();
G4OpBoundaryProcess* boundary = new G4OpBoundaryProcess();
G4Scintillation* scint = new G4Scintillation(“Scintillation”);
scint->SetTrackSecondariesFirst(true);

// Add processes to particles when applicable
auto theParticleIterator = GetParticleIterator();
theParticleIterator->reset();

while( (*theParticleIterator)() )
{
    G4ParticleDefinition* particle = theParticleIterator->value();
    G4ProcessManager* pmanager = particle->GetProcessManager();
    G4String particleName = particle->GetParticleName();

    if (scint->IsApplicable(*particle))
    {
        pmanager->AddProcess(scint);
        pmanager->SetProcessOrderingToLast(scint, idxAtRest);
        pmanager->SetProcessOrderingToLast(scint, idxPostStep);
    }

    if (particleName == "opticalphoton")
    {
        pmanager->AddDiscreteProcess(absorption);
        pmanager->AddDiscreteProcess(boundary);
    }
}

}

  • This is what my trajectories look like (in red : water, in blue : ZnS) : a lot of interactions troughout the track and a big step with “huge” energy deposition (1.5-2 MeV) at the end, whereas I expect to see an increasing number of interactions at the end of the track and higher energy deposition.

  • I then compare the energy deposition from Geant4 to SRIM simulations : the LET seems to be overestimated at the beginning of the track and then underestimated at the end. For instance the energy deposited at the end of the final big step is lower than it should be and the bragg peak isn’t rendered properly.

Any idea where the problem may come from ? I am relatevely new to Geant4 I am not entirely sure if my physics list is implemented properly and if I use the correct processes for my simulation.

Thanks in advance.

Geant4 Version: 4.11.03


This what my energy deposition look like : in black the LET calculated from Geant4, we can see the end of the track is missing the Bragg Peak. In Red in the background, is the corresponding LET simulated with SRIM.

1 Like

Hi @Nicolas_Auger

Thank you for your detailed post.

In the meantime, I think SRIM implements the Continuous Slowing Down Approximation (CSDA), so for a more meaningful comparison it is usually recommended to prevent the production of delta rays and disable energy loss fluctuations in Geant4 [1]. This helps mimic SRIM’s deterministic treatment of energy loss and avoids differences arising from stochastic effects or secondary particle production.

To do so, from the EM example test18 [2], you can use the following commands:

# prevent any delta rays production
/run/setCut 100 km
# disable fluctuations
/process/eLoss/fluct false

I am not an expert on the topic, so I let the experts give a proper answer, but I hope these indications go into the right direction.

Best,
Alvaro
PS: I found other effects that may play a role, for example the step limitation by energy loss [3]; in case you want to try more stringent parameters, you can set it as follows (you may try other values)

/process/eLoss/StepFunction 0.1 0.001 mm

As it was discussed in the previous Geant4 thread, MSC may have an impact as well.

[1] Geant4 and SRIM radon-222 range agreement - #2 by guatelli
[2] geant4/examples/extended/electromagnetic/TestEm18/csda.mac at master · Geant4/geant4 · GitHub
[3] Mean Energy Loss — Physics Reference Manual 11.3 documentation