Back to home page

EIC code displayed by LXR

 
 

    


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

0001 
0002 #ifndef G4HepEmElectronInteractionIoni_HH
0003 #define G4HepEmElectronInteractionIoni_HH
0004 
0005 #include "G4HepEmMacros.hh"
0006 
0007 class  G4HepEmTLData;
0008 class  G4HepEmRandomEngine;
0009 struct G4HepEmData;
0010 
0011 
0012 // Ionisation interaction for e-/e+ described by the Moller/Bhabha model.
0013 // Used between 100 eV - 100 TeV primary e-/e+ kinetic energies.
0014 class G4HepEmElectronInteractionIoni {
0015 private:
0016   G4HepEmElectronInteractionIoni() = delete;
0017 
0018 public:
0019   static void Perform(G4HepEmTLData* tlData, struct G4HepEmData* hepEmData, bool iselectron);
0020 
0021   // Sampling of the energy transferred to the secondary electron in case of e-
0022   // primary i.e. in case of Moller interaction.
0023   G4HepEmHostDevice
0024   static double SampleETransferMoller(const double elCut, const double primEkin, G4HepEmRandomEngine* rnge);
0025 
0026   // Sampling of the energy transferred to the secondary electron in case of e+
0027   // primary i.e. in case of Bhabha interaction.
0028   G4HepEmHostDevice
0029   static double SampleETransferBhabha(const double elCut, const double primEkin, G4HepEmRandomEngine* rnge);
0030 
0031   G4HepEmHostDevice
0032   static void SampleDirections(const double thePrimEkin, const double deltaEkin, double* theSecElecDir,
0033                                double* thePrimElecDir, G4HepEmRandomEngine* rnge);
0034 };
0035 
0036 #endif // G4HepEmElectronInteractionIoni_HH