File indexing completed on 2026-07-13 08:21:04
0001
0002 #ifndef G4HepEmGammaManager_HH
0003 #define G4HepEmGammaManager_HH
0004
0005 #include "G4HepEmMacros.hh"
0006
0007 struct G4HepEmData;
0008 struct G4HepEmParameters;
0009 struct G4HepEmGammaData;
0010
0011 class G4HepEmTLData;
0012 class G4HepEmGammaTrack;
0013 class G4HepEmTrack;
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 class G4HepEmGammaManager {
0027 private:
0028 G4HepEmGammaManager() = delete;
0029
0030 public:
0031
0032 static void HowFar(struct G4HepEmData* , struct G4HepEmParameters* , G4HepEmTLData* );
0033
0034 G4HepEmHostDevice
0035 static void HowFar(struct G4HepEmData* hepEmData, struct G4HepEmParameters* hepEmPars, G4HepEmGammaTrack* theTrack);
0036
0037
0038
0039 static void Perform(struct G4HepEmData* , struct G4HepEmParameters* , G4HepEmTLData* );
0040
0041 G4HepEmHostDevice
0042 static void UpdateNumIALeft(G4HepEmTrack* theTrack);
0043
0044 G4HepEmHostDevice
0045 static double
0046 GetTotalMacXSec(const struct G4HepEmData* hepEmData, G4HepEmGammaTrack* theGammaTrack);
0047
0048 G4HepEmHostDevice
0049 static double GetMacXSecPE(const struct G4HepEmData* hepEmData, const int imat, const double ekin);
0050
0051 static void SelectInteraction(const struct G4HepEmData* hepEmData, G4HepEmTLData* tlData);
0052
0053 G4HepEmHostDevice
0054 static void
0055 SampleInteraction(const struct G4HepEmData* hepEmData, G4HepEmGammaTrack* theGammaTrack, const double urnd);
0056
0057 };
0058
0059 #endif