103 G4double result = 0., totS, fmass, fmass2, emass=electron_mass_c2, emass2;
108 emass2 = emass*emass;
109 totS = 2.*energy*emass + emass2;
111 if( pName ==
"anti_nu_e" || 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);
153 if( energy > 50.*GeV )
156 result /= 1.+ aa*totS/mw/mw;
158 if( pName ==
"anti_nu_e")
160 result *= 1. + dd*gw*gw*totS/( (totS-mw*mw)*(totS-mw*mw)+gw*gw*mw*mw );
164 result *= energy + 0.5*emass;
G4ParticleDefinition * GetDefinition() const
G4double GetTotalEnergy() const
G4double GetPDGMass() const
const G4String & GetParticleName() const