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 Version: 11.3.0
Operating System: Ubuntu 22.04.5 LTS
Compiler/Version: CLion 2024.3.4
CMake Version:3.22.1
Dear experts,
The following questions pertains to the Geant4’s MicroElec example
We can see in the example, the physics processes registered for GenericIons in the target include the dielectric process, The program code is as follows.
// *** proton ----------------------------------------------------------
// ---> STANDARD EM processes inactivated below standEnergyLimit
// STANDARD msc is still active
// Inactivate following STANDARD processes
// il faut desactiver Bragg puisque notre modle descend en-dessous de 50 keV
/*mod = new G4BraggModel();
mod->SetActivationHighEnergyLimit(50*keV);
em_config->SetExtraEmModel("proton","hIoni",mod,"Target",0.0,2*MeV, new G4IonFluctuations());*/
mod = new G4BetheBlochModel();
mod->SetActivationLowEnergyLimit(10*MeV);
em_config->SetExtraEmModel("proton","hIoni",mod,"Target",2*MeV,10*TeV, new G4IonFluctuations());
// ---> Dielectric processes activated
mod = new G4MicroElecInelasticModel_new();
mod->SetActivationLowEnergyLimit(100*eV);
em_config->SetExtraEmModel("proton","p_G4Dielectrics",mod,"Target",100*eV,10*MeV);
//em_config->SetExtraEmModel("proton","p_G4Dielectrics",new G4DummyModel,"Target",10*MeV,10*TeV);
//*/
// *** alpha ----------------------------------------------------------
mod = new G4BetheBlochModel();
mod->SetActivationLowEnergyLimit(10*MeV);
em_config->SetExtraEmModel("alpha","ionIoni",mod,"Target",10*MeV,10*TeV, new G4IonFluctuations());
/*mod = new G4MicroElecInelasticModel_new();
//mod->SetActivationLowEnergyLimit(100*eV);
em_config->SetExtraEmModel("alpha","alpha_G4Dielectrics",mod,"Target",0.0,10*MeV);//*/
// *** ion ----------------------------------------------------------
// ---> STANDARD EM processes inactivated below standEnergyLimit
// STANDARD msc is still active
// Inactivate following STANDARD processes
/*mod = new G4BraggIonModel();
mod->SetActivationHighEnergyLimit(50*keV);
em_config->SetExtraEmModel("GenericIon","ionIoni",mod,"Target",0.0,2*MeV, new G4IonFluctuations());*/
mod = new G4BetheBlochModel();
mod->SetActivationLowEnergyLimit(10*MeV);
em_config->SetExtraEmModel("GenericIon","ionIoni",mod,"Target",10*MeV,10*TeV, new G4IonFluctuations());
// ---> Dielectric processes activated
mod = new G4MicroElecInelasticModel_new(); //line 383
mod->SetActivationLowEnergyLimit(100*eV);
em_config->SetExtraEmModel("GenericIon","ion_G4Dielectrics",mod,"Target",0.0,10*MeV);
//em_config->SetExtraEmModel("GenericIon","ion_G4Dielectrics",new G4DummyModel,"Target",10*GeV,10*TeV);
I think the dielectric process should dominate for low-to-medium energy heavy ions. However, when incident carbon ion energy drops below 10 MeV/u, virtually no secondary electrons (SE) are observed in the target, indicating the ion’s dielectric processes may not be activated successfully.
Furthermore, the output log file indicates that protons with energies below 10MeV are dominated by the dielectric process in the target, confirming successful activation of the proton dielectric process, the output file is as follows. Considering that heavy ions actually use proton cross sections scaled by a factor, I do not understand why the dielectric process for heavy ions fails to trigger.
Figure 1 5MeV protons incident on silicon target (process name shown in the rightmost column)
I found one attempted solutions:
- Replace line 383 with old model
“mod = new G4MicroElecInelasticModel()”: SE became observable below 10 MeV/u, but this older model is validated only for Si targets.
However, this approach may not be a sustainable solution. Would you have any recommendations?
MicroElecPhysics.cc (14.8 KB)
Thank you for your attention to this matter.
