Problem 2052 - PAI model does not respect SetLowEnergyLimit() method for a Region
Summary: PAI model does not respect SetLowEnergyLimit() method for a Region
Status: RESOLVED FIXED
Alias: None
Product: Geant4
Classification: Unclassified
Component: processes/electromagnetic/standard (show other problems)
Version: 10.4
Hardware: PC Linux
: P4 normal
Assignee: Vladimir.Ivantchenko
URL:
Depends on:
Blocks:
 
Reported: 2018-04-05 11:47 CEST by alexander.howard
Modified: 2020-07-20 16:24 CEST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this problem.
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