33 #define INCLXX_IN_GEANT4_MODE 1
71 isParticle1Spectator(false),
72 isParticle2Spectator(false),
92 <<
") MeV = cutNN" <<
"; returning a NULL channel" << std::endl);
122 INCL_DEBUG(
"CM distance of approach is too small: " << minDist <<
">" <<
134 if(elasticCX/(elasticCX + deltaProductionCX) <
Random::shoot()) {
141 INCL_DEBUG(
"NN interaction: elastic channel chosen" << std::endl);
145 INCL_DEBUG(
"NN interaction: inelastic channel chosen" << std::endl);
155 if(elasticCX/(elasticCX + recombinationCX) <
Random::shoot()) {
162 INCL_DEBUG(
"NDelta interaction: elastic channel chosen" << std::endl);
165 INCL_DEBUG(
"NDelta interaction: recombination channel chosen" << std::endl);
170 INCL_DEBUG(
"DeltaDelta interaction: elastic channel chosen" << std::endl);
177 INCL_DEBUG(
"BinaryCollisionAvatar can only handle nucleons (for the moment)."
218 INCL_ERROR(
"First collision must be within a target spectator and a non-target spectator");
236 std::stringstream ss;
237 ss <<
"(avatar " <<
theTime <<
" 'nn-collision" << std::endl
238 <<
"(list " << std::endl
241 <<
"))" << std::endl;
FinalStateValidity getValidity() const
void incrementBlockedCollisions()
G4double dot(const ThreeVector &v) const
Dot product.
Channel generates a final state of an avatar.
G4double deltaProduction(Particle const *const p1, Particle const *const p2)
G4int getAcceptedCollisions() const
G4double recombination(Particle const *const p1, Particle const *const p2)
G4double squareTotalEnergyInCM(Particle const *const p1, Particle const *const p2)
G4bool isTargetSpectator() const
const G4INCL::ThreeVector & getMomentum() const
Get the momentum vector.
G4bool isDelta() const
Is it a Delta?
std::string print() const
G4double mag2() const
Get the square of the length.
static G4ThreadLocal Particle * backupParticle2
G4bool isParticle2Spectator
void incrementAcceptedCollisions()
Final state of an interaction.
void setType(AvatarType t)
Book & getBook()
Return the pointer to the Book object which keeps track of various counters.
G4double getCurrentTime()
void setFirstCollisionXSec(const G4double x)
FinalState * postInteraction(FinalState *)
static G4ThreadLocal Particle * backupParticle1
virtual FinalState * postInteraction(FinalState *)
void setFirstCollisionTime(const G4double t)
static G4ThreadLocal G4double cutNNSquared
static G4ThreadLocal G4double cutNN
Delta-nucleon recombination channel.
G4INCL::IChannel * getChannel()
const G4INCL::ThreeVector & getPosition() const
Set the position vector.
virtual void preInteraction()
G4bool isNucleon() const
Is this a nucleon?
G4double shoot()
Generate flat distribution of random numbers.
virtual ~BinaryCollisionAvatar()
G4bool isParticle1Spectator
void restoreParticles() const
Restore the state of both particles.
G4double mag() const
Get the length of the vector.
BinaryCollisionAvatar(G4double, G4double, G4INCL::Nucleus *, G4INCL::Particle *, G4INCL::Particle *)
void setFirstCollisionIsElastic(const G4bool e)
G4bool isPion() const
Is this a pion?
void setFirstCollisionSpectatorMomentum(const G4double x)
G4double elastic(Particle const *const p1, Particle const *const p2)
void setFirstCollisionSpectatorPosition(const G4double x)