Hello, I am modeling low-energy electrons (< 300 keV) going through Silicon, and would like to do assume there is no elastic scattering, so no deflection in the trajectory, just energy loss. Is there a way to achieve this? I saw a feature in the Book for application developers, namely a method “InactivateProcess()”, that sounds like a way to do what I want, but I could not find any example of its use. An example of how to use this method to switch off elastic scattering would be immensely helpful, as I’m not very expert in C++. Thanks!
eliminate multiple scattering : in your macro, after /run/initialize
in addition, if you wish to prevent delta-rays and brems production :
/run/setCut 1 km
See example extended/electromagnetic/TestEm1 : erange.mac
Thanks very much, Maire. I am using the single-scattering model, G4EmStandardPhysicsSS. Would your advice apply to this as well, or is there a specific switch for the single-scattering case?
If you add the command /process/list, you will see the name of the process : CoulombScat
So, /process/inactivate CoulombScat
Thanks very much again, Maire.
By the way, since you said that this command should be placed after the /run/initialize, I was wondering if my other commands in the macro file are placed correctly. (I have some /run/… that are before /run/initialize). Could you please confirm for me that the order here is correct:
/cuts/setLowEdge 10 eV
/cuts/setMaxCutEnergy 1 GeV
/run/setCut 200 nm
/process/em/lowestElectronEnergy 0 eV
/gun/energy 300 keV
I believe that they are ok.
Sorry to bother again. The switching off of CoulombScat worked well, but still some deflections of the trajectories remain, caused by the inelastic events. Is there a way to impose zero deflection angle, and just keep the energy loss at each collision?
This is depending of your list of physics processes. If there are only electromagnetic processes, setCut = 1 km to prevent any delta rays or brems creation.
If you have hadronic processes, you can not avoid secondaries creation.
Is that completely true? My understanding was that
G4VUserPhysicsList::SetApplyCuts(true, "all") causes a configuration of the stepping(?) manager, such that secondaries from any process would be killed.
Thank you Maire and Mkelsey. The setting of the range cut to 1 km actually worked well, as I don’t have any hadronic processes in my case, yielding perfectly straight trajectories.
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.