34 #define INCLXX_IN_GEANT4_MODE 1
66 :theNucleus(0), maximumTime(70.0), currentTime(0.0),
67 hadronizationTime(hTime),
69 theLocalEnergyType(localEnergyType),
70 theLocalEnergyDeltaType(localEnergyDeltaType)
86 return shootComposite(projectileSpecies, kineticEnergy, impactParameter, phi);
98 G4double momentumZ = std::sqrt(energy*energy - projectileMass*projectileMass);
114 temfin *= (5.8E4-TLab)/5.6E4;
122 const G4double traversalTime = distance / projectileVelocity;
131 INCL_DEBUG(
"impactParameter>CoulombDistortion::maxImpactParameter" <<
'\n');
137 impactParameter * std::sin(phi),
181 const G4double distance = 2.*rMax + 2.725*rms;
183 const G4double traversalTime = distance / projectileVelocity;
192 INCL_DEBUG(
"impactParameter>CoulombDistortion::maxImpactParameter" <<
'\n');
199 impactParameter * std::sin(phi),
216 if(theAvatarList.empty()) {
217 INCL_DEBUG(
"No ParticleEntryAvatar found, transparent event" <<
'\n');
274 G4double minDistOfApproachSquared = 0.0;
289 const G4bool p1HasLocalEnergy = (hasLocalEnergy && !p1->
isMeson());
290 const G4bool p2HasLocalEnergy = (hasLocalEnergy && !p2->
isMeson());
292 if(p1HasLocalEnergy) {
301 if(p2HasLocalEnergy) {
306 if(p1HasLocalEnergy) {
319 if(p1HasLocalEnergy) {
322 if(p2HasLocalEnergy) {
332 if(
Math::tenPi*minDistOfApproachSquared > totalCrossSection)
return NULL;
348 if(theIntersection.
exists) {
351 INCL_ERROR(
"Imaginary reflection time for particle: " <<
'\n'
352 << aParticle->
print());
369 (*minDistOfApproach) = 100000.0;
374 (*minDistOfApproach) = distance.
mag2() + time * t7;
381 for(
ParticleIter updated=updatedParticles.begin(),
e=updatedParticles.end(); updated!=
e; ++updated)
399 for(
ParticleIter p1=particles.begin(),
e=particles.end(); p1!=
e; ++p1) {
401 for(
ParticleIter p2 = p1 + 1; p2 != particles.end(); ++p2) {
409 const G4bool haveExcept = !except.empty();
412 for(
ParticleIter p1=particles.begin(),
e=particles.end(); p1!=
e; ++p1)
416 for(++p2; p2 != particles.end(); ++p2)
429 for(
ParticleIter iter=particles.begin(),
e=particles.end(); iter!=
e; ++iter) {
441 for(
ParticleIter i=particles.begin(),
e=particles.end(); i!=
e; ++i) {
449 #ifdef INCL_REGENERATE_AVATARS
450 void StandardPropagationModel::generateAllAvatarsExceptUpdated(
FinalState const *
const fs) {
453 for(
ParticleIter i=particles.begin(),
e=particles.end(); i!=
e; ++i) {
459 except.insert(except.end(), entering.begin(), entering.end());
466 for(
ParticleIter i=particles.begin(),
e=particles.end(); i!=
e; ++i) {
467 if((*i)->isDelta()) {
481 if((*i)->isOmega()) {
496 #ifdef INCL_REGENERATE_AVATARS
497 #warning "The INCL_REGENERATE_AVATARS code has not been tested in a while. Use it at your peril."
503 generateAllAvatarsExceptUpdated(fs);
519 if(created.empty() && entering.empty())
523 updatedParticlesCopy.insert(updatedParticlesCopy.end(), entering.begin(), entering.end());
524 updatedParticlesCopy.insert(updatedParticlesCopy.end(), created.begin(), created.end());
532 if(theAvatar == 0)
return 0;