19#include "BDSProcessMap.hh"
20#include <unordered_map>
33BDSProcessMap::~BDSProcessMap()
46 G4cout <<
"Unknown process ID \"" << type <<
"\"" << G4endl;
49 {output += result->second;}
53 if (subType > 0 && result !=
processes.end())
58 auto result2 = subMap.find(subType);
59 if (result2 == subMap.end())
62 G4cout <<
"Unknown subprocess ID \"" << subType <<
"\"" << G4endl;
65 {output += result2->second;}
77 {91,
"TRANSPORTATION"},
78 {92,
"COUPLED_TRANSPORTATION"}
83 {1,
"fCoulombScattering"},
85 {3,
"fBremsstrahlung"},
86 {4,
"fPairProdByCharged"},
88 {6,
"fAnnihilationToMuMu"},
89 {7,
"fAnnihilationToHadrons"},
90 {8,
"fNuclearStopping"},
91 {10,
"fMultipleScattering"},
93 {12,
"fPhotoElectricEffect"},
94 {13,
"fComptonScattering"},
95 {14,
"fGammaConversion"},
96 {15,
"fGammaConversionToMuMu"},
98 {22,
"fScintillation"},
99 {23,
"fSynchrotronRadiation"},
100 {24,
"fTransitionRadiation"}
106 {1,
"kScintillation"},
117 {111,
"fHadronElastic"},
118 {121,
"fHadronInelastic"},
121 {151,
"fHadronAtRest"},
122 {152,
"fLeptonAtRest"},
123 {161,
"fChargeExchange"},
124 {210,
"fRadioactiveDecay"}
131 {202,
"DECAY_WithSpin"},
132 {203,
"DECAY_PionMakeSpin"},
133 {210,
"DECAY_Radioactive"},
134 {211,
"DECAY_Unknown"},
135 {231,
"DECAY_External"}
140 {401,
"STEP_LIMITER"},
141 {402,
"USER_SPECIAL_CUTS"},
142 {403,
"NEUTRON_KILLER"}
Map of all process names to IDs.
static BDSProcessMap * Instance()
Singleton accessor.
std::unordered_map< G4int, processMap > subProcesses
std::unordered_map< G4int, G4String > processMap
Typedef to make syntax more readable.
static BDSProcessMap * instance
Singleton instance.
processMap processes
Map of main process categories.
BDSProcessMap()
Private default constructor as singleton pattern.
G4String operator()(const G4int &type, const G4int &subType=-1) const
Main access method for getting the name of processes.