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.
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
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.
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