51 endpointEnergy(e0 - 2.*
CLHEP::electron_mass_c2)
94 G4double eMomentum = std::sqrt(eKE*(eKE + 2.*eMass) );
97 G4double sinTheta = std::sqrt(1.0 - cosTheta*cosTheta);
112 - eMomentum*eMomentum)/(parentMass - eTE + eMomentum*cosThetaENu)/2.;
114 G4double sinThetaENu = std::sqrt(1.0 - cosThetaENu*cosThetaENu);
120 nuDirection.setX(sinThetaENu*cosPhiNu*cosTheta*cosPhi -
121 sinThetaENu*sinPhiNu*sinPhi + cosThetaENu*sinTheta*cosPhi);
122 nuDirection.setY(sinThetaENu*cosPhiNu*cosTheta*sinPhi +
123 sinThetaENu*sinPhiNu*cosPhi + cosThetaENu*sinTheta*sinPhi);
124 nuDirection.setZ(-sinThetaENu*cosPhiNu*sinTheta + cosThetaENu*cosTheta);
134 -eDirection*eMomentum - nuDirection*nuEnergy);
162 const G4int& daughterA,
178 for (
G4int ptn = 0; ptn < npti; ptn++) {
180 e = 1. + e0*(ptn + 0.5)/
G4double(npti);
181 p = std::sqrt(e*e - 1.);
182 f = p*e*(e0 - e + 1.)*(e0 - e + 1.);
188 f *= corrections.
ShapeFactor(betaType, p, e0-e+1.);
void CheckAndFillDaughters()
const G4double endpointEnergy
void SetBR(G4double value)
CLHEP::Hep3Vector G4ThreeVector
const G4String & GetParentName() const
G4int PushProducts(G4DynamicParticle *aParticle)
G4ParticleDefinition * G4MT_parent
virtual void DumpNuclearInfo()
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
G4ParticleDefinition ** G4MT_daughters
static constexpr double rad
G4int GetAtomicNumber() const
static constexpr double twopi
G4IonTable * GetIonTable() const
G4BetaPlusDecay(const G4ParticleDefinition *theParentNucleus, const G4double &theBR, const G4double &endpointE, const G4double &ex, const G4Ions::G4FloatLevelBase &flb, const G4BetaDecayType &type)
G4GLOB_DLL std::ostream G4cout
void SetNumberOfDaughters(G4int value)
void SetUpBetaSpectrumSampler(const G4int &parentZ, const G4int &parentA, const G4BetaDecayType &type)
G4int GetAtomicMass() const
const G4String & GetDaughterName(G4int anIndex) const
G4double GetPDGMass() const
static G4ParticleTable * GetParticleTable()
G4RandGeneral * spectrumSampler
void SetParent(const G4ParticleDefinition *particle_type)
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
virtual ~G4BetaPlusDecay()
G4double ShapeFactor(const G4BetaDecayType &, const G4double &p_e, const G4double &e_nu)
virtual G4DecayProducts * DecayIt(G4double)
G4ThreeVector G4ParticleMomentum
G4double FermiFunction(const G4double &W)
static constexpr double keV
void CheckAndFillParent()