File indexing completed on 2025-08-05 08:18:10
0001 #include "PHG4ProcessMapPhysics.h"
0002
0003 #include "PHG4MCProcessDefs.h"
0004 #include "PHG4ProcessMap.h"
0005
0006
0007 #include <Geant4/G4DecayProcessType.hh>
0008 #include <Geant4/G4EmProcessSubType.hh>
0009 #include <Geant4/G4FastSimulationProcessType.hh>
0010 #include <Geant4/G4HadronicProcessType.hh>
0011 #include <Geant4/G4OpProcessSubType.hh>
0012 #include <Geant4/G4ProcessType.hh>
0013 #include <Geant4/G4TransportationProcessType.hh>
0014
0015 PHG4ProcessMapPhysics::PHG4ProcessMapPhysics()
0016 {
0017 FillMap();
0018 }
0019
0020 void PHG4ProcessMapPhysics::FillMap()
0021 {
0022 auto& pMap = PHG4ProcessMap::Instance();
0023
0024
0025
0026 pMap.Add(fCoulombScattering, kPCoulombScattering);
0027 pMap.Add(fIonisation, kPEnergyLoss);
0028 pMap.Add(fBremsstrahlung, kPBrem);
0029 pMap.Add(fPairProdByCharged, kPPair);
0030 pMap.Add(fAnnihilation, kPAnnihilation);
0031 pMap.Add(fAnnihilationToMuMu, kPAnnihilation);
0032
0033 pMap.Add(fAnnihilationToHadrons, kPAnnihilation);
0034
0035 pMap.Add(fNuclearStopping, kPCoulombScattering);
0036
0037 pMap.Add(fElectronGeneralProcess, kPNull);
0038
0039 pMap.Add(fMultipleScattering, kPMultipleScattering);
0040
0041 pMap.Add(fRayleigh, kPRayleigh);
0042 pMap.Add(fPhotoElectricEffect, kPPhotoelectric);
0043 pMap.Add(fComptonScattering, kPCompton);
0044 pMap.Add(fGammaConversion, kPPair);
0045 pMap.Add(fGammaConversionToMuMu, kPPair);
0046
0047 pMap.Add(fGammaGeneralProcess, kPNull);
0048 pMap.Add(fPositronGeneralProcess, kPNull);
0049
0050
0051
0052 pMap.Add(fCerenkov, kPCerenkov);
0053 pMap.Add(fScintillation, kPScintillation);
0054 pMap.Add(fSynchrotronRadiation, kPSynchrotron);
0055 pMap.Add(fTransitionRadiation, kPTransitionRadiation);
0056
0057 pMap.Add(fSurfaceReflection, kPNull);
0058
0059
0060
0061
0062 pMap.Add(fOpAbsorption, kPLightAbsorption);
0063 pMap.Add(fOpBoundary, kPLightScattering);
0064 pMap.Add(fOpRayleigh, kPRayleigh);
0065 pMap.Add(fOpWLS, kPLightWLShifting);
0066 pMap.Add(fOpMieHG, kPLightScattering);
0067
0068 pMap.Add(fOpWLS2, kPLightWLShifting);
0069
0070
0071
0072
0073
0074
0075
0076 pMap.Add(fHadronElastic, kPHElastic);
0077
0078 pMap.Add(fHadronInelastic, kPHInhelastic);
0079 pMap.Add(fCapture, kPNCapture);
0080 pMap.Add(fMuAtomicCapture, kPHadronic);
0081
0082
0083 pMap.Add(fFission, kPNuclearFission);
0084 pMap.Add(fHadronAtRest, kPHadronic);
0085
0086
0087 pMap.Add(fLeptonAtRest, kPHadronic);
0088
0089 pMap.Add(fChargeExchange, kPHadronic);
0090
0091
0092
0093 pMap.Add(fRadioactiveDecay, kPDecay);
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104 pMap.Add(DECAY, kPDecay);
0105 pMap.Add(DECAY_WithSpin, kPDecay);
0106 pMap.Add(DECAY_PionMakeSpin, kPDecay);
0107
0108 pMap.Add(DECAY_Unknown, kPDecay);
0109 pMap.Add(DECAY_MuAtom, kPDecay);
0110 pMap.Add(DECAY_External, kPDecay);
0111
0112
0113 pMap.Add(TRANSPORTATION, kPTransportation);
0114 pMap.Add(COUPLED_TRANSPORTATION, kPTransportation);
0115
0116
0117 pMap.Add(FASTSIM_ManagerProcess, kPNull);
0118
0119
0120
0121 pMap.Add(STEP_LIMITER, kStepMax);
0122 pMap.Add(USER_SPECIAL_CUTS, kPStop);
0123 pMap.Add(NEUTRON_KILLER, kPStop);
0124
0125
0126
0127
0128
0129
0130
0131
0132 }
0133
0134 PHG4MCProcess PHG4ProcessMapPhysics::GetMCProcess(const G4VProcess* process) const
0135 {
0136 return PHG4ProcessMap::Instance().GetMCProcess(process);
0137 }
0138 std::string_view PHG4ProcessMapPhysics::GetMCProcessName(const G4VProcess* process) const
0139 {
0140 return PHG4ProcessMap::Instance().GetMCProcessName(process);
0141 }