Problem 2103

Summary: missing fluorescence after ionization in Livermore
Product: Geant4 Reporter: Brian <brian.mercurio>
Component: processes/electromagnetic/lowenergyAssignee: Sebastien Incerti <incerti>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P4    
Version: 10.4   
Hardware: Other   
OS: Linux   

Description Brian 2018-11-13 19:25:08 CET
4.10.04.02

The project involves measuring x-rays produced by 160 keV electrons hitting a tungsten target.

The x-ray spectrum produced using the Penelope physics model had significantly higher peaks than the spectrum of x-rays produced using the Livermore physics model. The only difference in the source code was
RegisterPhysics(new G4EmPenelopePhysics());
versus
RegisterPhysics(new G4EmLivermorePhysics());
in the PhysicsList.cc file.

I added the line
output << step->GetTrack()->GetCreatorProcess()->GetProcessName() << '\n';
to the SteppingAction.cc file at the end of the part where the photon information is recorded.

The process names in the output with Livermore included eBrem and phot, where the x-rays with "phot" had energy close to the tungsten emission lines and the x-rays with "eBrem" had a much wider spectrum.

The process names in the output with Penelope included eBrem, eIoni, and phot. The x-rays with "phot" or "eIoni" had energy close to the tungsten emission lines and the x-rays with "eBrem" had a much wider spectrum.

When I removed the "eIoni" x-rays from the Penelope output, the spectrum of the remaining x-rays was not significantly different from the spectrum in the Livermore output.

I suspect a bug in the Livermore ionization model is preventing secondary photons from being added to the stack. G4PenelopeIonizationModel.cc includes source code that addresses atomic deexcitation. G4LivermoreIonizationModel.cc has the message "all old deexcitation code removed" but it does not say where the new deexcitation code is, so I can't compare the source codes.
Comment 1 Sebastien Incerti 2018-11-14 12:05:53 CET
Hello,

Please try to use TestEm5 for your simulations, with macro pixe.mac.

Then adapt the pixe.mac macro to your needs (e.g. W target, 160 keV electrons...)

Make sure the following commands are used, for Livermore:
/process/em/deexcitationIgnoreCut true
/process/em/fluo true
/process/em/pixe true
/process/em/auger true
/process/em/augerCascade true
/process/em/pixeElecXSmodel Livermore

or for Penelope:
/process/em/deexcitationIgnoreCut true
/process/em/fluo true
/process/em/pixe true
/process/em/auger true
/process/em/augerCascade true
/process/em/pixeElecXSmodel Penelope

Histogram 51 (and 53) will show spectra of fluo. gammas at creation.

Livermore and Penelope spectra should be similar.

Note that Livermore and Penelope handle atomic deexcitation similarly (using the same interface) when the command "/process/em/pixe true" is used

Sebastien 
Luciano
Comment 2 Brian 2018-11-15 17:58:53 CET
After comparing the results with incremental changes, it looks like the Livermore ionization model activates deexcitation based on the pixe flag instead of the fluo flag. Is that how it's supposed to activate deexcitation even though what's being simulated is electron-induced x-ray emission instead of proton-induced x-ray emission? The Penelope ionization model with an electron beam does deexcitation when pixe = true and when pixe = false.
Comment 3 Sebastien Incerti 2018-11-15 18:25:46 CET
Yes, this is correct.

PIXE is not specific to protons. 

For example, this command allows to select Livermore models for electron ionisation:

/process/em/pixeElecXSmodel Livermore

More details at:

http://geant4.web.cern.ch/node/1620