53 const G4double eMass = CLHEP::electron_mass_c2;
62 maxEnergy(e0/eMass - 2.0),
63 estep(maxEnergy/(
G4double)(npti - 1))
69 fPrimaryIon = theParentNucleus;
82 SetUpBetaSpectrumSampler(daughterZ, daughterA, betaType);
106 G4double eMomentum = std::sqrt(eKE*(eKE + 2.*eMass));
118 parentMass - eKE - eMass);
137 G4double ekin = std::max(lv.
e() - resMass, 0.0);
154G4BetaPlusDecay::SetUpBetaSpectrumSampler(
const G4int& daughterZ,
155 const G4int& daughterA,
161 if (maxEnergy > 0.) {
170 for (
G4int i = 1; i < npti-1; ++i) {
172 p = std::sqrt(ex*(ex + 2.));
173 f = p*(1. + ex)*(maxEnergy - ex)*(maxEnergy - ex);
176 f *= corrections.FermiFunction(1. + ex);
179 f *= corrections.ShapeFactor(betaType, p, maxEnergy - ex);
184 cdf[npti-1] = sum + f0;
186 for (
G4int i = 0; i < npti; ++i) { cdf[i] = 0.0; }
195 << maxEnergy*eMass <<
" BR=" <<
GetBR() <<
"%" <<
G4endl;
G4ThreeVector G4RandomDirection()
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cout
Hep3Vector boostVector() const
HepLorentzVector & boost(double, double, double)
G4DecayProducts * DecayIt(G4double) override
G4BetaPlusDecay(const G4ParticleDefinition *theParentNucleus, const G4double &theBR, const G4double &endpointE, const G4double &ex, const G4Ions::G4FloatLevelBase &flb, const G4BetaDecayType &type)
void DumpNuclearInfo() override
static G4double shoot(const G4int npoints, const G4double *aCDF, const G4double estep)
G4int PushProducts(G4DynamicParticle *aParticle)
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
static G4NeutrinoE * NeutrinoE()
G4int GetAtomicNumber() const
G4double GetPDGMass() const
G4int GetAtomicMass() const
const G4String & GetParticleName() const
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()
static G4Positron * Positron()
void CheckAndFillParent()
void SetBR(G4double value)
void SetNumberOfDaughters(G4int value)
void CheckAndFillDaughters()
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
void SetParent(const G4ParticleDefinition *particle_type)