9#include "G4VUserPrimaryGeneratorAction.hh"
10#include "OMSimPrimaryGeneratorMessenger.hh"
15#include <G4PhysicalConstants.hh>
16#include <G4SystemOfUnits.hh>
33 void GeneratePrimaries(G4Event* anEvent);
36 G4ParticleGun* m_particleGun;
39 void initialiseDistribution(
int column,
int targets);
40 G4double calculateNeutrinoEnergy();
41 G4ThreeVector calculateMomentumDirection(G4double pNeutrinoEnergy);
42 G4double calculateWeight(G4double pNuEnergy);
44 const G4double m_Gf = 1.166e-5 * 1e-6 / (MeV * MeV);
45 const G4double m_Consg = 1.26;
46 const G4double m_deltaMass = neutron_mass_c2 - proton_mass_c2;
47 const G4double m_massSquaredDifference = (pow(m_deltaMass, 2) - pow(electron_mass_c2, 2)) / 2.;
54 virtual void initialiseParticle() = 0;
56 virtual G4double calculateSecondaryParticleEnergy(G4double nu_energy, G4double costheta) = 0;
57 virtual G4double totalCrossSection(G4double energy) = 0;
80 void initialiseParticle();
105 void initialiseParticle();
Utility class for sampling from a given distribution using the inverse cumulative function and interp...
Definition OMSimSNTools.hh:24
Class in charge of generating electrons from Electron-electron_Neutrino Elastic Scattering (ENES) nu_...
Definition OMSimSNParticleGenerators.hh:73
DistributionSampler angularDistribution(G4double Enu)
Computes the angular distribution for electron scattering based on incident neutrino energy.
Definition OMSimSNParticleGenerators.cc:177
G4double totalCrossSection(G4double energy)
Computes the total cross section for ENES based on incident neutrino energy.
Definition OMSimSNParticleGenerators.cc:240
G4double calculateSecondaryParticleEnergy(G4double nu_energy, G4double costheta)
Computes the electron energy from elastic scattering based on incident neutrino energy and scatter an...
Definition OMSimSNParticleGenerators.cc:223
Class in charge of generating positrons from IBD of supernova antineutrino interactions.
Definition OMSimSNParticleGenerators.hh:98
DistributionSampler angularDistribution(G4double Enu)
Computes the angular distribution of the reaction ( \bar{\nu}_e + p \rightarrow e^+ + n ).
Definition OMSimSNParticleGenerators.cc:285
G4double totalCrossSection(G4double energy)
Calculates the total cross-section of the inverse beta decay reaction for a given energy.
Definition OMSimSNParticleGenerators.cc:367
G4double calculateSecondaryParticleEnergy(G4double nu_energy, G4double costheta)
Computes the energy of a positron resulting from the inverse beta decay.
Definition OMSimSNParticleGenerators.cc:343
Definition OMSimSNParticleGenerators.hh:27