Hello everyone,
I am using GEANT4 to have some backscattering data on different materials at different energies etc… So I basically shoot electrons against a material to obtain the backscattering yield.
I build my own physics list (attached later) but I have a problem when decreasing energy below 1 keV. In fact, above 1 keV it behaves correctly and the results I obtained are in agreement with literature.
Below 1 keV , instead, I can see no outcome of my simulations, and the electrons do not even interact with the materials. I think the problem is in my physics list, because using the EmStandardSS provided by Geant4 everything works fine.
Here my physics list:
void MyPhysicsList::ConstructEM()
{
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
G4ParticleDefinition* ion = G4GenericIon::GenericIon();
G4ParticleDefinition* gamma = G4Gamma::GammaDefinition();
G4ParticleDefinition* electron = G4Electron::ElectronDefinition();
G4ParticleDefinition* positron = G4Positron::PositronDefinition();
//gamma
G4RayleighScattering *rs = new G4RayleighScattering;
rs ->SetEmModel(new G4PenelopeRayleighModel()); //Penelope
G4ComptonScattering *cs = new G4ComptonScattering;
cs ->SetEmModel(new G4PenelopeComptonModel()); //Penelope
G4PhotoElectricEffect *pe = new G4PhotoElectricEffect;
pe ->SetEmModel(new G4PenelopePhotoElectricModel()); //penelope
G4GammaConversion *gc = new G4GammaConversion;
gc ->SetEmModel(new G4PenelopeGammaConversionModel()); //penelope
ph->RegisterProcess(new G4PhotoElectricEffect(), gamma);
ph->RegisterProcess(new G4ComptonScattering(), gamma);
ph->RegisterProcess(new G4GammaConversion(), gamma);
ph->RegisterProcess(new G4RayleighScattering(), gamma);
//electron
//multiple scattering
G4eMultipleScattering *msc = new G4eMultipleScattering;
msc->SetEmModel(new G4UrbanMscModel()); //G4GoudsmitSaundersonMscModel -
G4UrbanMscModel - G4WentzelVIModel
G4eIonisation *eion = new G4eIonisation;
eion -> SetEmModel(new G4PenelopeIonisationModel()); //Penelope
G4eBremsstrahlung *ebr = new G4eBremsstrahlung;
ebr -> SetEmModel ( new G4PenelopeBremsstrahlungModel() ); //penelope
ph->RegisterProcess(new G4eMultipleScattering(), electron);
ph->RegisterProcess(new G4eBremsstrahlung(), electron);
ph->RegisterProcess(new G4eIonisation(), electron);
//positron
G4eMultipleScattering *mscp = new G4eMultipleScattering;
mscp->SetEmModel(new G4UrbanMscModel ());
G4eIonisation *epion = new G4eIonisation;
epion -> SetEmModel(new G4PenelopeIonisationModel()); //penelope
G4eBremsstrahlung *epbr = new G4eBremsstrahlung;
epbr -> SetEmModel ( new G4PenelopeBremsstrahlungModel() ); //penelope
G4eplusAnnihilation *eann = new G4eplusAnnihilation;
eann -> SetEmModel (new G4PenelopeAnnihilationModel()); //penelope
ph->RegisterProcess(new G4eMultipleScattering(), positron);
ph->RegisterProcess(new G4eBremsstrahlung(), positron);
ph->RegisterProcess(new G4eIonisation(), positron);
ph->RegisterProcess(new G4eplusAnnihilation(), positron);
}
Does someone know how to help? Thank you