I am looking to implement specular reflection of low energy neutrons inside a cylinder.
Best regards,
Eyvaz
Please fill out the following information to help in answering your question, and also see tips for posting code snippets. If you don’t provide this information it will take more time to help with your problem!
Geant4 definitely does not cover those energies, which correspond to “cryogenic” neutrons (“temperatures” of uK to nK). You will probably need either a special purpose simulation for neutron reflectors, or you might be able to write your own process for Geant4 if you know, or can derive, the kinematics involved.
You can implement your own process for specular reflection for neutrons. For example, take the G4OpBoundaryProcess process relevant for optical photons, and apply it to neutrons. Search the forum–this has been discussed before.
Also have a look at the UCN (ultra-cold neutrons) example. I don’t recall what’s in there, but it may be relevant.
I’m trying to implement the process of specular reflection of low energy neutrons from MgfoilMat but it doesn’t work. Could you check it, please?
When the effective potential of material is higher than neutron energy the low energy neutrons must specularly reflected (I mean in the code “if (std::sin(IncidentAngle) <= (U_eff / eKin))”…).
void SteppingAction::UserSteppingAction(const G4Step* aStep){
G4double eKin = aStep->GetPreStepPoint()->GetKineticEnergy();
Don’t use the SteppingAction for this. See what @dsawkey wrote. You should write your own “NeutronBoundary” process, based on (or “inspired by”) G4OpBoundaryProcess, and implement the appropriate physics there. Then you can add that process to your physics list.