64 std::cout <<
"==============================================================================="
66 <<
"Geant4 eRosita example - based on a simplified version of eROSITA simulation"
68 <<
"Further details can be found in:"
70 <<
"M.G. Pia et al., 'PIXE Simulation With Geant4', "
71 <<
"IEEE Trans. Nucl. Sci., vol. 56, no. 6, pp. 3614-3649, 2009"
73 <<
"N. Meidinger et al., 'Development of the focal plane PNCCD camera system for the X-ray space telescope eROSITA', "
75 <<
"NIM A 624, 321-329, 2010"
77 <<
"==============================================================================="
80 std::cout<< std::endl;
82 std::cout <<
"==============================================================================="
84 <<
" The use of G4LowEnergyIonisation, G4LowEnergyBremsstrahlung, "
86 <<
"G4LowEnergyPhotoElectric, G4LowEnergyCompton, G4LowEnergyGammaConversion"
88 <<
"in this example is intentional. These classes will be replaced by other classes"
90 <<
"appropriate to the problem domain in a forthcoming Geant4 version"
92 <<
"==============================================================================="
186 if (particleName ==
"gamma") {
198 processManager -> AddDiscreteProcess(photoelectric);
199 processManager -> AddDiscreteProcess(compton);
200 processManager -> AddDiscreteProcess(gammaConversion);
201 processManager -> AddDiscreteProcess(rayleigh);
203 }
else if (particleName ==
"e-") {
211 processManager -> AddProcess(eMultipleScattering, -1, 1, 1);
212 processManager -> AddProcess(eIonisation, -1, 2, 2);
213 processManager -> AddProcess(eBremsstrahlung, -1, -1, 3);
215 }
else if (particleName ==
"e+") {
230 }
else if( particleName ==
"proton" ||
231 particleName ==
"pi-" ||
232 particleName ==
"pi+" ) {
246 processManager -> AddProcess(hMultipleScattering, -1, 1, 1);
247 processManager -> AddProcess(hIonisation, -1, 2, 2);
249 }
else if( particleName ==
"alpha" ||
250 particleName ==
"He3" ||
251 particleName ==
"pi-" ||
252 particleName ==
"pi+" ||
253 particleName ==
"GenericIon" ) {
void SetPixeProjectileMaxEnergy(G4double energy)
static G4Electron * ElectronDefinition()
void SetCutForLowEnSecElectrons(G4double)
static constexpr double mm
void SetPixeCrossSectionL(const G4String &name)
void SetEnergyRange(G4double lowedge, G4double highedge)
virtual G4bool IsApplicable(const G4ParticleDefinition &)
static G4Proton * ProtonDefinition()
void SetPixeCrossSectionK(const G4String &name)
void ActivateAuger(G4bool)
static G4AntiProton * AntiProtonDefinition()
const G4String & GetParticleName() const
void SetCutForLowEnSecPhotons(G4double)
void SetCutForSecondaryPhotons(G4double cut)
void DumpCutValuesTable(G4int flag=1)
void SetPixeCrossSectionM(const G4String &name)
void SetCutForAugerElectrons(G4double cut)
void SetVerboseLevel(G4int value)
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
#define theParticleIterator
void SetPixeProjectileMinEnergy(G4double energy)
static constexpr double eV
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
static G4Positron * PositronDefinition()
G4bool IsShortLived() const
static G4ProductionCutsTable * GetProductionCutsTable()
void SetCutsWithDefault()
G4ProcessManager * GetProcessManager() const
static constexpr double GeV
static constexpr double MeV
G4double GetPDGCharge() const
static constexpr double keV
static G4Gamma * GammaDefinition()