39 std::vector<G4FermiNucleiData>&& decayData)
41 decayData_(
std::move(decayData))
45 std::vector<G4FermiParticle>& fragments)
const
48 auto fragmentsMomentum = phaseDecay.
CalculateDecay(momentum, masses_);
52 for (std::size_t i = 0; i < decayData_.size(); ++i) {
53 fragments.emplace_back(decayData_[i].atomicMass, decayData_[i].chargeNumber,
54 fragmentsMomentum[i].boost(boostVector));
61 masses_.reserve(decayData_.size());
62 for (
const auto& decayFragment : decayData_) {
64 decayFragment.chargeNumber));
CLHEP::HepLorentzVector G4LorentzVector
Hep3Vector boostVector() const
static G4double GetNuclearMass(G4FermiAtomicMass atomicMass, G4FermiChargeNumber chargeNumber)
std::vector< G4LorentzVector > CalculateDecay(const G4LorentzVector &totalMomentum, const std::vector< G4double > &fragmentsMass) const
void AppendDecayFragments(const G4LorentzVector &momentum, std::vector< G4FermiParticle > &particles) const override
G4FermiUnstableFragment(G4FermiAtomicMass atomicMass, G4FermiChargeNumber chargeNumber, G4int polarization, G4double excitationEnergy, std::vector< G4FermiNucleiData > &&decayData)
G4VFermiFragmentAN(G4FermiAtomicMass atomicMass, G4FermiChargeNumber chargeNumber, G4int polarization, G4double excitationEnergy)
virtual void DoInitialize()=0