81 G4int shellIndex = -1;
107 std::vector<G4DynamicParticle*> armProducts;
113 if (shellIndex >= nShells) shellIndex = nShells;
129 for (
G4int i = 0; i <
G4int(armProducts.size()); i++)
130 productEnergy += armProducts[i]->GetKineticEnergy();
136 G4double sinTh = std::sqrt(1.- cosTh*cosTh);
140 sinTh*std::cos(phi), cosTh);
144 armProducts.push_back(extra);
153 G4double cmMomentum = Q*(Q + 2.*daughterMass)/(Q + daughterMass)/2.;
156 G4double sintheta = std::sqrt(1.0 - costheta*costheta);
158 G4ThreeVector direction(sintheta*std::cos(phi),sintheta*std::sin(phi),
165 KE = std::sqrt(cmMomentum*cmMomentum + daughterMass*daughterMass) - daughterMass;
170 G4int nArm = armProducts.size();
173 for (
G4int i = 0; i < nArm; ++i) {
const G4RadioactiveDecayMode theMode
void CheckAndFillDaughters()
Hep3Vector boostVector() const
static G4LossTableManager * Instance()
G4bool IsFluoActive() const
CLHEP::Hep3Vector G4ThreeVector
G4int PushProducts(G4DynamicParticle *aParticle)
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
static constexpr double rad
G4double BindingEnergy() const
G4bool DeexcitationIgnoreCut() const
G4int GetAtomicNumber() const
static constexpr double twopi
virtual const G4AtomicShell * GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell)=0
HepLorentzVector & boost(double, double, double)
G4LorentzVector Get4Momentum() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void Set4Momentum(const G4LorentzVector &momentum)
G4double GetPDGMass() const
static G4EmParameters * Instance()
static G4Electron * Electron()
G4VAtomDeexcitation * AtomDeexcitation()
void GenerateParticles(std::vector< G4DynamicParticle * > *secVect, const G4AtomicShell *, G4int Z, G4int coupleIndex)
static constexpr double keV
void CheckAndFillParent()
static G4int GetNumberOfShells(G4int Z)