99{
103
104 G4int A = theNucleus.GetA_asInt();
105 G4int Z = theNucleus.GetZ_asInt();
106
109
110
112
113
114 G4double factT = T/CLHEP::STP_Temperature;
115
117 lab4mom.
set(0.,0.,0.,mass);
118
119 } else {
121 G4double erand = G4RandGamma::shoot(2.0, lambda);
123 lab4mom.
set(mom.x(), mom.y(), mom.z(), mass + erand);
124 }
125
127
131
132
133
134
136 G4double etot = std::max(mass, lab4mom.
e());
137 G4double ptot = std::sqrt((etot - mass)*(etot + mass));
139 lab4mom.
set(v.
x()*ptot,v.
y()*ptot,v.
z()*ptot,etot);
140 }
141
143
145 G4cout <<
"G4NeutronFissionVI::ApplyYourself initial G4Fragmet:"
148 }
149
150
151
152
156 if (nullptr != frag) {
158 for (auto & p : *v) {
159 final->push_back(p);
160 }
161 delete v;
162 delete frag;
163 }
164
166 G4cout <<
"G4NeutronFissionVI: " <<
final->size()
167 <<
" final particle secID= " << secID <<
G4endl;
168 }
169 for (auto const & ptr : *final) {
170 G4double etot = ptr->GetTotalEnergy();
172 ekin = std::max(0.0, etot - theDef->
GetPDGMass());
175 << " Ekin(MeV)= " << ekin/MeV
176 << " p: " << ptr->GetMomentum()
178 }
181 G4double timeF = std::max(ptr->GetFormationTime(), 0.0);
185 delete news;
186 delete ptr;
187 }
188 delete final;
189 delete aFragment;
190
191
193}
G4ThreeVector G4RandomDirection()
std::vector< G4ReactionProduct * > G4ReactionProductVector
G4GLOB_DLL std::ostream G4cout
void set(double x, double y, double z, double t)
G4ReactionProductVector * BreakItUp(const G4Fragment &theInitialState)
void SetStatusChange(G4HadFinalStateStatus aS)
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
const G4Material * GetMaterial() const
G4double GetKineticEnergy() const
const G4LorentzVector & Get4Momentum() const
G4double GetGlobalTime() const
void SetTime(G4double aT)
void SetCreatorModelID(G4int id)
G4HadFinalState theParticleChange
G4double GetTemperature() const
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetPDGMass() const
const G4String & GetParticleName() const
G4bool GetNeglectDoppler() const
virtual G4Fragment * EmittedFragment(G4Fragment *theNucleus)
virtual G4double GetEmissionProbability(G4Fragment *theNucleus)=0