103{
106 G4ReactionProduct boosted;
107 boosted.
Lorentz(*(fCache.Get().theNeutronRP), *(fCache.Get().theTarget));
109
110
111 std::vector<G4ReactionProduct> theNeutrons;
112 for (i = 0; i < nPrompt + nDelayed; ++i) {
113 theNeutrons.emplace_back();
115 }
116
117
120 for (i = 0; i < nPrompt; ++i) {
121 tempE =
122 thePromptNeutronEnDis.Sample(eKinetic, dummy);
123 theNeutrons[i].SetKineticEnergy(tempE);
124 }
125 for (i = nPrompt; i < nPrompt + nDelayed; ++i) {
126 theNeutrons[i].SetKineticEnergy(theDelayedNeutronEnDis.Sample(eKinetic, it));
127 if (it == 0) theNeutrons[i].SetKineticEnergy(thePromptNeutronEnDis.Sample(eKinetic, dummy));
128 theDecayConst[i - nPrompt] = theFinalStateNeutrons.GetDecayConstant(it);
129 }
130
131
132 for (i = 0; i < nPrompt + nDelayed; ++i) {
133 theNeutronAngularDis.SampleAndUpdate(
134 theNeutrons[i]);
135 }
136
137
138 for (i = 0; i < nPrompt + nDelayed; ++i) {
139 auto dp = new G4DynamicParticle;
140 dp->SetDefinition(theNeutrons[i].GetDefinition());
141 dp->SetMomentum(theNeutrons[i].GetMomentum());
142 aResult->push_back(dp);
143 }
144 return aResult;
145}
std::vector< G4DynamicParticle * > G4DynamicParticleVector
static G4Neutron * Neutron()
G4double GetKineticEnergy() const
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)