35#define INCLXX_IN_GEANT4_MODE 1
89 <<
") MeV = cutNN" <<
"; returning a NULL channel" << std::endl);
118 if(minDist > theCrossSection) {
119 DEBUG(
"CM distance of approach is too small: " << minDist <<
">" <<
120 theCrossSection <<
"; returning a NULL channel" << std::endl);
132 if(elasticCX/(elasticCX + deltaProductionCX) <
Random::shoot()) {
138 DEBUG(
"NN interaction: elastic channel chosen" << std::endl);
142 DEBUG(
"NN interaction: inelastic channel chosen" << std::endl);
153 if(elasticCX/(elasticCX + recombinationCX) <
Random::shoot()) {
159 DEBUG(
"NDelta interaction: elastic channel chosen" << std::endl);
162 DEBUG(
"NDelta interaction: recombination channel chosen" << std::endl);
166 DEBUG(
"DeltaDelta interaction: elastic channel chosen" << std::endl);
172 DEBUG(
"BinaryCollisionAvatar can only handle nucleons (for the moment)."
212 std::stringstream ss;
213 ss <<
"(avatar " <<
theTime <<
" 'nn-collision" << std::endl
214 <<
"(list " << std::endl
217 <<
"))" << std::endl;
Delta-nucleon recombination channel.
virtual ~BinaryCollisionAvatar()
G4INCL::IChannel * getChannel() const
static const G4double cutNNSquared
BinaryCollisionAvatar(G4double, G4double, G4INCL::Nucleus *, G4INCL::Particle *, G4INCL::Particle *)
virtual FinalState * postInteraction(FinalState *)
virtual void preInteraction()
static const G4double cutNN
void incrementAcceptedCollisions()
G4int getAcceptedCollisions() const
void incrementBlockedCollisions()
void setFirstCollisionTime(G4double t)
G4double getCurrentTime()
void setFirstCollisionXSec(G4double x)
static G4double elastic(Particle const *const p1, Particle const *const p2)
static G4double deltaProduction(Particle const *const p1, Particle const *const p2)
static G4double recombination(Particle const *const p1, Particle const *const p2)
FinalStateValidity getValidity() const
void setType(AvatarType t)
FinalState * postInteraction(FinalState *)
void restoreParticles() const
Restore the state of both particles.
G4INCL::Particle * particle1
G4INCL::Particle * particle2
G4INCL::Nucleus * theNucleus
G4bool shouldUseLocalEnergy() const
true if the given avatar should use local energy
static G4double squareTotalEnergyInCM(Particle const *const p1, Particle const *const p2)
const G4INCL::ThreeVector & getPosition() const
G4bool isPion() const
Is this a pion?
std::string print() const
G4bool isDelta() const
Is it a Delta?
G4double dot(const ThreeVector &v) const