How to produce recoils under 100 eV gold atom radiation

I am trying to reproduce SRIM by GEANT4 code, because GEANT4 can output more information.
This is the question I asked weeks ago. The difference between Geant4 and SRIM about recoil production.

Now I have checked all parameters of G4ScreenedNuclearRecoils, and It can produce PKA same as SRIM output, but I come across another problem: The PKA(Au recoil atom) with enough energy(for example, 100eV) can NOT produce any secondary recoils.

Which process can generate recoils under condition that 100eV Au ion irradiate100nm Au thin foil? SRIM output shows there are about 2.7 recoils/ion when ion energy is 100eV. But Geant4 code can’t produce any recoils when I use G4ScreenedNuclearRecoil as main physics process. The process counter gives result that G4ScreenedNuclearRecoil has been called once for most of ion, but no recoils been produced.

Is there anyone knows why? Should I change step length or any other parameters?

Thanks a lot!

Do you have the Geant4 “production cuts” set? We are very interested in nuclear recoils in our experiment as well, so we have our physics list configured with the “proton” production cut (which applies to all hadrons) set to 1e-9 mm. If you have the default 1 mm value set, then you’ll essentially never see a nuclear recoil, since the nuclei aren’t going to travel that far.

Thank you for your reply!

The recoil atom is Au, is Au atom belong to hadron category when it comes to production cut? I don’t konw…

But I still have changed procudtion cuts just in case.

I have add UI command:
/cuts/setLowEdge 0.0001 meV
/run/setCut 0.1 nm
in the vis.mac. I think that will set production cut to a proper value.

But still nothing changed…

Yes, nuclei are made of baryons, a subset of hadrons.

I’m surprised nothing has changed. Are you saying that there are no recoil secondaries produced? Or are you saying that you don’t see recoil tracks in the visualization?

I didn’t see any bifurcations of PKA tracks in the visualization. A typcial picture is like this:

The red circle is added to mark PKA track. Use UI command drawByParticleID.

All PKAs only take one step.

I also counted the secondary number by code in

       // Count Recoils
        if (process->GetProcessName() == "ScreenedElastic")
            //G4cout << "There is a Screened Elastic Process" << G4endl;
            G4int NumOfSecondaries=aStep->GetNumberOfSecondariesInCurrentStep();
            if (NumOfSecondaries)
                G4double recoilX = aStep->GetPostStepPoint()->GetPosition().x()-vertex.x();
                //G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
                analysisManager->FillH1(2, recoilX);

The output number is same as PKA of SRIM, less than total displacement number(PKA + PKA induced).

In examples Hadr03, 04, 05, 06, 07, NeutronSource, the cut for proton is just set to zero

Thanks for your attention!
I tried just now to set cut to zero, the output didn’t change at all. Even if I changed cut to a very high value(like 1000000nm), the Au recoils number still didn’t change.(But the electron secondaries changed, that means the cut setting works).
I think there must be something else wrong.