100 {
102
104 theResult->push_back(
new G4Fragment(theNucleus));
105 return theResult;
106 }
107
111
114
117
118 if ( verboseLevel > 2 )
119 G4cout <<
" G4InuclEvaporation : initial kinematics : boostToLab vector = " << boostToLab <<
G4endl
120 <<
" excitation energy : " << exitationE <<
G4endl;
121
122 if (verboseLevel > 2) {
123 G4cout <<
"G4InuclEvaporation::BreakItUp >>> A: " <<
A <<
" Z: " <<
Z
124 << " exitation E: " << exitationE << " mass: " << mTar/GeV << " GeV"
126 };
127
130
132 evaporator->
collide(0, nucleus, output);
133
136
138
139 if (!particles.empty()) {
142 for (; ipart != particles.cend(); ++ipart) {
143 outgoingType = ipart->type();
144
145 if (verboseLevel > 2) {
146 G4cout <<
"Evaporated particle: " << i <<
" of type: "
147 << outgoingType <<
G4endl;
148 ++i;
149 }
150
152
153
154 theResult->push_back(
new G4Fragment(vlab, ipart->getDefinition()) );
155 }
156 }
157
158 if (!outgoingNuclei.empty()) {
160 for (i=1; ifrag != outgoingNuclei.cend(); ++ifrag) {
161 if (verboseLevel > 2) {
163 }
164
166
167 G4int fragA = ifrag->getA();
169 if (verboseLevel > 2) {
171 }
172 theResult->push_back(
new G4Fragment(fragA, fragZ, vlab) );
173 }
174 }
175
176 return theResult;
177}
std::vector< G4InuclElementaryParticle >::iterator particleIterator
std::vector< G4InuclNuclei >::const_iterator nucleiIterator
std::vector< G4Fragment * > G4FragmentVector
G4GLOB_DLL std::ostream G4cout
HepLorentzVector & boost(double, double, double)
const std::vector< G4InuclNuclei > & getOutgoingNuclei() const
const std::vector< G4InuclElementaryParticle > & getOutgoingParticles() const
G4double GetExcitationEnergy() const
const G4LorentzVector & GetMomentum() const
void setExitationEnergy(G4double e)
static G4double GetNuclearMass(const G4double A, const G4double Z)
virtual void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &globalOutput)