ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4INCL::BinaryCollisionAvatar Class Reference

#include <geant4/tree/geant4-10.6-release/source/processes/hadronic/models/inclxx/incl_physics/include/G4INCLBinaryCollisionAvatar.hh>

+ Inheritance diagram for G4INCL::BinaryCollisionAvatar:
+ Collaboration diagram for G4INCL::BinaryCollisionAvatar:

Public Member Functions

 BinaryCollisionAvatar (G4double, G4double, G4INCL::Nucleus *, G4INCL::Particle *, G4INCL::Particle *)
 
virtual ~BinaryCollisionAvatar ()
 
G4INCL::IChannelgetChannel ()
 
ParticleList getParticles () const
 
virtual void preInteraction ()
 
virtual void postInteraction (FinalState *)
 
std::string dump () const
 
- Public Member Functions inherited from G4INCL::InteractionAvatar
 InteractionAvatar (G4double, G4INCL::Nucleus *, G4INCL::Particle *)
 
 InteractionAvatar (G4double, G4INCL::Nucleus *, G4INCL::Particle *, G4INCL::Particle *)
 
virtual ~InteractionAvatar ()
 
- Public Member Functions inherited from G4INCL::IAvatar
 IAvatar ()
 
 IAvatar (G4double time)
 
virtual ~IAvatar ()
 
FinalStategetFinalState ()
 
void fillFinalState (FinalState *fs)
 
G4double getTime () const
 
AvatarType getType () const
 
G4bool isACollision () const
 
G4bool isADecay () const
 
void setType (AvatarType t)
 
long getID () const
 
std::string toString ()
 

Static Public Member Functions

static void setCutNN (const G4double c)
 
static G4double getCutNN ()
 
static G4double getCutNNSquared ()
 
static G4double getBias ()
 Get the bias.
 
static void setBias (const G4double b)
 Set the bias.
 
- Static Public Member Functions inherited from G4INCL::InteractionAvatar
static void deleteBackupParticles ()
 Release the memory allocated for the backup particles.
 

Private Attributes

G4double theCrossSection
 
G4bool isParticle1Spectator
 
G4bool isParticle2Spectator
 
G4bool isElastic
 
G4bool isStrangeProduction
 

Static Private Attributes

static G4ThreadLocal G4double cutNN = 1910.0
 
static G4ThreadLocal G4double cutNNSquared = 3648100.0
 
static G4ThreadLocal G4double bias = 1.
 

Additional Inherited Members

- Static Public Attributes inherited from G4INCL::InteractionAvatar
static const G4double locEAccuracy = 1.E-4
 Target accuracy in the determination of the local-energy Q-value.
 
static const G4int maxIterLocE = 50
 Max number of iterations for the determination of the local-energy Q-value.
 
- Protected Member Functions inherited from G4INCL::InteractionAvatar
G4bool bringParticleInside (Particle *const p)
 
void preInteractionLocalEnergy (Particle *const p)
 Apply local-energy transformation, if appropriate.
 
void preInteractionBlocking ()
 Store the state of the particles before the interaction.
 
void preInteraction ()
 
void postInteraction (FinalState *)
 
void restoreParticles () const
 Restore the state of both particles.
 
G4bool shouldUseLocalEnergy () const
 true if the given avatar should use local energy
 
G4bool enforceEnergyConservation (FinalState *const fs)
 Enforce energy conservation.
 
- Protected Attributes inherited from G4INCL::InteractionAvatar
NucleustheNucleus
 
Particleparticle1
 
Particleparticle2
 
ThreeVector boostVector
 
G4double oldTotalEnergy
 
G4double oldXSec
 
G4bool isPiN
 
G4double weight
 
ParticleList modified
 
ParticleList created
 
ParticleList modifiedAndCreated
 
ParticleList Destroyed
 
ParticleList ModifiedAndDestroyed
 
- Static Protected Attributes inherited from G4INCL::InteractionAvatar
static G4ThreadLocal ParticlebackupParticle1 = NULL
 
static G4ThreadLocal ParticlebackupParticle2 = NULL
 

Detailed Description

Definition at line 56 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 56 of file G4INCLBinaryCollisionAvatar.hh

Constructor & Destructor Documentation

G4INCL::BinaryCollisionAvatar::BinaryCollisionAvatar ( G4double  time,
G4double  crossSection,
G4INCL::Nucleus n,
G4INCL::Particle p1,
G4INCL::Particle p2 
)

Definition at line 124 of file G4INCLBinaryCollisionAvatar.cc.

View newest version in sPHENIX GitHub at line 124 of file G4INCLBinaryCollisionAvatar.cc

References G4INCL::CollisionAvatarType, and G4INCL::IAvatar::setType().

+ Here is the call graph for this function:

G4INCL::BinaryCollisionAvatar::~BinaryCollisionAvatar ( )
virtual

Definition at line 135 of file G4INCLBinaryCollisionAvatar.cc.

View newest version in sPHENIX GitHub at line 135 of file G4INCLBinaryCollisionAvatar.cc

Member Function Documentation

std::string G4INCL::BinaryCollisionAvatar::dump ( ) const
virtual

Implements G4INCL::IAvatar.

Definition at line 1300 of file G4INCLBinaryCollisionAvatar.cc.

View newest version in sPHENIX GitHub at line 1300 of file G4INCLBinaryCollisionAvatar.cc

References G4INCL::Particle::dump(), G4INCL::InteractionAvatar::particle1, G4INCL::InteractionAvatar::particle2, and G4INCL::IAvatar::theTime.

+ Here is the call graph for this function:

static G4double G4INCL::BinaryCollisionAvatar::getBias ( )
inlinestatic

Get the bias.

Definition at line 83 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 83 of file G4INCLBinaryCollisionAvatar.hh

References bias.

G4INCL::IChannel * G4INCL::BinaryCollisionAvatar::getChannel ( )
virtual

Check again the distance of approach. In order for the avatar to be realised, we have to perform a check in the CM system. We define a distance four-vector as

\[ (0, \Delta\vec{x}), \]

where $\Delta\vec{x}$ is the distance vector of the particles at their minimum distance of approach (i.e. at the avatar time). By boosting this four-vector to the CM frame of the two particles and we obtain a new four vector

\[ (\Delta t', \Delta\vec{x}'), \]

with a non-zero time component (the collision happens simultaneously for the two particles in the lab system, but not in the CM system). In order for the avatar to be realised, we require that

\[ |\Delta\vec{x}'| \leq \sqrt{\sigma/\pi}.\]

Note that $|\Delta\vec{x}'|\leq|\Delta\vec{x}|$; thus, the condition above is more restrictive than the check that we perform in G4INCL::Propagation::StandardPropagationModel::generateBinaryCollisionAvatar. In other words, the avatar generation cannot miss any physical collision avatars.

Bias apply for this reaction in order to get the same ParticleBias for all stange particles. Can be reduced after because of the watchdog.

Implements G4INCL::InteractionAvatar.

Definition at line 138 of file G4INCLBinaryCollisionAvatar.cc.

View newest version in sPHENIX GitHub at line 138 of file G4INCLBinaryCollisionAvatar.cc

References bias, G4INCL::InteractionAvatar::boostVector, cutNNSquared, G4INCL::ThreeVector::dot(), G4INCL::CrossSections::elastic(), G4INCL::CrossSections::etaNToPiN(), G4INCL::CrossSections::etaNToPiPiN(), G4INCL::Book::getAcceptedCollisions(), G4INCL::Particle::getBiasFromVector(), G4INCL::Store::getBook(), G4INCL::Particle::getPosition(), G4INCL::Nucleus::getStore(), INCL_DEBUG, INCL_ERROR, INCL_WARN, G4INCL::Particle::isAntiKaon(), G4INCL::Particle::isDelta(), isElastic, G4INCL::Particle::isEta(), G4INCL::Particle::isKaon(), G4INCL::Particle::isLambda(), G4INCL::Particle::isNucleon(), G4INCL::Particle::isOmega(), G4INCL::InteractionAvatar::isPiN, G4INCL::Particle::isSigma(), isStrangeProduction, G4INCL::ThreeVector::mag2(), G4INCL::Particle::MergeVectorBias(), G4INCL::CrossSections::NDeltaToDeltaLK(), G4INCL::CrossSections::NDeltaToDeltaSK(), G4INCL::CrossSections::NDeltaToNLK(), G4INCL::CrossSections::NDeltaToNN(), G4INCL::CrossSections::NDeltaToNNKKb(), G4INCL::CrossSections::NDeltaToNSK(), G4INCL::CrossSections::NKbToL2pi(), G4INCL::CrossSections::NKbToLpi(), G4INCL::CrossSections::NKbToNKb(), G4INCL::CrossSections::NKbToNKb2pi(), G4INCL::CrossSections::NKbToNKbpi(), G4INCL::CrossSections::NKbToS2pi(), G4INCL::CrossSections::NKbToSpi(), G4INCL::CrossSections::NKToNK(), G4INCL::CrossSections::NKToNK2pi(), G4INCL::CrossSections::NKToNKpi(), G4INCL::CrossSections::NLToNS(), G4INCL::CrossSections::NNToMissingStrangeness(), G4INCL::CrossSections::NNToNDelta(), G4INCL::CrossSections::NNToNDeltaEta(), G4INCL::CrossSections::NNToNDeltaOmega(), G4INCL::CrossSections::NNToNLK(), G4INCL::CrossSections::NNToNLK2pi(), G4INCL::CrossSections::NNToNLKpi(), G4INCL::CrossSections::NNToNNEtaExclu(), G4INCL::CrossSections::NNToNNEtaxPi(), G4INCL::CrossSections::NNToNNKKb(), G4INCL::CrossSections::NNToNNOmegaExclu(), G4INCL::CrossSections::NNToNNOmegaxPi(), G4INCL::CrossSections::NNToNSK(), G4INCL::CrossSections::NNToNSK2pi(), G4INCL::CrossSections::NNToNSKpi(), G4INCL::CrossSections::NNToxPiNN(), G4INCL::CrossSections::NpiToLK(), G4INCL::CrossSections::NpiToLK2pi(), G4INCL::CrossSections::NpiToLKpi(), G4INCL::CrossSections::NpiToMissingStrangeness(), G4INCL::CrossSections::NpiToNKKb(), G4INCL::CrossSections::NpiToSK(), G4INCL::CrossSections::NpiToSK2pi(), G4INCL::CrossSections::NpiToSKpi(), G4INCL::CrossSections::NSToNL(), G4INCL::CrossSections::NSToNS(), G4INCL::CrossSections::omegaNToPiN(), G4INCL::CrossSections::omegaNToPiPiN(), G4INCL::InteractionAvatar::particle1, G4INCL::InteractionAvatar::particle2, G4INCL::CrossSections::piNToDelta(), G4INCL::CrossSections::piNToEtaN(), G4INCL::CrossSections::piNToOmegaN(), G4INCL::CrossSections::piNToxPiN(), G4INCL::Particle::print(), G4INCL::InteractionAvatar::restoreParticles(), G4INCL::Random::shoot(), G4INCL::KinematicsUtils::squareTotalEnergyInCM(), G4INCL::Math::tenPi, theCrossSection, G4INCL::InteractionAvatar::theNucleus, G4INCL::CrossSections::total(), and G4INCL::InteractionAvatar::weight.

static G4double G4INCL::BinaryCollisionAvatar::getCutNN ( )
inlinestatic

Definition at line 78 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 78 of file G4INCLBinaryCollisionAvatar.hh

References cutNN.

static G4double G4INCL::BinaryCollisionAvatar::getCutNNSquared ( )
inlinestatic

Definition at line 80 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 80 of file G4INCLBinaryCollisionAvatar.hh

References cutNNSquared.

Referenced by G4INCL::StandardPropagationModel::generateBinaryCollisionAvatar().

+ Here is the caller graph for this function:

ParticleList G4INCL::BinaryCollisionAvatar::getParticles ( ) const
inlinevirtual

Implements G4INCL::IAvatar.

Definition at line 61 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 61 of file G4INCLBinaryCollisionAvatar.hh

References G4INCL::InteractionAvatar::particle1, and G4INCL::InteractionAvatar::particle2.

void G4INCL::BinaryCollisionAvatar::preInteraction ( )
virtual

Implements G4INCL::IAvatar.

Definition at line 1250 of file G4INCLBinaryCollisionAvatar.cc.

View newest version in sPHENIX GitHub at line 1250 of file G4INCLBinaryCollisionAvatar.cc

References isParticle1Spectator, isParticle2Spectator, G4INCL::Particle::isTargetSpectator(), G4INCL::InteractionAvatar::particle1, G4INCL::InteractionAvatar::particle2, and G4INCL::InteractionAvatar::preInteraction().

+ Here is the call graph for this function:

static void G4INCL::BinaryCollisionAvatar::setBias ( const G4double  b)
inlinestatic

Set the bias.

Definition at line 86 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 86 of file G4INCLBinaryCollisionAvatar.hh

References b, and bias.

Referenced by G4INCL::INCL::INCL().

+ Here is the caller graph for this function:

static void G4INCL::BinaryCollisionAvatar::setCutNN ( const G4double  c)
inlinestatic

Definition at line 73 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 73 of file G4INCLBinaryCollisionAvatar.hh

References c, cutNN, and cutNNSquared.

Referenced by G4INCL::INCL::INCL().

+ Here is the caller graph for this function:

Member Data Documentation

G4ThreadLocal G4double G4INCL::BinaryCollisionAvatar::bias = 1.
staticprivate

Definition at line 91 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 91 of file G4INCLBinaryCollisionAvatar.hh

Referenced by getBias(), getChannel(), and setBias().

G4ThreadLocal G4double G4INCL::BinaryCollisionAvatar::cutNN = 1910.0
staticprivate

Definition at line 89 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 89 of file G4INCLBinaryCollisionAvatar.hh

Referenced by getCutNN(), and setCutNN().

G4ThreadLocal G4double G4INCL::BinaryCollisionAvatar::cutNNSquared = 3648100.0
staticprivate

Definition at line 90 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 90 of file G4INCLBinaryCollisionAvatar.hh

Referenced by getChannel(), getCutNNSquared(), and setCutNN().

G4bool G4INCL::BinaryCollisionAvatar::isElastic
private

Definition at line 95 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 95 of file G4INCLBinaryCollisionAvatar.hh

Referenced by getChannel(), and postInteraction().

G4bool G4INCL::BinaryCollisionAvatar::isParticle1Spectator
private

Definition at line 93 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 93 of file G4INCLBinaryCollisionAvatar.hh

Referenced by postInteraction(), and preInteraction().

G4bool G4INCL::BinaryCollisionAvatar::isParticle2Spectator
private

Definition at line 94 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 94 of file G4INCLBinaryCollisionAvatar.hh

Referenced by postInteraction(), and preInteraction().

G4bool G4INCL::BinaryCollisionAvatar::isStrangeProduction
private

Definition at line 97 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 97 of file G4INCLBinaryCollisionAvatar.hh

Referenced by getChannel(), and postInteraction().

G4double G4INCL::BinaryCollisionAvatar::theCrossSection
private

Definition at line 92 of file G4INCLBinaryCollisionAvatar.hh.

View newest version in sPHENIX GitHub at line 92 of file G4INCLBinaryCollisionAvatar.hh

Referenced by getChannel().


The documentation for this class was generated from the following files: