41 using namespace CLHEP;
86 minEnergy = (fmass-emass)*(fmass+emass)/emass;
88 if( ( pName ==
"nu_mu" || pName ==
"anti_nu_mu" ||
89 pName ==
"nu_tau" || pName ==
"anti_nu_tau" ) &&
108 emass2 = emass*emass;
109 totS = 2.*energy*emass + emass2;
111 if( pName ==
"nu_mu")
114 fmass2 = fmass*fmass;
115 result = (1. - fmass2/totS)*(1. - fmass2/totS);
117 else if( pName ==
"anti_nu_mu")
120 fmass2 = fmass*fmass;
122 result = (1.+ emass2/totS)*(1.+ fmass2/totS);
123 result += (1.- emass2/totS)*(1.- fmass2/totS)/3.;
124 result *= 0.25*(1. - fmass2/totS)*(1. - fmass2/totS);
126 else if( pName ==
"nu_tau")
129 fmass2 = fmass*fmass;
130 result = (1. - fmass2/totS)*(1. - fmass2/totS);
132 else if( pName ==
"anti_nu_tau")
135 fmass2 = fmass*fmass;
137 result = (1.+ emass2/totS)*(1.+ fmass2/totS);
138 result += (1.- emass2/totS)*(1.- fmass2/totS)/3.;
139 result *= 0.25*(1. - fmass2/totS)*(1. - fmass2/totS);
148 result *= energy + 0.5*emass;
G4ParticleDefinition * theTauMinus
G4ParticleDefinition * theMuonMinus
static constexpr double hbarc
const G4String & GetParticleName() const
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *)
static G4MuonMinus * MuonMinus()
G4double GetPDGMass() const
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *)
G4ParticleDefinition * GetDefinition() const
static constexpr double electron_mass_c2
static constexpr double halfpi
G4double G4ParticleHPJENDLHEData::G4double result
static G4TauMinus * TauMinus()
~G4NeutrinoElectronCcXsc()
G4NeutrinoElectronCcXsc()
G4double GetTotalEnergy() const