65 std::cout <<
"==============================================================================="
67 <<
"Geant4 eRosita example - based on a simplified version of eROSITA simulation"
69 <<
"Further details can be found in:"
71 <<
"M.G. Pia et al., 'PIXE Simulation With Geant4', "
72 <<
"IEEE Trans. Nucl. Sci., vol. 56, no. 6, pp. 3614-3649, 2009"
74 <<
"N. Meidinger et al., 'Development of the focal plane PNCCD camera system for the X-ray space telescope eROSITA', "
76 <<
"NIM A 624, 321-329, 2010"
78 <<
"==============================================================================="
81 std::cout<< std::endl;
83 std::cout <<
"==============================================================================="
85 <<
" The use of G4LowEnergyIonisation, G4LowEnergyBremsstrahlung, "
87 <<
"G4LowEnergyPhotoElectric, G4LowEnergyCompton, G4LowEnergyGammaConversion"
89 <<
"in this example is intentional. These classes will be replaced by other classes"
91 <<
"appropriate to the problem domain in a forthcoming Geant4 version"
93 <<
"==============================================================================="
188 if (particleName ==
"gamma") {
200 processManager -> AddDiscreteProcess(photoelectric);
201 processManager -> AddDiscreteProcess(compton);
202 processManager -> AddDiscreteProcess(gammaConversion);
203 processManager -> AddDiscreteProcess(rayleigh);
205 }
else if (particleName ==
"e-") {
213 processManager -> AddProcess(eMultipleScattering, -1, 1, 1);
214 processManager -> AddProcess(eIonisation, -1, 2, 2);
215 processManager -> AddProcess(eBremsstrahlung, -1, -1, 3);
217 }
else if (particleName ==
"e+") {
232 }
else if( particleName ==
"proton" ||
233 particleName ==
"pi-" ||
234 particleName ==
"pi+" ) {
250 processManager -> AddProcess(hMultipleScattering, -1, 1, 1);
251 processManager -> AddProcess(hIonisation, -1, 2, 2);
253 }
else if( particleName ==
"alpha" ||
254 particleName ==
"He3" ||
255 particleName ==
"pi-" ||
256 particleName ==
"pi+" ||
257 particleName ==
"GenericIon" ) {
#define theParticleIterator
static constexpr double mm
const G4String & GetParticleName() const
G4double GetPDGCharge() const
virtual G4bool IsApplicable(const G4ParticleDefinition &) override
void SetEnergyRange(G4double lowedge, G4double highedge)
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
static G4Proton * ProtonDefinition()
static constexpr double eV
void SetCutsWithDefault()
static G4Electron * ElectronDefinition()
static G4ProductionCutsTable * GetProductionCutsTable()
static G4Gamma * GammaDefinition()
G4ProcessManager * GetProcessManager() const
static G4Positron * PositronDefinition()
G4bool IsShortLived() const
void SetVerboseLevel(G4int value)
void DumpCutValuesTable(G4int flag=1)
static G4AntiProton * AntiProtonDefinition()
static constexpr double GeV