Problem 2052

Summary: PAI model does not respect SetLowEnergyLimit() method for a Region
Product: Geant4 Reporter: alexander.howard
Component: processes/electromagnetic/standardAssignee: Vladimir.Ivantchenko
Status: RESOLVED FIXED    
Severity: normal CC: Alberto.Ribon
Priority: P4    
Version: 10.4   
Hardware: PC   
OS: Linux   

Description alexander.howard 2018-04-05 11:47:31 CEST
If a low energy limit is applied to the PAI model in G4EmModelActivator::ActivatePAI() using: SetLowEnergyLimit(70*eV) the limit is applied to the World. However, if a region is set then this low energy limit is ignored and the PAI model is applied down to 0 (the model limit).

In addition it is not clear that the PAI model should be applied to zero!
Comment 1 alexander.howard 2018-04-05 17:12:36 CEST
The following code works if added to G4EmModelActivator::ActivatePAI() at the end of the "for(itr = v.begin(); itr != v.end(); ++itr) {" loop:


      if(namep == "eIoni") {
	G4MollerBhabhaModel * mod = new G4MollerBhabhaModel();
	G4UniversalFluctuation* uf = new G4UniversalFluctuation();
	mod->SetLowEnergyLimit(0*eV);
	mod->SetHighEnergyLimit(70*eV);
	proc->AddEmModel(0, mod, uf, r);
      } else if(namep == "hIoni" || namep != "muIoni") {
	G4BraggModel * mod = new G4BraggModel();
	G4UniversalFluctuation* uf = new G4UniversalFluctuation();
	mod->SetLowEnergyLimit(0*eV);
	mod->SetHighEnergyLimit(70*eV);
	proc->AddEmModel(0, mod, uf, r);
      }
Comment 2 Vladimir.Ivantchenko 2020-07-20 16:24:08 CEST
Hi Alex,

the issue is fixed and the fix will be in the next reference tag.

Vladimir