42 , theTransport(0), theHighEnergyGenerator(0)
43 , theQuasielastic(0), theProjectileDiffraction(0)
50 delete theParticleChange;
56 <<
" string model and of "
58 <<
"The string model simulates the interaction of\n"
59 <<
"an incident hadron with a nucleus, forming \n"
60 <<
"excited strings, decays these strings into hadrons,\n"
61 <<
"and leaves an excited nucleus.\n"
62 <<
"The string model:\n";
71 theParticleChange->
Clear();
81 if ( theQuasielastic ) {
90 for(
unsigned int i=0; i<result->size(); i++)
94 result->operator[](i)->Get4Momentum().e(),
95 result->operator[](i)->Get4Momentum().vect());
97 delete result->operator[](i);
108 return theParticleChange;
111 if ( theProjectileDiffraction) {
123 for(
unsigned int i=0; i<result->size(); i++)
127 result->operator[](i)->Get4Momentum().e(),
128 result->operator[](i)->Get4Momentum().vect());
130 delete result->operator[](i);
141 return theParticleChange;
145 theHighEnergyGenerator->
Scatter(theNucleus, *aPart);
148 #ifdef DEBUG_initial_result
151 std::vector<G4KineticTrack *>::iterator ir_iter;
152 for(ir_iter=theInitialResult->begin(); ir_iter!=theInitialResult->end(); ir_iter++)
155 E_out += (*ir_iter)->Get4Momentum().e();
158 G4double init_E=aPart->Get4Momentum().e();
161 G4int resZ(0),resA(0);
163 for(
size_t them=0; them<thy.size(); them++)
165 if(thy[them].AreYouHit()) {
179 G4double E_excit=init_mass + init_E - final_mass - E_out;
180 G4cout <<
" Corrected delta mass " << init_mass - final_mass - delta_m <<
G4endl;
181 G4cout <<
"initial E, mass = " << init_E <<
", " << init_mass <<
G4endl;
182 G4cout <<
" final E, mass = " << E_out <<
", " << final_mass <<
" excitation_E " << E_excit <<
G4endl;
188 for(
size_t them=0; them<they.size(); them++)
190 if(they[them].AreYouHit()) hitCount ++;
197 if ( !theTransportResult ) {
198 G4cout <<
"G4TheoFSGenerator: null ptr from transport propagate " <<
G4endl;
205 if ( !theTransportResult ) {
206 G4cout <<
"G4TheoFSGenerator: null ptr from decay propagate " <<
G4endl;
213 for(i=0; i<theTransportResult->size(); i++)
217 theTransportResult->operator[](i)->GetTotalEnergy(),
218 theTransportResult->operator[](i)->GetMomentum());
221 delete theTransportResult->operator[](i);
225 delete theTransportResult;
228 return theParticleChange;
233 if ( theHighEnergyGenerator ) {