![]() |
PIXE simulation with Geant4 |
||
|
Reference:
M. G. Pia, G. Weidenspointner, M. Augelli, L. Quintieri, P. Saracco, M. Sudhakar, A. Zoglauer, PIXE simulation with Geant4 IEEE Trans. Nucl. Sci., vol. 56, no. 6, pp. 3614-3649, Dec. 2009 |
An example of how to use this process is shown below. A more extensive example is available in the eRosita Geant4 example span (in examples/advanced/eRosita).
#include "G4hImpactIonisation.hh"
[...]
void eRositaPhysicsList::ConstructProcess()
{
[...]
theParticleIterator->reset();
while( (*theParticleIterator)() )
{
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* processManager = particle->GetProcessManager();
G4String particleName = particle->GetParticleName();
if (particleName == "proton")
{
// Instantiate the G4hImpactIonisation process
G4hImpactIonisation* hIonisation = new G4hImpactIonisation();
// Select the cross section models to be applied for K, L and M shell vacancy creation
// (here the ECPSSR model is selected for K, L and M shell; one can mix and match
// different models for each shell)
hIonisation->SetPixeCrossSectionK("ecpssr");
hIonisation->SetPixeCrossSectionL("ecpssr");
hIonisation->SetPixeCrossSectionM("ecpssr");
// Register the process with the processManager associated with protons
processManager -> AddProcess(hIonisation, -1, 2, 2);
}
}
}