42 using namespace CLHEP;
68 outFile <<
"G4NeutrinoElectronNcModel is a neutrino-electron (neutral current) elastic scattering\n"
69 <<
"model which uses the standard model \n"
70 <<
"transfer parameterization. The model is fully relativistic\n";
87 if( ( pName ==
"nu_e" || pName ==
"anti_nu_e" ||
88 pName ==
"nu_mu" || pName ==
"anti_nu_nu" ||
89 pName ==
"nu_tau" || pName ==
"anti_nu_tau" ) &&
129 if( cost2 > 1. ) cost2 = 1.;
130 if( cost2 < 0. ) cost2 = 0.;
133 G4double sint = std::sqrt( (1.0 - cost)*(1.0 + cost) );
136 G4ThreeVector eP( sint*std::cos(phi), sint*std::sin(phi), cost );
151 else if( eTkin > 0.0 )
182 if( energy == 0.)
return result;
191 else if( pName ==
"anti_nu_e")
196 else if( pName ==
"nu_mu")
201 else if( pName ==
"anti_nu_mu")
206 else if( pName ==
"nu_tau")
211 else if( pName ==
"anti_nu_tau")
236 G4double d = -( a*xMax3 + b*xMax2 + c*xMax );
247 q += 2*b*b*b/a/a/a/27.;
263 G4double A1 = - q/2. + std::sqrt(D);
266 G4double B1 = - q/2. - std::sqrt(D);
virtual ~G4NeutrinoElectronNcModel()
void SetMinEnergy(G4double anEnergy)
std::vector< ExP01TrackerHit * > a
void SetMaxEnergy(const G4double anEnergy)
Float_t y1[n_points_granero]
void SetMomentumChange(const G4ThreeVector &aV)
G4double LowestEnergyLimit() const
Float_t x1[n_points_granero]
G4double SampleElectronTkin(const G4HadProjectile *aParticle)
const G4String & GetParticleName() const
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
G4double GetTotalEnergy() const
G4double GetPDGMass() const
void SetEnergyChange(G4double anEnergy)
static constexpr double TeV
std::complex< G4double > G4complex
G4NeutrinoElectronNcModel(const G4String &name="nu-e-elastic")
static constexpr double electron_mass_c2
double A(double temperature)
static constexpr double eV
static G4Electron * Electron()
const G4LorentzVector & Get4Momentum() const
G4double G4ParticleHPJENDLHEData::G4double result
G4double GetKineticEnergy() const
static constexpr double twopi
const G4ParticleDefinition * GetDefinition() const
void SetLowestEnergyLimit(G4double value)
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
virtual void ModelDescription(std::ostream &) const
G4ParticleDefinition * theElectron
void SetLocalEnergyDeposit(G4double aE)
virtual G4bool IsApplicable(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
double B(double temperature)
static constexpr double GeV
G4HadFinalState theParticleChange