Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-13 08:21:03

0001 #ifndef G4EmTrackingManager_h
0002 #define G4EmTrackingManager_h 1
0003 
0004 #include "G4VTrackingManager.hh"
0005 #include "globals.hh"
0006 
0007 class G4eMultipleScattering;
0008 class G4CoulombScattering;
0009 class G4eIonisation;
0010 class G4eBremsstrahlung;
0011 class G4eplusAnnihilation;
0012 
0013 class G4ComptonScattering;
0014 class G4GammaConversion;
0015 class G4PhotoElectricEffect;
0016 
0017 class G4Step;
0018 
0019 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0020 
0021 class G4EmTrackingManager : public G4VTrackingManager {
0022 public:
0023   G4EmTrackingManager();
0024   ~G4EmTrackingManager();
0025 
0026   void BuildPhysicsTable(const G4ParticleDefinition &) override;
0027 
0028   void PreparePhysicsTable(const G4ParticleDefinition &) override;
0029 
0030   void HandOverOneTrack(G4Track *aTrack) override;
0031 
0032 private:
0033   void TrackElectron(G4Track *aTrack);
0034   void TrackPositron(G4Track *aTrack);
0035   void TrackGamma(G4Track *aTrack);
0036 
0037   struct {
0038     G4eMultipleScattering *msc;
0039     G4eIonisation *ioni;
0040     G4eBremsstrahlung *brems;
0041     G4CoulombScattering *ss;
0042   } electron;
0043 
0044   struct {
0045     G4eMultipleScattering *msc;
0046     G4eIonisation *ioni;
0047     G4eBremsstrahlung *brems;
0048     G4eplusAnnihilation *annihilation;
0049     G4CoulombScattering *ss;
0050   } positron;
0051 
0052   struct {
0053     G4PhotoElectricEffect *pe;
0054     G4ComptonScattering *compton;
0055     G4GammaConversion *conversion;
0056   } gamma;
0057 
0058   G4Step *fStep;
0059 
0060   static G4EmTrackingManager *masterTrackingManager;
0061 };
0062 
0063 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0064 
0065 #endif