18#include "BDSProcessMap.hh"
19#include <unordered_map>
32BDSProcessMap::~BDSProcessMap()
45 G4cout <<
"Unknown process ID \"" << type <<
"\"" << G4endl;
48 {output += result->second;}
52 if (subType > 0 && result !=
processes.end())
57 auto result2 = subMap.find(subType);
58 if (result2 == subMap.end())
61 G4cout <<
"Unknown subprocess ID \"" << subType <<
"\"" << G4endl;
64 {output += result2->second;}
76 {91,
"TRANSPORTATION"},
77 {92,
"COUPLED_TRANSPORTATION"}
82 {1,
"fCoulombScattering"},
84 {3,
"fBremsstrahlung"},
85 {4,
"fPairProdByCharged"},
87 {6,
"fAnnihilationToMuMu"},
88 {7,
"fAnnihilationToHadrons"},
89 {8,
"fNuclearStopping"},
90 {10,
"fMultipleScattering"},
92 {12,
"fPhotoElectricEffect"},
93 {13,
"fComptonScattering"},
94 {14,
"fGammaConversion"},
95 {15,
"fGammaConversionToMuMu"},
97 {22,
"fScintillation"},
98 {23,
"fSynchrotronRadiation"},
99 {24,
"fTransitionRadiation"}
105 {1,
"kScintillation"},
116 {111,
"fHadronElastic"},
117 {121,
"fHadronInelastic"},
120 {151,
"fHadronAtRest"},
121 {152,
"fLeptonAtRest"},
122 {161,
"fChargeExchange"},
123 {210,
"fRadioactiveDecay"}
130 {202,
"DECAY_WithSpin"},
131 {203,
"DECAY_PionMakeSpin"},
132 {210,
"DECAY_Radioactive"},
133 {211,
"DECAY_Unknown"},
134 {231,
"DECAY_External"}
139 {401,
"STEP_LIMITER"},
140 {402,
"USER_SPECIAL_CUTS"},
141 {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.