Back to home page

sPhenix code displayed by LXR

 
 

    


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 // G4 process code headers
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   // clang-format off
0025   // G4EmProcessSubType: 1 - 26; 40; 49
0026   pMap.Add(fCoulombScattering, kPCoulombScattering);      // G4 value:  1
0027   pMap.Add(fIonisation, kPEnergyLoss);                  // G4 value:  2
0028   pMap.Add(fBremsstrahlung, kPBrem);                     // G4 value:  3
0029   pMap.Add(fPairProdByCharged, kPPair);                   // G4 value:  4
0030   pMap.Add(fAnnihilation, kPAnnihilation);                // G4 value:  5
0031   pMap.Add(fAnnihilationToMuMu, kPAnnihilation);          // G4 value:  6
0032     // Add code
0033   pMap.Add(fAnnihilationToHadrons, kPAnnihilation);       // G4 value:  7
0034     // Add code
0035   pMap.Add(fNuclearStopping, kPCoulombScattering);        // G4 value:  8
0036     // CHECK ??
0037   pMap.Add(fElectronGeneralProcess, kPNull);      // G4 value:  9
0038 
0039   pMap.Add(fMultipleScattering, kPMultipleScattering);    // G4 value: 10
0040 
0041   pMap.Add(fRayleigh, kPRayleigh);                        // G4 value: 11
0042   pMap.Add(fPhotoElectricEffect, kPPhotoelectric);        // G4 value: 12
0043   pMap.Add(fComptonScattering, kPCompton);                // G4 value: 13
0044   pMap.Add(fGammaConversion, kPPair);                     // G4 value: 14
0045   pMap.Add(fGammaConversionToMuMu, kPPair);               // G4 value: 15
0046     // Add code
0047   pMap.Add(fGammaGeneralProcess, kPNull);          // G4 value: 16
0048   pMap.Add(fPositronGeneralProcess, kPNull);       // G4 value: 17
0049   // pMap.Add(fAnnihilationToTauTau, kPAnnihilation);         // G4 value: 18
0050     // Add code
0051 
0052   pMap.Add(fCerenkov, kPCerenkov);                         // G4 value: 21
0053   pMap.Add(fScintillation, kPScintillation);       // G4 value: 22
0054   pMap.Add(fSynchrotronRadiation, kPSynchrotron);          // G4 value: 23
0055   pMap.Add(fTransitionRadiation, kPTransitionRadiation); // G4 value: 24
0056 
0057   pMap.Add(fSurfaceReflection, kPNull);            // G4 value: 25
0058      // low energy G4MicroElecSurface process
0059   // pMap.Add(fGammaReflection, kPNull);              // G4 value: 26 (added in Geant4 v11.0.0, sphenix version 10.7.4)
0060 
0061   // G4OpProcessSubType: 31 .36
0062   pMap.Add(fOpAbsorption, kPLightAbsorption);              // G4 value: 31
0063   pMap.Add(fOpBoundary, kPLightScattering);                // G4 value: 32
0064   pMap.Add(fOpRayleigh, kPRayleigh);                       // G4 value: 33
0065   pMap.Add(fOpWLS, kPLightWLShifting);             // G4 value: 34
0066   pMap.Add(fOpMieHG, kPLightScattering);           // G4 value: 35
0067     // Add code
0068   pMap.Add(fOpWLS2, kPLightWLShifting);            // G4 value: 36
0069     // Add code
0070 
0071   // G4EmProcessSubType: 40; 49
0072   // pMap.Add(fDarkBremsstrahlung, kPNull);           // G4 value: 40 (added in Geant4 v11.1.0, sphenix version 10.7.4)
0073   // pMap.Add(fMuonPairProdByCharged, kPNull);        // G4 value: 49 (added in Geant4 v11.1.0, sphenix version 10.7.4)
0074 
0075   // G4HadronicProcessType: 111 .161; 210; 310
0076   pMap.Add(fHadronElastic, kPHElastic);                    // G4 value: 111
0077   // pMap.Add(fNeutronGeneral, kPNull);               // G4 value: 116 (added in Geant4 v11.1.0, sphenix version 10.7.4)
0078   pMap.Add(fHadronInelastic, kPHInhelastic);               // G4 value: 121
0079   pMap.Add(fCapture, kPNCapture);                          // G4 value: 131
0080   pMap.Add(fMuAtomicCapture, kPHadronic);                  // G4 value: 132
0081     // Add code
0082     // was: kPNCapture, kHADR
0083   pMap.Add(fFission, kPNuclearFission);                    // G4 value: 141
0084   pMap.Add(fHadronAtRest, kPHadronic);                     // G4 value: 151
0085     // Add code .G4HadronStoppingProcess, "hadronCaptureAtRest"
0086     // was: kPNCapture, kHADR
0087   pMap.Add(fLeptonAtRest, kPHadronic);                     // G4 value: 152
0088     // No process defined with this code
0089   pMap.Add(fChargeExchange, kPHadronic);                   // G4 value: 161
0090   // pMap.Add(fNuOscillation, kPHadronic);                    // G4 value: 165 (added in Geant4 v11.2.0, sphenix version 10.7.4)
0091   // pMap.Add(fNuElectron, kPHadronic);                       // G4 value: 166 (added in Geant4 v11.2.0, sphenix version 10.7.4)
0092   // pMap.Add(fNuNucleus, kPHadronic);                        // G4 value: 167 (added in Geant4 v11.2.0, sphenix version 10.7.4)
0093   pMap.Add(fRadioactiveDecay, kPDecay);                    // G4 value: 210
0094   // pMap.Add(fEMDissociation, kPHadronic);                   // G4 value: 310 (no found in sPHENIX)
0095     // No process defined with this code
0096 
0097   // TG4HadronicProcessType: 171 .174 (VMC Hadronic process, VMC is not available in sPHENIX)
0098   // pMap.Add(fElectronNuclear, kPElectronNuclear);           // TG4 value: 171
0099   // pMap.Add(fPositronNuclear, kPPositronNuclear);           // TG4 value: 172
0100   // pMap.Add(fMuonNuclear, kPMuonNuclear);                   // TG4 value: 173
0101   // pMap.Add(fPhotoNuclear, kPPhotoNuclear);                 // TG4 value: 174
0102 
0103   // G4DecayProcessType: 201 .231
0104   pMap.Add(DECAY, kPDecay);                                // G4 value: 201
0105   pMap.Add(DECAY_WithSpin, kPDecay);                       // G4 value: 202
0106   pMap.Add(DECAY_PionMakeSpin, kPDecay);                   // G4 value: 203
0107   // DECAY_Radioactive ( G4 value: 210) .already added with G4HadronicProcessType
0108   pMap.Add(DECAY_Unknown, kPDecay);                        // G4 value: 211
0109   pMap.Add(DECAY_MuAtom, kPDecay);                         // G4 value: 221
0110   pMap.Add(DECAY_External, kPDecay);                       // G4 value: 231
0111 
0112   // G4TransportationProcessType: 91, 92
0113   pMap.Add(TRANSPORTATION, kPTransportation);         // G4 value: 91
0114   pMap.Add(COUPLED_TRANSPORTATION, kPTransportation); // G4 value: 92
0115 
0116   // G4FastSimulationProcessType: 301
0117   pMap.Add(FASTSIM_ManagerProcess, kPNull);        // G4 value: 301
0118 
0119   // G4TransportationProcessType: 401 .491
0120   // following processes belong to 'General' type
0121   pMap.Add(STEP_LIMITER, kStepMax);                // G4 value: 401
0122   pMap.Add(USER_SPECIAL_CUTS, kPStop);             // G4 value: 402
0123   pMap.Add(NEUTRON_KILLER, kPStop);                // G4 value: 403
0124     // was kPHadronic, kHADR
0125   // pMap.Add(PARALLEL_WORLD_PROCESS, kPNull);        // G4 value: 491 (added in Geant4 v11.0.0, sphenix version 10.7.4)
0126 
0127   // TG4BiasingProcessType: 501
0128   // pMap.Add(fBiasing, kPNull);                      // TG4 value: 501 (VMC Hadronic process, VMC is not available in sPHENIX)
0129 
0130   // TG4StackPopperProcessType: 601
0131   // pMap.Add(fStackPopper, kPNull);                  // TG4 value: 601 (VMC Hadronic process, VMC is not available in sPHENIX)
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 }