Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4INCL::Particle Class Reference

#include <G4INCLParticle.hh>

+ Inheritance diagram for G4INCL::Particle:

Public Member Functions

 Particle ()
 
 Particle (ParticleType t, G4double energy, ThreeVector const &momentum, ThreeVector const &position)
 
 Particle (ParticleType t, ThreeVector const &momentum, ThreeVector const &position)
 
virtual ~Particle ()
 
 Particle (const Particle &rhs)
 Copy constructor.
 
Particleoperator= (const Particle &rhs)
 Assignment operator.
 
G4INCL::ParticleType getType () const
 
virtual G4INCL::ParticleSpecies getSpecies () const
 Get the particle species.
 
void setType (ParticleType t)
 
G4bool isNucleon () const
 
ParticipantType getParticipantType () const
 
void setParticipantType (ParticipantType const p)
 
G4bool isParticipant () const
 
G4bool isTargetSpectator () const
 
G4bool isProjectileSpectator () const
 
virtual void makeParticipant ()
 
virtual void makeTargetSpectator ()
 
virtual void makeProjectileSpectator ()
 
G4bool isPion () const
 Is this a pion?
 
G4bool isEta () const
 Is this an eta?
 
G4bool isOmega () const
 Is this an omega?
 
G4bool isEtaPrime () const
 Is this an etaprime?
 
G4bool isPhoton () const
 Is this a photon?
 
G4bool isResonance () const
 Is it a resonance?
 
G4bool isDelta () const
 Is it a Delta?
 
G4bool isSigma () const
 Is this a Sigma?
 
G4bool isKaon () const
 Is this a Kaon?
 
G4bool isAntiKaon () const
 Is this an antiKaon?
 
G4bool isLambda () const
 Is this a Lambda?
 
G4bool isNucleonorLambda () const
 Is this a Nucleon or a Lambda?
 
G4bool isHyperon () const
 Is this an Hyperon?
 
G4bool isMeson () const
 Is this a Meson?
 
G4bool isBaryon () const
 Is this a Baryon?
 
G4bool isStrange () const
 Is this an Strange?
 
G4int getA () const
 Returns the baryon number.
 
G4int getZ () const
 Returns the charge number.
 
G4int getS () const
 Returns the strangeness number.
 
G4double getBeta () const
 
ThreeVector boostVector () const
 
void boost (const ThreeVector &aBoostVector)
 
void lorentzContract (const ThreeVector &aBoostVector, const ThreeVector &refPos)
 Lorentz-contract the particle position around some center.
 
G4double getMass () const
 Get the cached particle mass.
 
G4double getINCLMass () const
 Get the INCL particle mass.
 
virtual G4double getTableMass () const
 Get the tabulated particle mass.
 
G4double getRealMass () const
 Get the real particle mass.
 
void setRealMass ()
 Set the mass of the Particle to its real mass.
 
void setTableMass ()
 Set the mass of the Particle to its table mass.
 
void setINCLMass ()
 Set the mass of the Particle to its table mass.
 
G4double getEmissionQValueCorrection (const G4int AParent, const G4int ZParent) const
 Computes correction on the emission Q-value.
 
G4double getTransferQValueCorrection (const G4int AFrom, const G4int ZFrom, const G4int ATo, const G4int ZTo) const
 Computes correction on the transfer Q-value.
 
G4double getEmissionQValueCorrection (const G4int AParent, const G4int ZParent, const G4int SParent) const
 Computes correction on the emission Q-value for hypernuclei.
 
G4double getTransferQValueCorrection (const G4int AFrom, const G4int ZFrom, const G4int SFrom, const G4int ATo, const G4int ZTo, const G4int STo) const
 Computes correction on the transfer Q-value for hypernuclei.
 
G4double getInvariantMass () const
 Get the the particle invariant mass.
 
G4double getKineticEnergy () const
 Get the particle kinetic energy.
 
G4double getPotentialEnergy () const
 Get the particle potential energy.
 
void setPotentialEnergy (G4double v)
 Set the particle potential energy.
 
G4double getEnergy () const
 
void setMass (G4double mass)
 
void setEnergy (G4double energy)
 
const G4INCL::ThreeVectorgetMomentum () const
 
virtual G4INCL::ThreeVector getAngularMomentum () const
 
virtual void setMomentum (const G4INCL::ThreeVector &momentum)
 
const G4INCL::ThreeVectorgetPosition () const
 
virtual void setPosition (const G4INCL::ThreeVector &position)
 
G4double getHelicity ()
 
void setHelicity (G4double h)
 
void propagate (G4double step)
 
G4int getNumberOfCollisions () const
 Return the number of collisions undergone by the particle.
 
void setNumberOfCollisions (G4int n)
 Set the number of collisions undergone by the particle.
 
void incrementNumberOfCollisions ()
 Increment the number of collisions undergone by the particle.
 
G4int getNumberOfDecays () const
 Return the number of decays undergone by the particle.
 
void setNumberOfDecays (G4int n)
 Set the number of decays undergone by the particle.
 
void incrementNumberOfDecays ()
 Increment the number of decays undergone by the particle.
 
void setOutOfWell ()
 Mark the particle as out of its potential well.
 
G4bool isOutOfWell () const
 Check if the particle is out of its potential well.
 
void setEmissionTime (G4double t)
 
G4double getEmissionTime ()
 
ThreeVector getTransversePosition () const
 Transverse component of the position w.r.t. the momentum.
 
ThreeVector getLongitudinalPosition () const
 Longitudinal component of the position w.r.t. the momentum.
 
const ThreeVectoradjustMomentumFromEnergy ()
 Rescale the momentum to match the total energy.
 
G4double adjustEnergyFromMomentum ()
 Recompute the energy to match the momentum.
 
G4bool isCluster () const
 
void setFrozenMomentum (const ThreeVector &momentum)
 Set the frozen particle momentum.
 
void setFrozenEnergy (const G4double energy)
 Set the frozen particle momentum.
 
ThreeVector getFrozenMomentum () const
 Get the frozen particle momentum.
 
G4double getFrozenEnergy () const
 Get the frozen particle momentum.
 
ThreeVector getPropagationVelocity () const
 Get the propagation velocity of the particle.
 
void freezePropagation ()
 Freeze particle propagation.
 
void thawPropagation ()
 Unfreeze particle propagation.
 
virtual void rotatePositionAndMomentum (const G4double angle, const ThreeVector &axis)
 Rotate the particle position and momentum.
 
virtual void rotatePosition (const G4double angle, const ThreeVector &axis)
 Rotate the particle position.
 
virtual void rotateMomentum (const G4double angle, const ThreeVector &axis)
 Rotate the particle momentum.
 
std::string print () const
 
std::string dump () const
 
long getID () const
 
ParticleList const * getParticles () const
 
G4double getReflectionMomentum () const
 Return the reflection momentum.
 
void setUncorrelatedMomentum (const G4double p)
 Set the uncorrelated momentum.
 
void rpCorrelate ()
 Make the particle follow a strict r-p correlation.
 
void rpDecorrelate ()
 Make the particle not follow a strict r-p correlation.
 
G4double getCosRPAngle () const
 Get the cosine of the angle between position and momentum.
 
G4double getParticleBias () const
 Get the particle bias.
 
void setParticleBias (G4double ParticleBias)
 Set the particle bias.
 
std::vector< G4intgetBiasCollisionVector () const
 Get the vector list of biased vertices on the particle path.
 
void setBiasCollisionVector (std::vector< G4int > BiasCollisionVector)
 Set the vector list of biased vertices on the particle path.
 
G4int getNumberOfKaon () const
 Number of Kaon inside de nucleus.
 
void setNumberOfKaon (const G4int NK)
 
G4int getParentResonancePDGCode () const
 
void setParentResonancePDGCode (const G4int parentPDGCode)
 
G4int getParentResonanceID () const
 
void setParentResonanceID (const G4int parentID)
 

Static Public Member Functions

static G4double getTotalBias ()
 General bias vector function.
 
static void setINCLBiasVector (std::vector< G4double > NewVector)
 
static void FillINCLBiasVector (G4double newBias)
 
static G4double getBiasFromVector (std::vector< G4int > VectorBias)
 
static std::vector< G4intMergeVectorBias (Particle const *const p1, Particle const *const p2)
 
static std::vector< G4intMergeVectorBias (std::vector< G4int > p1, Particle const *const p2)
 

Static Public Attributes

static std::vector< G4doubleINCLBiasVector
 Time ordered vector of all bias applied.
 
static G4ThreadLocal G4int nextBiasedCollisionID = 0
 

Protected Member Functions

void swap (Particle &rhs)
 Helper method for the assignment operator.
 

Protected Attributes

G4int theZ
 
G4int theA
 
G4int theS
 
ParticipantType theParticipantType
 
G4INCL::ParticleType theType
 
G4double theEnergy
 
G4doublethePropagationEnergy
 
G4double theFrozenEnergy
 
G4INCL::ThreeVector theMomentum
 
G4INCL::ThreeVectorthePropagationMomentum
 
G4INCL::ThreeVector theFrozenMomentum
 
G4INCL::ThreeVector thePosition
 
G4int nCollisions
 
G4int nDecays
 
G4double thePotentialEnergy
 
long ID
 
G4bool rpCorrelated
 
G4double uncorrelatedMomentum
 
G4double theParticleBias
 
G4int theNKaon
 The number of Kaons inside the nucleus (update during the cascade)
 
G4int theParentResonancePDGCode
 
G4int theParentResonanceID
 

Detailed Description

Definition at line 75 of file G4INCLParticle.hh.

Constructor & Destructor Documentation

◆ Particle() [1/4]

G4INCL::Particle::Particle ( )

Definition at line 59 of file G4INCLParticle.cc.

60 : theZ(0), theA(0), theS(0),
63 theEnergy(0.0),
66 theMomentum(ThreeVector(0.,0.,0.)),
69 thePosition(ThreeVector(0.,0.,0.)),
70 nCollisions(0),
71 nDecays(0),
73 rpCorrelated(false),
76 theNKaon(0),
79 theHelicity(0.0),
80 emissionTime(0.0),
81 outOfWell(false),
82 theMass(0.)
83 {
84 ID = nextID;
85 nextID++;
86 }
G4INCL::ThreeVector * thePropagationMomentum
G4INCL::ThreeVector theMomentum
G4double thePotentialEnergy
ParticipantType theParticipantType
G4INCL::ParticleType theType
G4int theNKaon
The number of Kaons inside the nucleus (update during the cascade)
G4double uncorrelatedMomentum
G4double * thePropagationEnergy
G4INCL::ThreeVector thePosition
G4INCL::ThreeVector theFrozenMomentum

Referenced by G4INCL::Cluster::Cluster().

◆ Particle() [2/4]

G4INCL::Particle::Particle ( ParticleType  t,
G4double  energy,
ThreeVector const &  momentum,
ThreeVector const &  position 
)

Definition at line 88 of file G4INCLParticle.cc.

90 : theEnergy(energy),
93 theMomentum(momentum),
97 nCollisions(0), nDecays(0),
99 rpCorrelated(false),
101 theParticleBias(1.),
102 theNKaon(0),
105 theHelicity(0.0),
106 emissionTime(0.0), outOfWell(false)
107 {
109 ID = nextID;
110 nextID++;
111 if(theEnergy <= 0.0) {
112 INCL_WARN("Particle with energy " << theEnergy << " created." << '\n');
113 }
114 setType(t);
116 }
#define INCL_WARN(x)
void setMass(G4double mass)
G4double getInvariantMass() const
Get the the particle invariant mass.
void setType(ParticleType t)
G4double mag() const

◆ Particle() [3/4]

G4INCL::Particle::Particle ( ParticleType  t,
ThreeVector const &  momentum,
ThreeVector const &  position 
)

Definition at line 118 of file G4INCLParticle.cc.

121 theMomentum(momentum),
125 nCollisions(0), nDecays(0),
127 rpCorrelated(false),
129 theParticleBias(1.),
130 theNKaon(0),
133 theHelicity(0.0),
134 emissionTime(0.0), outOfWell(false)
135 {
137 ID = nextID;
138 nextID++;
139 setType(t);
140 if( isResonance() ) {
141 INCL_ERROR("Cannot create resonance without specifying its momentum four-vector." << '\n');
142 }
143 G4double energy = std::sqrt(theMomentum.mag2() + theMass*theMass);
146 }
#define INCL_ERROR(x)
double G4double
Definition: G4Types.hh:83
G4bool isResonance() const
Is it a resonance?
G4double mag2() const
G4double energy(const ThreeVector &p, const G4double m)

◆ ~Particle()

virtual G4INCL::Particle::~Particle ( )
inlinevirtual

Definition at line 80 of file G4INCLParticle.hh.

80{}

◆ Particle() [4/4]

G4INCL::Particle::Particle ( const Particle rhs)
inline

Copy constructor.

Does not copy the particle ID.

Definition at line 86 of file G4INCLParticle.hh.

86 :
87 theZ(rhs.theZ),
88 theA(rhs.theA),
89 theS(rhs.theS),
90 theParticipantType(rhs.theParticipantType),
91 theType(rhs.theType),
92 theEnergy(rhs.theEnergy),
93 theFrozenEnergy(rhs.theFrozenEnergy),
94 theMomentum(rhs.theMomentum),
95 theFrozenMomentum(rhs.theFrozenMomentum),
96 thePosition(rhs.thePosition),
97 nCollisions(rhs.nCollisions),
98 nDecays(rhs.nDecays),
99 thePotentialEnergy(rhs.thePotentialEnergy),
100 rpCorrelated(rhs.rpCorrelated),
101 uncorrelatedMomentum(rhs.uncorrelatedMomentum),
102 theParticleBias(rhs.theParticleBias),
103 theNKaon(rhs.theNKaon),
104 theParentResonancePDGCode(rhs.theParentResonancePDGCode),
105 theParentResonanceID(rhs.theParentResonanceID),
106 theHelicity(rhs.theHelicity),
107 emissionTime(rhs.emissionTime),
108 outOfWell(rhs.outOfWell),
109 theMass(rhs.theMass)
110 {
111 if(rhs.thePropagationEnergy == &(rhs.theFrozenEnergy))
113 else
115 if(rhs.thePropagationMomentum == &(rhs.theFrozenMomentum))
117 else
119 // ID intentionally not copied
120 ID = nextID++;
121
122 theBiasCollisionVector = rhs.theBiasCollisionVector;
123 }

Member Function Documentation

◆ adjustEnergyFromMomentum()

◆ adjustMomentumFromEnergy()

◆ boost()

void G4INCL::Particle::boost ( const ThreeVector aBoostVector)
inline

Boost the particle using a boost vector.

Example (go to the particle rest frame): particle->boost(particle->boostVector());

Definition at line 426 of file G4INCLParticle.hh.

426 {
427 const G4double beta2 = aBoostVector.mag2();
428 const G4double gamma = 1.0 / std::sqrt(1.0 - beta2);
429 const G4double bp = theMomentum.dot(aBoostVector);
430 const G4double alpha = (gamma*gamma)/(1.0 + gamma);
431
432 theMomentum = theMomentum + aBoostVector * (alpha * bp - gamma * theEnergy);
433 theEnergy = gamma * (theEnergy - bp);
434 }
G4double dot(const ThreeVector &v) const

Referenced by G4INCL::Cluster::boost(), G4INCL::Nucleus::decayOutgoingPionResonances(), G4INCL::Nucleus::decayOutgoingSigmaZero(), G4INCL::PhaseSpaceKopylov::generate(), and G4INCL::InteractionAvatar::preInteraction().

◆ boostVector()

ThreeVector G4INCL::Particle::boostVector ( ) const
inline

Returns a three vector we can give to the boost() -method.

In order to go to the particle rest frame you need to multiply the boost vector by -1.0.

Definition at line 416 of file G4INCLParticle.hh.

416 {
417 return theMomentum / theEnergy;
418 }

Referenced by G4INCL::PhaseSpaceKopylov::generate(), G4INCL::StandardPropagationModel::shootComposite(), and G4INCL::StandardPropagationModel::shootParticle().

◆ dump()

std::string G4INCL::Particle::dump ( ) const
inline

Definition at line 972 of file G4INCLParticle.hh.

972 {
973 std::stringstream ss;
974 ss << "(particle " << ID << " ";
976 ss << '\n'
977 << thePosition.dump()
978 << '\n'
979 << theMomentum.dump()
980 << '\n'
981 << theEnergy << ")" << '\n';
982 return ss.str();
983 };
std::string dump() const
std::string getName(const ParticleType t)
Get the native INCL name of the particle.

Referenced by G4INCL::BinaryCollisionAvatar::dump(), G4INCL::DecayAvatar::dump(), G4INCL::ParticleEntryAvatar::dump(), and G4INCL::SurfaceAvatar::dump().

◆ FillINCLBiasVector()

void G4INCL::Particle::FillINCLBiasVector ( G4double  newBias)
static

Definition at line 208 of file G4INCLParticle.cc.

208 {
209// assert(G4int(Particle::INCLBiasVector.size())==nextBiasedCollisionID);
210 //assert(G4int(Particle::INCLBiasVector.Size())==nextBiasedCollisionID);
211// assert(std::fabs(newBias - 1.) > 1E-6);
212 Particle::INCLBiasVector.push_back(newBias);
213 //Particle::INCLBiasVector.Push_back(newBias);
215 }
static std::vector< G4double > INCLBiasVector
Time ordered vector of all bias applied.
static G4ThreadLocal G4int nextBiasedCollisionID

Referenced by G4INCL::InteractionAvatar::postInteraction().

◆ freezePropagation()

void G4INCL::Particle::freezePropagation ( )
inline

Freeze particle propagation.

Make the particle use theFrozenMomentum and theFrozenEnergy for propagation. The normal state can be restored by calling the thawPropagation() method.

Definition at line 912 of file G4INCLParticle.hh.

◆ getA()

◆ getAngularMomentum()

virtual G4INCL::ThreeVector G4INCL::Particle::getAngularMomentum ( ) const
inlinevirtual

Get the angular momentum w.r.t. the origin

Reimplemented in G4INCL::Cluster.

Definition at line 804 of file G4INCLParticle.hh.

805 {
807 };
ThreeVector vector(const ThreeVector &v) const

Referenced by G4INCL::Cluster::getAngularMomentum(), and G4INCL::StandardPropagationModel::shootParticle().

◆ getBeta()

G4double G4INCL::Particle::getBeta ( ) const
inline

Definition at line 405 of file G4INCLParticle.hh.

405 {
406 const G4double P = theMomentum.mag();
407 return P/theEnergy;
408 }

◆ getBiasCollisionVector()

std::vector< G4int > G4INCL::Particle::getBiasCollisionVector ( ) const
inline

Get the vector list of biased vertices on the particle path.

Definition at line 1042 of file G4INCLParticle.hh.

1042{ return theBiasCollisionVector; }

Referenced by G4INCL::ClusterDecay::decay(), G4INCL::Nucleus::decayMe(), G4INCL::Nucleus::decayOutgoingClusters(), G4INCL::Nucleus::decayOutgoingPionResonances(), G4INCL::Nucleus::decayOutgoingSigmaZero(), and MergeVectorBias().

◆ getBiasFromVector()

G4double G4INCL::Particle::getBiasFromVector ( std::vector< G4int VectorBias)
static

Definition at line 217 of file G4INCLParticle.cc.

217 {
218 if(VectorBias.empty()) return 1.;
219
220 G4double ParticleBias = 1.;
221
222 for(G4int i=0; i<G4int(VectorBias.size()); i++){
223 ParticleBias *= Particle::INCLBiasVector[G4int(VectorBias[i])];
224 }
225
226 return ParticleBias;
227 }
int G4int
Definition: G4Types.hh:85

Referenced by G4INCL::BinaryCollisionAvatar::getChannel(), G4INCL::ParticleList::getParticleListBias(), and setBiasCollisionVector().

◆ getCosRPAngle()

G4double G4INCL::Particle::getCosRPAngle ( ) const
inline

Get the cosine of the angle between position and momentum.

Definition at line 1018 of file G4INCLParticle.hh.

1018 {
1020 if(norm>0.)
1021 return thePosition.dot(*thePropagationMomentum) / std::sqrt(norm);
1022 else
1023 return 1.;
1024 }

◆ getEmissionQValueCorrection() [1/2]

G4double G4INCL::Particle::getEmissionQValueCorrection ( const G4int  AParent,
const G4int  ZParent 
) const
inline

Computes correction on the emission Q-value.

Computes the correction that must be applied to INCL particles in order to obtain the correct Q-value for particle emission from a given nucleus. For absorption, the correction is obviously equal to minus the value returned by this function.

Parameters
AParentthe mass number of the emitting nucleus
ZParentthe charge number of the emitting nucleus
Returns
the correction

Definition at line 606 of file G4INCLParticle.hh.

606 {
607 const G4int SParent = 0;
608 const G4int ADaughter = AParent - theA;
609 const G4int ZDaughter = ZParent - theZ;
610 const G4int SDaughter = 0;
611
612 // Note the minus sign here
613 G4double theQValue;
614 if(isCluster())
615 theQValue = -ParticleTable::getTableQValue(theA, theZ, theS, ADaughter, ZDaughter, SDaughter);
616 else {
617 const G4double massTableParent = ParticleTable::getTableMass(AParent,ZParent,SParent);
618 const G4double massTableDaughter = ParticleTable::getTableMass(ADaughter,ZDaughter,SDaughter);
619 const G4double massTableParticle = getTableMass();
620 theQValue = massTableParent - massTableDaughter - massTableParticle;
621 }
622
623 const G4double massINCLParent = ParticleTable::getINCLMass(AParent,ZParent,SParent);
624 const G4double massINCLDaughter = ParticleTable::getINCLMass(ADaughter,ZDaughter,SDaughter);
625 const G4double massINCLParticle = getINCLMass();
626
627 // The rhs corresponds to the INCL Q-value
628 return theQValue - (massINCLParent-massINCLDaughter-massINCLParticle);
629 }
G4bool isCluster() const
G4double getINCLMass() const
Get the INCL particle mass.
virtual G4double getTableMass() const
Get the tabulated particle mass.
G4ThreadLocal NuclearMassFn getTableMass
Static pointer to the mass function for nuclei.
G4double getTableQValue(const G4int A1, const G4int Z1, const G4int S1, const G4int A2, const G4int Z2, const G4int S2)
Get Q-value (in MeV/c^2)
G4double getINCLMass(const G4int A, const G4int Z, const G4int S)
Get INCL nuclear mass (in MeV/c^2)

Referenced by G4INCL::Nucleus::emitInsideKaon(), G4INCL::Nucleus::emitInsideLambda(), G4INCL::Nucleus::emitInsidePions(), G4INCL::Nucleus::emitInsideStrangeParticles(), G4INCL::ParticleEntryChannel::fillFinalState(), G4INCL::TransmissionChannel::fillFinalState(), and G4INCL::SurfaceAvatar::getTransmissionProbability().

◆ getEmissionQValueCorrection() [2/2]

G4double G4INCL::Particle::getEmissionQValueCorrection ( const G4int  AParent,
const G4int  ZParent,
const G4int  SParent 
) const
inline

Computes correction on the emission Q-value for hypernuclei.

Computes the correction that must be applied to INCL particles in order to obtain the correct Q-value for particle emission from a given nucleus. For absorption, the correction is obviously equal to minus the value returned by this function.

Parameters
AParentthe mass number of the emitting nucleus
ZParentthe charge number of the emitting nucleus
SParentthe strangess number of the emitting nucleus
Returns
the correction

Definition at line 682 of file G4INCLParticle.hh.

682 {
683 const G4int ADaughter = AParent - theA;
684 const G4int ZDaughter = ZParent - theZ;
685 const G4int SDaughter = SParent - theS;
686
687 // Note the minus sign here
688 G4double theQValue;
689 if(isCluster())
690 theQValue = -ParticleTable::getTableQValue(theA, theZ, theS, ADaughter, ZDaughter, SDaughter);
691 else {
692 const G4double massTableParent = ParticleTable::getTableMass(AParent,ZParent,SParent);
693 const G4double massTableDaughter = ParticleTable::getTableMass(ADaughter,ZDaughter,SDaughter);
694 const G4double massTableParticle = getTableMass();
695 theQValue = massTableParent - massTableDaughter - massTableParticle;
696 }
697
698 const G4double massINCLParent = ParticleTable::getINCLMass(AParent,ZParent,SParent);
699 const G4double massINCLDaughter = ParticleTable::getINCLMass(ADaughter,ZDaughter,SDaughter);
700 const G4double massINCLParticle = getINCLMass();
701
702 // The rhs corresponds to the INCL Q-value
703 return theQValue - (massINCLParent-massINCLDaughter-massINCLParticle);
704 }

◆ getEmissionTime()

G4double G4INCL::Particle::getEmissionTime ( )
inline

Definition at line 869 of file G4INCLParticle.hh.

869{ return emissionTime; };

◆ getEnergy()

◆ getFrozenEnergy()

G4double G4INCL::Particle::getFrozenEnergy ( ) const
inline

Get the frozen particle momentum.

Definition at line 901 of file G4INCLParticle.hh.

901{ return theFrozenEnergy; }

◆ getFrozenMomentum()

ThreeVector G4INCL::Particle::getFrozenMomentum ( ) const
inline

Get the frozen particle momentum.

Definition at line 898 of file G4INCLParticle.hh.

898{ return theFrozenMomentum; }

◆ getHelicity()

G4double G4INCL::Particle::getHelicity ( )
inline

Definition at line 830 of file G4INCLParticle.hh.

830{ return theHelicity; };

◆ getID()

◆ getINCLMass()

G4double G4INCL::Particle::getINCLMass ( ) const
inline

Get the INCL particle mass.

Definition at line 458 of file G4INCLParticle.hh.

458 {
459 switch(theType) {
460 case Proton:
461 case Neutron:
462 case PiPlus:
463 case PiMinus:
464 case PiZero:
465 case Lambda:
466 case SigmaPlus:
467 case SigmaZero:
468 case SigmaMinus:
469 case KPlus:
470 case KZero:
471 case KZeroBar:
472 case KShort:
473 case KLong:
474 case KMinus:
475 case Eta:
476 case Omega:
477 case EtaPrime:
478 case Photon:
480 break;
481
482 case DeltaPlusPlus:
483 case DeltaPlus:
484 case DeltaZero:
485 case DeltaMinus:
486 return theMass;
487 break;
488
489 case Composite:
491 break;
492
493 default:
494 INCL_ERROR("Particle::getINCLMass: Unknown particle type." << '\n');
495 return 0.0;
496 break;
497 }
498 }

Referenced by G4INCL::ParticleEntryChannel::fillFinalState(), getEmissionQValueCorrection(), and setINCLMass().

◆ getInvariantMass()

G4double G4INCL::Particle::getInvariantMass ( ) const
inline

Get the the particle invariant mass.

Uses the relativistic invariant

\[ m = \sqrt{E^2 - {\vec p}^2}\]

Definition at line 752 of file G4INCLParticle.hh.

752 {
753 const G4double mass = std::pow(theEnergy, 2) - theMomentum.dot(theMomentum);
754 if(mass < 0.0) {
755 INCL_ERROR("E*E - p*p is negative." << '\n');
756 return 0.0;
757 } else {
758 return std::sqrt(mass);
759 }
760 };

Referenced by G4INCL::Nucleus::finalizeProjectileRemnant(), and Particle().

◆ getKineticEnergy()

◆ getLongitudinalPosition()

ThreeVector G4INCL::Particle::getLongitudinalPosition ( ) const
inline

Longitudinal component of the position w.r.t. the momentum.

Definition at line 877 of file G4INCLParticle.hh.

Referenced by getTransversePosition().

◆ getMass()

G4double G4INCL::Particle::getMass ( ) const
inline

Get the cached particle mass.

Definition at line 455 of file G4INCLParticle.hh.

455{ return theMass; }

Referenced by G4INCL::DeltaDecayChannel::computeDecayTime(), G4INCL::PionResonanceDecayChannel::computeDecayTime(), G4INCL::SigmaZeroDecayChannel::computeDecayTime(), G4INCL::Nucleus::emitInsideKaon(), G4INCL::Nucleus::emitInsideLambda(), G4INCL::Nucleus::emitInsidePions(), G4INCL::Nucleus::emitInsideStrangeParticles(), G4INCL::InteractionAvatar::enforceEnergyConservation(), G4INCL::CrossSectionsMultiPionsAndResonances::etaNToPiN(), G4INCL::DeltaDecayChannel::fillFinalState(), G4INCL::EtaNElasticChannel::fillFinalState(), G4INCL::EtaNToPiNChannel::fillFinalState(), G4INCL::NSToNLChannel::fillFinalState(), G4INCL::NSToNSChannel::fillFinalState(), G4INCL::OmegaNElasticChannel::fillFinalState(), G4INCL::OmegaNToPiNChannel::fillFinalState(), G4INCL::PionResonanceDecayChannel::fillFinalState(), G4INCL::RecombinationChannel::fillFinalState(), G4INCL::SigmaZeroDecayChannel::fillFinalState(), G4INCL::TransmissionChannel::fillFinalState(), G4INCL::Cluster::freezeInternalMotion(), G4INCL::PhaseSpaceKopylov::generate(), G4INCL::NuclearPotential::INuclearPotential::getFermiMomentum(), G4INCL::KinematicsUtils::getLocalEnergy(), G4INCL::SurfaceAvatar::getTransmissionProbability(), G4INCL::CrossSections::interactionDistanceKbarN(), G4INCL::CrossSections::interactionDistanceKN(), G4INCL::CrossSections::interactionDistanceNN(), G4INCL::CrossSections::interactionDistancePiN(), G4INCL::CrossSections::interactionDistanceYN(), G4INCL::Cluster::internalBoostToCM(), G4INCL::KinematicsUtils::momentumInCM(), G4INCL::KinematicsUtils::momentumInLab(), G4INCL::CrossSectionsINCL46::NDeltaToNN(), G4INCL::CrossSectionsMultiPions::NDeltaToNN(), G4INCL::CrossSectionsStrangeness::NNToNLK2pi(), G4INCL::CrossSectionsStrangeness::NNToNLKpi(), G4INCL::CrossSectionsStrangeness::NNToNSK2pi(), G4INCL::CrossSectionsStrangeness::NNToNSKpi(), G4INCL::CrossSectionsMultiPionsAndResonances::omegaNToPiN(), G4INCL::CrossSectionsMultiPionsAndResonances::piMinuspToEtaN(), G4INCL::CrossSectionsMultiPionsAndResonances::piMinuspToOmegaN(), G4INCL::Cluster::print(), G4INCL::ProjectileRemnant::ProjectileRemnant(), and G4INCL::StandardPropagationModel::shootParticle().

◆ getMomentum()

const G4INCL::ThreeVector & G4INCL::Particle::getMomentum ( ) const
inline

Get the momentum vector.

Definition at line 798 of file G4INCLParticle.hh.

799 {
800 return theMomentum;
801 };

Referenced by G4INCL::Cluster::addParticle(), G4INCL::ClusteringModelIntercomparison::clusterCanEscape(), G4INCL::SigmaZeroDecayChannel::computeDecayTime(), G4INCL::Nucleus::computeRecoilKinematics(), G4INCL::Nucleus::decayOutgoingPionResonances(), G4INCL::Nucleus::decayOutgoingSigmaZero(), G4INCL::Nucleus::fillEventInfo(), G4INCL::DeltaProductionChannel::fillFinalState(), G4INCL::ElasticChannel::fillFinalState(), G4INCL::NDeltaEtaProductionChannel::fillFinalState(), G4INCL::NDeltaOmegaProductionChannel::fillFinalState(), G4INCL::NNToNSKpiChannel::fillFinalState(), G4INCL::NpiToLK2piChannel::fillFinalState(), G4INCL::NpiToLKpiChannel::fillFinalState(), G4INCL::NpiToNKKbChannel::fillFinalState(), G4INCL::NpiToSK2piChannel::fillFinalState(), G4INCL::NpiToSKpiChannel::fillFinalState(), G4INCL::ParticleEntryChannel::fillFinalState(), G4INCL::ReflectionChannel::fillFinalState(), G4INCL::StrangeAbsorbtionChannel::fillFinalState(), G4INCL::PauliStandard::getBlockingProbability(), G4INCL::ClusteringModelIntercomparison::getCluster(), G4INCL::Nucleus::getConservationBalance(), G4INCL::KinematicsUtils::getLocalEnergy(), G4INCL::SurfaceAvatar::getTransmissionProbability(), G4INCL::NKbElasticChannel::KaonMomentum(), G4INCL::NKbToLpiChannel::KaonMomentum(), G4INCL::NKbToNKbChannel::KaonMomentum(), G4INCL::NKbToSpiChannel::KaonMomentum(), G4INCL::KinematicsUtils::makeBoostVector(), G4INCL::KinematicsUtils::momentumInCM(), G4INCL::BinaryCollisionAvatar::postInteraction(), G4INCL::InteractionAvatar::preInteraction(), G4INCL::ProjectileRemnant::removeParticle(), G4INCL::ParticleSampler::sampleParticlesIntoList(), G4INCL::StandardPropagationModel::shootComposite(), and G4INCL::StandardPropagationModel::shootParticle().

◆ getNumberOfCollisions()

G4int G4INCL::Particle::getNumberOfCollisions ( ) const
inline

Return the number of collisions undergone by the particle.

Definition at line 838 of file G4INCLParticle.hh.

838{ return nCollisions; }

Referenced by G4INCL::Cluster::addParticle().

◆ getNumberOfDecays()

G4int G4INCL::Particle::getNumberOfDecays ( ) const
inline

Return the number of decays undergone by the particle.

Definition at line 847 of file G4INCLParticle.hh.

847{ return nDecays; }

◆ getNumberOfKaon()

G4int G4INCL::Particle::getNumberOfKaon ( ) const
inline

Number of Kaon inside de nucleus.

Put in the Particle class in order to calculate the "correct" mass of composit particle.

Definition at line 1057 of file G4INCLParticle.hh.

1057{ return theNKaon; };

Referenced by G4INCL::ParticleEntryChannel::fillFinalState(), G4INCL::SurfaceAvatar::getChannel(), and G4INCL::BinaryCollisionAvatar::postInteraction().

◆ getParentResonanceID()

G4int G4INCL::Particle::getParentResonanceID ( ) const
inline

Definition at line 1062 of file G4INCLParticle.hh.

1062{ return theParentResonanceID; };

◆ getParentResonancePDGCode()

G4int G4INCL::Particle::getParentResonancePDGCode ( ) const
inline

Definition at line 1060 of file G4INCLParticle.hh.

1060{ return theParentResonancePDGCode; };

◆ getParticipantType()

ParticipantType G4INCL::Particle::getParticipantType ( ) const
inline

Definition at line 314 of file G4INCLParticle.hh.

314 {
315 return theParticipantType;
316 }

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

◆ getParticleBias()

G4double G4INCL::Particle::getParticleBias ( ) const
inline

Get the particle bias.

Definition at line 1036 of file G4INCLParticle.hh.

1036{ return theParticleBias; };

◆ getParticles()

ParticleList const * G4INCL::Particle::getParticles ( ) const
inline

Return a NULL pointer

Definition at line 990 of file G4INCLParticle.hh.

990 {
991 INCL_WARN("Particle::getParticles() method was called on a Particle object" << '\n');
992 return 0;
993 }

◆ getPosition()

const G4INCL::ThreeVector & G4INCL::Particle::getPosition ( ) const
inline

Set the position vector.

Definition at line 820 of file G4INCLParticle.hh.

821 {
822 return thePosition;
823 };

Referenced by G4INCL::Cluster::addParticle(), G4INCL::InteractionAvatar::bringParticleInside(), G4INCL::CoulombNone::bringToSurface(), G4INCL::ClusteringModelIntercomparison::clusterCanEscape(), G4INCL::DeltaDecayChannel::fillFinalState(), G4INCL::EtaNToPiPiNChannel::fillFinalState(), G4INCL::NDeltaEtaProductionChannel::fillFinalState(), G4INCL::NDeltaOmegaProductionChannel::fillFinalState(), G4INCL::NDeltaToDeltaSKChannel::fillFinalState(), G4INCL::NDeltaToNLKChannel::fillFinalState(), G4INCL::NDeltaToNNKKbChannel::fillFinalState(), G4INCL::NDeltaToNSKChannel::fillFinalState(), G4INCL::NKbToNKb2piChannel::fillFinalState(), G4INCL::NKToNK2piChannel::fillFinalState(), G4INCL::NNEtaToMultiPionsChannel::fillFinalState(), G4INCL::NNOmegaToMultiPionsChannel::fillFinalState(), G4INCL::NNToMissingStrangenessChannel::fillFinalState(), G4INCL::NNToMultiPionsChannel::fillFinalState(), G4INCL::NNToNLK2piChannel::fillFinalState(), G4INCL::NNToNLKChannel::fillFinalState(), G4INCL::NNToNLKpiChannel::fillFinalState(), G4INCL::NNToNNEtaChannel::fillFinalState(), G4INCL::NNToNNKKbChannel::fillFinalState(), G4INCL::NNToNNOmegaChannel::fillFinalState(), G4INCL::NNToNSK2piChannel::fillFinalState(), G4INCL::NNToNSKChannel::fillFinalState(), G4INCL::NNToNSKpiChannel::fillFinalState(), G4INCL::NpiToMissingStrangenessChannel::fillFinalState(), G4INCL::OmegaNToPiPiNChannel::fillFinalState(), G4INCL::PionResonanceDecayChannel::fillFinalState(), G4INCL::ReflectionChannel::fillFinalState(), G4INCL::SigmaZeroDecayChannel::fillFinalState(), G4INCL::StandardPropagationModel::generateBinaryCollisionAvatar(), G4INCL::PauliStandard::getBlockingProbability(), G4INCL::BinaryCollisionAvatar::getChannel(), G4INCL::ClusteringModelIntercomparison::getCluster(), G4INCL::KinematicsUtils::getLocalEnergy(), G4INCL::StandardPropagationModel::getReflectionTime(), G4INCL::StandardPropagationModel::getTime(), G4INCL::BinaryCollisionAvatar::postInteraction(), and G4INCL::ParticleSampler::sampleParticlesIntoList().

◆ getPotentialEnergy()

◆ getPropagationVelocity()

ThreeVector G4INCL::Particle::getPropagationVelocity ( ) const
inline

Get the propagation velocity of the particle.

Definition at line 904 of file G4INCLParticle.hh.

904{ return (*thePropagationMomentum)/(*thePropagationEnergy); }

Referenced by G4INCL::CoulombNone::bringToSurface(), G4INCL::StandardPropagationModel::getReflectionTime(), and G4INCL::StandardPropagationModel::getTime().

◆ getRealMass()

G4double G4INCL::Particle::getRealMass ( ) const
inline

Get the real particle mass.

Definition at line 544 of file G4INCLParticle.hh.

544 {
545 switch(theType) {
546 case Proton:
547 case Neutron:
548 case PiPlus:
549 case PiMinus:
550 case PiZero:
551 case Lambda:
552 case SigmaPlus:
553 case SigmaZero:
554 case SigmaMinus:
555 case KPlus:
556 case KZero:
557 case KZeroBar:
558 case KShort:
559 case KLong:
560 case KMinus:
561 case Eta:
562 case Omega:
563 case EtaPrime:
564 case Photon:
566 break;
567
568 case DeltaPlusPlus:
569 case DeltaPlus:
570 case DeltaZero:
571 case DeltaMinus:
572 return theMass;
573 break;
574
575 case Composite:
577 break;
578
579 default:
580 INCL_ERROR("Particle::getRealMass: Unknown particle type." << '\n');
581 return 0.0;
582 break;
583 }
584 }
G4double getRealMass(const G4INCL::ParticleType t)
Get particle mass (in MeV/c^2)

Referenced by G4INCL::Cluster::getTableMass(), and setRealMass().

◆ getReflectionMomentum()

G4double G4INCL::Particle::getReflectionMomentum ( ) const
inline

Return the reflection momentum.

The reflection momentum is used by calls to getSurfaceRadius to compute the radius of the sphere where the nucleon moves. It is necessary to introduce fuzzy r-p correlations.

Definition at line 1001 of file G4INCLParticle.hh.

1001 {
1002 if(rpCorrelated)
1003 return theMomentum.mag();
1004 else
1005 return uncorrelatedMomentum;
1006 }

Referenced by G4INCL::KinematicsUtils::getLocalEnergy(), and G4INCL::Nucleus::getSurfaceRadius().

◆ getS()

◆ getSpecies()

virtual G4INCL::ParticleSpecies G4INCL::Particle::getSpecies ( ) const
inlinevirtual

Get the particle species.

Reimplemented in G4INCL::Cluster.

Definition at line 187 of file G4INCLParticle.hh.

187 {
188 return ParticleSpecies(theType);
189 };

Referenced by G4INCL::CoulombDistortion::maxImpactParameter(), and G4INCL::StandardPropagationModel::shootParticle().

◆ getTableMass()

virtual G4double G4INCL::Particle::getTableMass ( ) const
inlinevirtual

Get the tabulated particle mass.

Reimplemented in G4INCL::Cluster.

Definition at line 501 of file G4INCLParticle.hh.

501 {
502 switch(theType) {
503 case Proton:
504 case Neutron:
505 case PiPlus:
506 case PiMinus:
507 case PiZero:
508 case Lambda:
509 case SigmaPlus:
510 case SigmaZero:
511 case SigmaMinus:
512 case KPlus:
513 case KZero:
514 case KZeroBar:
515 case KShort:
516 case KLong:
517 case KMinus:
518 case Eta:
519 case Omega:
520 case EtaPrime:
521 case Photon:
523 break;
524
525 case DeltaPlusPlus:
526 case DeltaPlus:
527 case DeltaZero:
528 case DeltaMinus:
529 return theMass;
530 break;
531
532 case Composite:
534 break;
535
536 default:
537 INCL_ERROR("Particle::getTableMass: Unknown particle type." << '\n');
538 return 0.0;
539 break;
540 }
541 }
G4ThreadLocal ParticleMassFn getTableParticleMass
Static pointer to the mass function for particles.

Referenced by G4INCL::Nucleus::decayOutgoingPionResonances(), G4INCL::Nucleus::decayOutgoingSigmaZero(), G4INCL::ParticleEntryChannel::fillFinalState(), G4INCL::TransmissionChannel::fillFinalState(), getEmissionQValueCorrection(), getTransferQValueCorrection(), and setTableMass().

◆ getTotalBias()

G4double G4INCL::Particle::getTotalBias ( )
static

General bias vector function.

Definition at line 306 of file G4INCLParticle.cc.

306 {
307 G4double TotalBias = 1.;
308 for(G4int i=0; i<G4int(INCLBiasVector.size());i++) TotalBias *= Particle::INCLBiasVector[i];
309 return TotalBias;
310 }

Referenced by G4INCL::Nucleus::emitInsideKaon(), G4INCL::Nucleus::emitInsideLambda(), G4INCL::Nucleus::emitInsidePions(), G4INCL::Nucleus::emitInsideStrangeParticles(), and G4INCL::EventInfo::remnantToParticle().

◆ getTransferQValueCorrection() [1/2]

G4double G4INCL::Particle::getTransferQValueCorrection ( const G4int  AFrom,
const G4int  ZFrom,
const G4int  ATo,
const G4int  ZTo 
) const
inline

Computes correction on the transfer Q-value.

Computes the correction that must be applied to INCL particles in order to obtain the correct Q-value for particle transfer from a given nucleus to another.

Assumes that the receving nucleus is INCL's target nucleus, with the INCL separation energy.

Parameters
AFromthe mass number of the donating nucleus
ZFromthe charge number of the donating nucleus
ATothe mass number of the receiving nucleus
ZTothe charge number of the receiving nucleus
Returns
the correction

Definition at line 646 of file G4INCLParticle.hh.

646 {
647 const G4int SFrom = 0;
648 const G4int STo = 0;
649 const G4int AFromDaughter = AFrom - theA;
650 const G4int ZFromDaughter = ZFrom - theZ;
651 const G4int SFromDaughter = 0;
652 const G4int AToDaughter = ATo + theA;
653 const G4int ZToDaughter = ZTo + theZ;
654 const G4int SToDaughter = 0;
655 const G4double theQValue = ParticleTable::getTableQValue(AToDaughter,ZToDaughter,SToDaughter,AFromDaughter,ZFromDaughter,SFromDaughter,AFrom,ZFrom,SFrom);
656
657 const G4double massINCLTo = ParticleTable::getINCLMass(ATo,ZTo,STo);
658 const G4double massINCLToDaughter = ParticleTable::getINCLMass(AToDaughter,ZToDaughter,SToDaughter);
659 /* Note that here we have to use the table mass in the INCL Q-value. We
660 * cannot use theMass, because at this stage the particle is probably
661 * still off-shell; and we cannot use getINCLMass(), because it leads to
662 * violations of global energy conservation.
663 */
664 const G4double massINCLParticle = getTableMass();
665
666 // The rhs corresponds to the INCL Q-value for particle absorption
667 return theQValue - (massINCLToDaughter-massINCLTo-massINCLParticle);
668 }

◆ getTransferQValueCorrection() [2/2]

G4double G4INCL::Particle::getTransferQValueCorrection ( const G4int  AFrom,
const G4int  ZFrom,
const G4int  SFrom,
const G4int  ATo,
const G4int  ZTo,
const G4int  STo 
) const
inline

Computes correction on the transfer Q-value for hypernuclei.

Computes the correction that must be applied to INCL particles in order to obtain the correct Q-value for particle transfer from a given nucleus to another.

Assumes that the receving nucleus is INCL's target nucleus, with the INCL separation energy.

Parameters
AFromthe mass number of the donating nucleus
ZFromthe charge number of the donating nucleus
SFromthe strangess number of the donating nucleus
ATothe mass number of the receiving nucleus
ZTothe charge number of the receiving nucleus
STothe strangess number of the receiving nucleus
Returns
the correction

Definition at line 723 of file G4INCLParticle.hh.

723 {
724 const G4int AFromDaughter = AFrom - theA;
725 const G4int ZFromDaughter = ZFrom - theZ;
726 const G4int SFromDaughter = SFrom - theS;
727 const G4int AToDaughter = ATo + theA;
728 const G4int ZToDaughter = ZTo + theZ;
729 const G4int SToDaughter = STo + theS;
730 const G4double theQValue = ParticleTable::getTableQValue(AToDaughter,ZToDaughter,SFromDaughter,AFromDaughter,ZFromDaughter,SToDaughter,AFrom,ZFrom,SFrom);
731
732 const G4double massINCLTo = ParticleTable::getINCLMass(ATo,ZTo,STo);
733 const G4double massINCLToDaughter = ParticleTable::getINCLMass(AToDaughter,ZToDaughter,SToDaughter);
734 /* Note that here we have to use the table mass in the INCL Q-value. We
735 * cannot use theMass, because at this stage the particle is probably
736 * still off-shell; and we cannot use getINCLMass(), because it leads to
737 * violations of global energy conservation.
738 */
739 const G4double massINCLParticle = getTableMass();
740
741 // The rhs corresponds to the INCL Q-value for particle absorption
742 return theQValue - (massINCLToDaughter-massINCLTo-massINCLParticle);
743 }

◆ getTransversePosition()

ThreeVector G4INCL::Particle::getTransversePosition ( ) const
inline

Transverse component of the position w.r.t. the momentum.

Definition at line 872 of file G4INCLParticle.hh.

872 {
874 }
ThreeVector getLongitudinalPosition() const
Longitudinal component of the position w.r.t. the momentum.

Referenced by G4INCL::StandardPropagationModel::shootComposite(), and G4INCL::StandardPropagationModel::shootParticle().

◆ getType()

G4INCL::ParticleType G4INCL::Particle::getType ( ) const
inline

Get the particle type.

See also
G4INCL::ParticleType

Definition at line 182 of file G4INCLParticle.hh.

182 {
183 return theType;
184 };

Referenced by G4INCL::PionResonanceDecayChannel::computeDecayTime(), G4INCL::NuclearPotential::INuclearPotential::computeKaonPotentialEnergy(), G4INCL::NuclearPotential::INuclearPotential::computePionPotentialEnergy(), G4INCL::NuclearPotential::INuclearPotential::computePionResonancePotentialEnergy(), G4INCL::NuclearPotential::NuclearPotentialConstant::computePotentialEnergy(), G4INCL::NuclearPotential::NuclearPotentialIsospin::computePotentialEnergy(), G4INCL::CrossSectionsINCL46::elasticNNLegacy(), G4INCL::DeltaDecayChannel::fillFinalState(), G4INCL::DeltaProductionChannel::fillFinalState(), G4INCL::ElasticChannel::fillFinalState(), G4INCL::NDeltaEtaProductionChannel::fillFinalState(), G4INCL::NDeltaOmegaProductionChannel::fillFinalState(), G4INCL::NDeltaToDeltaLKChannel::fillFinalState(), G4INCL::NDeltaToDeltaSKChannel::fillFinalState(), G4INCL::NDeltaToNLKChannel::fillFinalState(), G4INCL::NDeltaToNNKKbChannel::fillFinalState(), G4INCL::NDeltaToNSKChannel::fillFinalState(), G4INCL::NKbToL2piChannel::fillFinalState(), G4INCL::NKbToLpiChannel::fillFinalState(), G4INCL::NKbToNKb2piChannel::fillFinalState(), G4INCL::NKbToNKbChannel::fillFinalState(), G4INCL::NKbToNKbpiChannel::fillFinalState(), G4INCL::NKbToS2piChannel::fillFinalState(), G4INCL::NKbToSpiChannel::fillFinalState(), G4INCL::NKToNK2piChannel::fillFinalState(), G4INCL::NKToNKChannel::fillFinalState(), G4INCL::NKToNKpiChannel::fillFinalState(), G4INCL::NNEtaToMultiPionsChannel::fillFinalState(), G4INCL::NNOmegaToMultiPionsChannel::fillFinalState(), G4INCL::NNToMissingStrangenessChannel::fillFinalState(), G4INCL::NNToMultiPionsChannel::fillFinalState(), G4INCL::NNToNLK2piChannel::fillFinalState(), G4INCL::NNToNLKChannel::fillFinalState(), G4INCL::NNToNLKpiChannel::fillFinalState(), G4INCL::NNToNNEtaChannel::fillFinalState(), G4INCL::NNToNNKKbChannel::fillFinalState(), G4INCL::NNToNNOmegaChannel::fillFinalState(), G4INCL::NNToNSK2piChannel::fillFinalState(), G4INCL::NNToNSKChannel::fillFinalState(), G4INCL::NNToNSKpiChannel::fillFinalState(), G4INCL::NpiToMissingStrangenessChannel::fillFinalState(), G4INCL::NSToNLChannel::fillFinalState(), G4INCL::NSToNSChannel::fillFinalState(), G4INCL::PionResonanceDecayChannel::fillFinalState(), G4INCL::RecombinationChannel::fillFinalState(), G4INCL::PauliStandard::getBlockingProbability(), G4INCL::DecayAvatar::getChannel(), G4INCL::NuclearPotential::INuclearPotential::getFermiEnergy(), G4INCL::NuclearPotential::INuclearPotential::getFermiMomentum(), G4INCL::KinematicsUtils::getLocalEnergy(), G4INCL::NuclearPotential::INuclearPotential::getSeparationEnergy(), G4INCL::Nucleus::getSurfaceRadius(), G4INCL::NuclearDensity::getTransmissionRadius(), G4INCL::Nucleus::insertParticle(), G4INCL::ParticleConfig::isPair(), G4INCL::CrossSectionsStrangeness::NDeltaToDeltaLK(), G4INCL::CrossSectionsStrangeness::NDeltaToDeltaSK(), G4INCL::CrossSectionsStrangeness::NDeltaToNLK(), G4INCL::CrossSectionsINCL46::NDeltaToNN(), G4INCL::CrossSectionsMultiPions::NDeltaToNN(), G4INCL::CrossSectionsStrangeness::NDeltaToNNKKb(), G4INCL::CrossSectionsStrangeness::NDeltaToNSK(), G4INCL::CrossSectionsStrangeness::NKbToL2pi(), G4INCL::CrossSectionsStrangeness::NKbToLpi(), G4INCL::CrossSectionsStrangeness::NKbToNKb(), G4INCL::CrossSectionsStrangeness::NKbToNKb2pi(), G4INCL::CrossSectionsStrangeness::NKbToNKbpi(), G4INCL::CrossSectionsStrangeness::NKbToS2pi(), G4INCL::CrossSectionsStrangeness::NKbToSpi(), G4INCL::CrossSectionsStrangeness::NKToNK(), G4INCL::CrossSectionsStrangeness::NKToNK2pi(), G4INCL::CrossSectionsStrangeness::NKToNKpi(), G4INCL::CrossSectionsMultiPions::NNElastic(), G4INCL::CrossSectionsMultiPions::NNOnePi(), G4INCL::CrossSectionsMultiPions::NNOnePiOrDelta(), G4INCL::CrossSectionsMultiPions::NNThreePi(), G4INCL::CrossSectionsStrangeness::NNToMissingStrangeness(), G4INCL::CrossSectionsINCL46::NNToNDelta(), G4INCL::CrossSectionsMultiPions::NNToNDelta(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNDeltaEta(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNDeltaOmega(), G4INCL::CrossSectionsStrangeness::NNToNLK(), G4INCL::CrossSectionsStrangeness::NNToNLK2pi(), G4INCL::CrossSectionsStrangeness::NNToNLKpi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEta(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaExclu(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaFourPi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaOnePi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaOnePiOrDelta(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaThreePi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaTwoPi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaxPi(), G4INCL::CrossSectionsStrangeness::NNToNNKKb(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmega(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaExclu(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaFourPi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaOnePi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaOnePiOrDelta(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaThreePi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaTwoPi(), G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaxPi(), G4INCL::CrossSectionsStrangeness::NNToNSK(), G4INCL::CrossSectionsStrangeness::NNToNSK2pi(), G4INCL::CrossSectionsStrangeness::NNToNSKpi(), G4INCL::CrossSectionsMultiPions::NNTot(), G4INCL::CrossSectionsMultiPions::NNTwoPi(), G4INCL::CrossSectionsStrangeness::NpiToLK(), G4INCL::CrossSectionsStrangeness::NpiToLK2pi(), G4INCL::CrossSectionsStrangeness::NpiToLKpi(), G4INCL::CrossSectionsStrangeness::NpiToNKKb(), G4INCL::CrossSectionsStrangeness::NpiToSK(), G4INCL::CrossSectionsStrangeness::NpiToSK2pi(), G4INCL::CrossSectionsStrangeness::NpiToSKpi(), G4INCL::CrossSectionsStrangeness::NSToNL(), G4INCL::CrossSectionsStrangeness::NSToNS(), G4INCL::CrossSectionsStrangeness::p_pimToSzKz(), G4INCL::CrossSectionsINCL46::piNToDelta(), G4INCL::CrossSectionsMultiPions::piNToDelta(), G4INCL::CrossSectionsMultiPionsAndResonances::piNToEtaN(), G4INCL::CrossSectionsMultiPionsAndResonances::piNToOmegaN(), and G4INCL::CrossSectionsMultiPions::piNTot().

◆ getZ()

◆ incrementNumberOfCollisions()

void G4INCL::Particle::incrementNumberOfCollisions ( )
inline

Increment the number of collisions undergone by the particle.

Definition at line 844 of file G4INCLParticle.hh.

844{ nCollisions++; }

◆ incrementNumberOfDecays()

void G4INCL::Particle::incrementNumberOfDecays ( )
inline

Increment the number of decays undergone by the particle.

Definition at line 853 of file G4INCLParticle.hh.

853{ nDecays++; }

◆ isAntiKaon()

◆ isBaryon()

G4bool G4INCL::Particle::isBaryon ( ) const
inline

Is this a Baryon?

Definition at line 391 of file G4INCLParticle.hh.

391{ return (isNucleon() || isResonance() || isHyperon()); }
G4bool isHyperon() const
Is this an Hyperon?
G4bool isNucleon() const

Referenced by G4INCL::CDPP::processOneParticle().

◆ isCluster()

G4bool G4INCL::Particle::isCluster ( ) const
inline

Definition at line 887 of file G4INCLParticle.hh.

887 {
888 return (theType == Composite);
889 }

Referenced by getEmissionQValueCorrection(), and G4INCL::SurfaceAvatar::postInteraction().

◆ isDelta()

◆ isEta()

◆ isEtaPrime()

G4bool G4INCL::Particle::isEtaPrime ( ) const
inline

Is this an etaprime?

Definition at line 356 of file G4INCLParticle.hh.

356{ return (theType == EtaPrime); }

Referenced by isMeson(), G4INCL::CrossSectionsMultiPionsAndResonances::total(), and G4INCL::CrossSectionsStrangeness::total().

◆ isHyperon()

G4bool G4INCL::Particle::isHyperon ( ) const
inline

Is this an Hyperon?

Definition at line 385 of file G4INCLParticle.hh.

385{ return (isLambda() || isSigma()); }
G4bool isLambda() const
Is this a Lambda?
G4bool isSigma() const
Is this a Sigma?

Referenced by G4INCL::CrossSectionsStrangeness::elastic(), isBaryon(), isStrange(), and G4INCL::CrossSectionsStrangeness::NYelastic().

◆ isKaon()

◆ isLambda()

◆ isMeson()

G4bool G4INCL::Particle::isMeson ( ) const
inline

Is this a Meson?

Definition at line 388 of file G4INCLParticle.hh.

388{ return (isPion() || isKaon() || isAntiKaon() || isEta() || isEtaPrime() || isOmega()); }
G4bool isEtaPrime() const
Is this an etaprime?
G4bool isOmega() const
Is this an omega?
G4bool isEta() const
Is this an eta?
G4bool isPion() const
Is this a pion?
G4bool isAntiKaon() const
Is this an antiKaon?
G4bool isKaon() const
Is this a Kaon?

Referenced by G4INCL::StandardPropagationModel::generateBinaryCollisionAvatar(), G4INCL::InteractionAvatar::preInteractionLocalEnergy(), G4INCL::CDPP::processOneParticle(), and G4INCL::StandardPropagationModel::shootParticle().

◆ isNucleon()

G4bool G4INCL::Particle::isNucleon ( ) const
inline

Is this a nucleon?

Definition at line 307 of file G4INCLParticle.hh.

307 {
309 return true;
310 else
311 return false;
312 };

Referenced by G4INCL::NuclearPotential::NuclearPotentialEnergyIsospin::computePotentialEnergy(), G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth::computePotentialEnergy(), G4INCL::CrossSectionsINCL46::elastic(), G4INCL::CrossSectionsMultiPions::elastic(), G4INCL::CrossSectionsMultiPionsAndResonances::elastic(), G4INCL::CrossSectionsStrangeness::elastic(), G4INCL::CrossSectionsTruncatedMultiPions::elastic(), G4INCL::CrossSectionsINCL46::elasticNNLegacy(), G4INCL::EtaNElasticChannel::fillFinalState(), G4INCL::EtaNToPiNChannel::fillFinalState(), G4INCL::EtaNToPiPiNChannel::fillFinalState(), G4INCL::NDeltaToNNKKbChannel::fillFinalState(), G4INCL::NKbElasticChannel::fillFinalState(), G4INCL::NKbToL2piChannel::fillFinalState(), G4INCL::NKbToLpiChannel::fillFinalState(), G4INCL::NKbToNKb2piChannel::fillFinalState(), G4INCL::NKbToNKbChannel::fillFinalState(), G4INCL::NKbToNKbpiChannel::fillFinalState(), G4INCL::NKbToS2piChannel::fillFinalState(), G4INCL::NKbToSpiChannel::fillFinalState(), G4INCL::NKElasticChannel::fillFinalState(), G4INCL::NKToNK2piChannel::fillFinalState(), G4INCL::NKToNKChannel::fillFinalState(), G4INCL::NKToNKpiChannel::fillFinalState(), G4INCL::NLToNSChannel::fillFinalState(), G4INCL::NpiToLK2piChannel::fillFinalState(), G4INCL::NpiToLKChannel::fillFinalState(), G4INCL::NpiToLKpiChannel::fillFinalState(), G4INCL::NpiToNKKbChannel::fillFinalState(), G4INCL::NpiToSK2piChannel::fillFinalState(), G4INCL::NpiToSKChannel::fillFinalState(), G4INCL::NpiToSKpiChannel::fillFinalState(), G4INCL::NSToNLChannel::fillFinalState(), G4INCL::NSToNSChannel::fillFinalState(), G4INCL::NYElasticChannel::fillFinalState(), G4INCL::OmegaNElasticChannel::fillFinalState(), G4INCL::OmegaNToPiNChannel::fillFinalState(), G4INCL::OmegaNToPiPiNChannel::fillFinalState(), G4INCL::PiNElasticChannel::fillFinalState(), G4INCL::PiNToDeltaChannel::fillFinalState(), G4INCL::PiNToEtaChannel::fillFinalState(), G4INCL::PiNToMultiPionsChannel::fillFinalState(), G4INCL::PiNToOmegaChannel::fillFinalState(), G4INCL::StrangeAbsorbtionChannel::fillFinalState(), G4INCL::StandardPropagationModel::generateBinaryCollisionAvatar(), G4INCL::BinaryCollisionAvatar::getChannel(), G4INCL::DecayAvatar::getChannel(), G4INCL::Nucleus::getSurfaceRadius(), G4INCL::Nucleus::insertParticle(), isBaryon(), isNucleonorLambda(), G4INCL::CrossSectionsMultiPions::NNElastic(), G4INCL::CrossSectionsMultiPions::NNTot(), G4INCL::CrossSectionsMultiPions::piMinuspIne(), G4INCL::CrossSectionsMultiPions::piMinuspOnePi(), G4INCL::CrossSectionsMultiPions::piMinuspTwoPi(), G4INCL::CrossSectionsMultiPions::piNIne(), G4INCL::CrossSectionsMultiPions::piNOnePi(), G4INCL::CrossSectionsINCL46::piNToDelta(), G4INCL::CrossSectionsMultiPions::piNToxPiN(), G4INCL::CrossSectionsMultiPions::piNTwoPi(), G4INCL::CrossSectionsMultiPions::piPluspIne(), G4INCL::CrossSectionsMultiPions::piPluspOnePi(), G4INCL::CrossSectionsMultiPions::piPluspTwoPi(), G4INCL::CrossSectionsINCL46::total(), G4INCL::CrossSectionsMultiPions::total(), G4INCL::CrossSectionsMultiPionsAndResonances::total(), and G4INCL::CrossSectionsStrangeness::total().

◆ isNucleonorLambda()

G4bool G4INCL::Particle::isNucleonorLambda ( ) const
inline

Is this a Nucleon or a Lambda?

Definition at line 382 of file G4INCLParticle.hh.

382{ return (isNucleon() || isLambda()); }

Referenced by G4INCL::ParticleEntryChannel::fillFinalState(), and G4INCL::SurfaceAvatar::getChannel().

◆ isOmega()

◆ isOutOfWell()

G4bool G4INCL::Particle::isOutOfWell ( ) const
inline

◆ isParticipant()

G4bool G4INCL::Particle::isParticipant ( ) const
inline

◆ isPhoton()

G4bool G4INCL::Particle::isPhoton ( ) const
inline

Is this a photon?

Definition at line 359 of file G4INCLParticle.hh.

359{ return (theType == Photon); }

◆ isPion()

◆ isProjectileSpectator()

G4bool G4INCL::Particle::isProjectileSpectator ( ) const
inline

Definition at line 330 of file G4INCLParticle.hh.

330 {
332 }

Referenced by G4INCL::SurfaceAvatar::getChannel().

◆ isResonance()

◆ isSigma()

◆ isStrange()

G4bool G4INCL::Particle::isStrange ( ) const
inline

Is this an Strange?

Definition at line 394 of file G4INCLParticle.hh.

394{ return (isKaon() || isAntiKaon() || isHyperon()); }

◆ isTargetSpectator()

◆ lorentzContract()

void G4INCL::Particle::lorentzContract ( const ThreeVector aBoostVector,
const ThreeVector refPos 
)
inline

Lorentz-contract the particle position around some center.

Apply Lorentz contraction to the position component along the direction of the boost vector.

Parameters
aBoostVectorthe boost vector (velocity) [c]
refPosthe reference position

Definition at line 444 of file G4INCLParticle.hh.

444 {
445 const G4double beta2 = aBoostVector.mag2();
446 const G4double gamma = 1.0 / std::sqrt(1.0 - beta2);
447 const ThreeVector theRelativePosition = thePosition - refPos;
448 const ThreeVector transversePosition = theRelativePosition - aBoostVector * (theRelativePosition.dot(aBoostVector) / aBoostVector.mag2());
449 const ThreeVector longitudinalPosition = theRelativePosition - transversePosition;
450
451 thePosition = refPos + transversePosition + longitudinalPosition / gamma;
452 }

◆ makeParticipant()

virtual void G4INCL::Particle::makeParticipant ( )
inlinevirtual

Reimplemented in G4INCL::Cluster.

Definition at line 334 of file G4INCLParticle.hh.

334 {
336 }

Referenced by G4INCL::Store::loadParticles(), and G4INCL::Cluster::makeParticipant().

◆ makeProjectileSpectator()

virtual void G4INCL::Particle::makeProjectileSpectator ( )
inlinevirtual

◆ makeTargetSpectator()

virtual void G4INCL::Particle::makeTargetSpectator ( )
inlinevirtual

Reimplemented in G4INCL::Cluster.

Definition at line 338 of file G4INCLParticle.hh.

338 {
340 }

Referenced by G4INCL::Cluster::makeTargetSpectator().

◆ MergeVectorBias() [1/2]

std::vector< G4int > G4INCL::Particle::MergeVectorBias ( Particle const *const  p1,
Particle const *const  p2 
)
static

Definition at line 229 of file G4INCLParticle.cc.

229 {
230 std::vector<G4int> MergedVectorBias;
231 std::vector<G4int> VectorBias1 = p1->getBiasCollisionVector();
232 std::vector<G4int> VectorBias2 = p2->getBiasCollisionVector();
233 G4int i = 0;
234 G4int j = 0;
235 if(VectorBias1.size()==0 && VectorBias2.size()==0) return MergedVectorBias;
236 else if(VectorBias1.size()==0) return VectorBias2;
237 else if(VectorBias2.size()==0) return VectorBias1;
238
239 while(i < G4int(VectorBias1.size()) || j < G4int(VectorBias2.size())){
240 if(VectorBias1[i]==VectorBias2[j]){
241 MergedVectorBias.push_back(VectorBias1[i]);
242 i++;
243 j++;
244 if(i == G4int(VectorBias1.size())){
245 for(;j<G4int(VectorBias2.size());j++) MergedVectorBias.push_back(VectorBias2[j]);
246 }
247 else if(j == G4int(VectorBias2.size())){
248 for(;i<G4int(VectorBias1.size());i++) MergedVectorBias.push_back(VectorBias1[i]);
249 }
250 } else if(VectorBias1[i]<VectorBias2[j]){
251 MergedVectorBias.push_back(VectorBias1[i]);
252 i++;
253 if(i == G4int(VectorBias1.size())){
254 for(;j<G4int(VectorBias2.size());j++) MergedVectorBias.push_back(VectorBias2[j]);
255 }
256 }
257 else {
258 MergedVectorBias.push_back(VectorBias2[j]);
259 j++;
260 if(j == G4int(VectorBias2.size())){
261 for(;i<G4int(VectorBias1.size());i++) MergedVectorBias.push_back(VectorBias1[i]);
262 }
263 }
264 }
265 return MergedVectorBias;
266 }

Referenced by G4INCL::BinaryCollisionAvatar::getChannel(), G4INCL::ParticleList::getParticleListBias(), and G4INCL::ParticleList::getParticleListBiasVector().

◆ MergeVectorBias() [2/2]

std::vector< G4int > G4INCL::Particle::MergeVectorBias ( std::vector< G4int p1,
Particle const *const  p2 
)
static

Definition at line 268 of file G4INCLParticle.cc.

268 {
269 std::vector<G4int> MergedVectorBias;
270 std::vector<G4int> VectorBias = p2->getBiasCollisionVector();
271 G4int i = 0;
272 G4int j = 0;
273 if(p1.size()==0 && VectorBias.size()==0) return MergedVectorBias;
274 else if(p1.size()==0) return VectorBias;
275 else if(VectorBias.size()==0) return p1;
276
277 while(i < G4int(p1.size()) || j < G4int(VectorBias.size())){
278 if(p1[i]==VectorBias[j]){
279 MergedVectorBias.push_back(p1[i]);
280 i++;
281 j++;
282 if(i == G4int(p1.size())){
283 for(;j<G4int(VectorBias.size());j++) MergedVectorBias.push_back(VectorBias[j]);
284 }
285 else if(j == G4int(VectorBias.size())){
286 for(;i<G4int(p1.size());i++) MergedVectorBias.push_back(p1[i]);
287 }
288 } else if(p1[i]<VectorBias[j]){
289 MergedVectorBias.push_back(p1[i]);
290 i++;
291 if(i == G4int(p1.size())){
292 for(;j<G4int(VectorBias.size());j++) MergedVectorBias.push_back(VectorBias[j]);
293 }
294 }
295 else {
296 MergedVectorBias.push_back(VectorBias[j]);
297 j++;
298 if(j == G4int(VectorBias.size())){
299 for(;i<G4int(p1.size());i++) MergedVectorBias.push_back(p1[i]);
300 }
301 }
302 }
303 return MergedVectorBias;
304 }

◆ operator=()

Particle & G4INCL::Particle::operator= ( const Particle rhs)
inline

Assignment operator.

Does not copy the particle ID.

Definition at line 172 of file G4INCLParticle.hh.

172 {
173 Particle temporaryParticle(rhs);
174 swap(temporaryParticle);
175 return *this;
176 }
void swap(Particle &rhs)
Helper method for the assignment operator.

Referenced by G4INCL::Cluster::operator=().

◆ print()

std::string G4INCL::Particle::print ( ) const
inline

◆ propagate()

void G4INCL::Particle::propagate ( G4double  step)
inline

Definition at line 833 of file G4INCLParticle.hh.

833 {
834 thePosition += ((*thePropagationMomentum)*(step/(*thePropagationEnergy)));
835 };

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

◆ rotateMomentum()

virtual void G4INCL::Particle::rotateMomentum ( const G4double  angle,
const ThreeVector axis 
)
inlinevirtual

Rotate the particle momentum.

Parameters
anglethe rotation angle
axisa unit vector representing the rotation axis

Reimplemented in G4INCL::Cluster.

Definition at line 952 of file G4INCLParticle.hh.

952 {
953 theMomentum.rotate(angle, axis);
954 theFrozenMomentum.rotate(angle, axis);
955 }
void rotate(const G4double angle, const ThreeVector &axis)
Rotate the vector by a given angle around a given axis.

Referenced by G4INCL::Cluster::rotateMomentum(), and rotatePositionAndMomentum().

◆ rotatePosition()

virtual void G4INCL::Particle::rotatePosition ( const G4double  angle,
const ThreeVector axis 
)
inlinevirtual

Rotate the particle position.

Parameters
anglethe rotation angle
axisa unit vector representing the rotation axis

Reimplemented in G4INCL::Cluster.

Definition at line 943 of file G4INCLParticle.hh.

943 {
944 thePosition.rotate(angle, axis);
945 }

Referenced by G4INCL::Cluster::rotatePosition(), and rotatePositionAndMomentum().

◆ rotatePositionAndMomentum()

virtual void G4INCL::Particle::rotatePositionAndMomentum ( const G4double  angle,
const ThreeVector axis 
)
inlinevirtual

Rotate the particle position and momentum.

Parameters
anglethe rotation angle
axisa unit vector representing the rotation axis

Definition at line 933 of file G4INCLParticle.hh.

933 {
934 rotatePosition(angle, axis);
935 rotateMomentum(angle, axis);
936 }
virtual void rotateMomentum(const G4double angle, const ThreeVector &axis)
Rotate the particle momentum.
virtual void rotatePosition(const G4double angle, const ThreeVector &axis)
Rotate the particle position.

◆ rpCorrelate()

void G4INCL::Particle::rpCorrelate ( )
inline

Make the particle follow a strict r-p correlation.

Definition at line 1012 of file G4INCLParticle.hh.

1012{ rpCorrelated = true; }

Referenced by G4INCL::InteractionAvatar::bringParticleInside(), G4INCL::ParticleEntryAvatar::postInteraction(), and G4INCL::SurfaceAvatar::postInteraction().

◆ rpDecorrelate()

void G4INCL::Particle::rpDecorrelate ( )
inline

Make the particle not follow a strict r-p correlation.

Definition at line 1015 of file G4INCLParticle.hh.

1015{ rpCorrelated = false; }

◆ setBiasCollisionVector()

void G4INCL::Particle::setBiasCollisionVector ( std::vector< G4int BiasCollisionVector)
inline

Set the vector list of biased vertices on the particle path.

Definition at line 1045 of file G4INCLParticle.hh.

1045 {
1046 this->theBiasCollisionVector = BiasCollisionVector;
1047 this->setParticleBias(Particle::getBiasFromVector(BiasCollisionVector));
1048 }
void setParticleBias(G4double ParticleBias)
Set the particle bias.
static G4double getBiasFromVector(std::vector< G4int > VectorBias)

Referenced by G4INCL::Nucleus::decayOutgoingPionResonances(), G4INCL::Nucleus::decayOutgoingSigmaZero(), and G4INCL::SurfaceAvatar::postInteraction().

◆ setEmissionTime()

◆ setEnergy()

◆ setFrozenEnergy()

void G4INCL::Particle::setFrozenEnergy ( const G4double  energy)
inline

Set the frozen particle momentum.

Definition at line 895 of file G4INCLParticle.hh.

◆ setFrozenMomentum()

void G4INCL::Particle::setFrozenMomentum ( const ThreeVector momentum)
inline

Set the frozen particle momentum.

Definition at line 892 of file G4INCLParticle.hh.

892{ theFrozenMomentum = momentum; }

◆ setHelicity()

◆ setINCLBiasVector()

void G4INCL::Particle::setINCLBiasVector ( std::vector< G4double NewVector)
static

Definition at line 312 of file G4INCLParticle.cc.

312 {
313 Particle::INCLBiasVector = NewVector;
314 }

◆ setINCLMass()

void G4INCL::Particle::setINCLMass ( )
inline

Set the mass of the Particle to its table mass.

Definition at line 593 of file G4INCLParticle.hh.

593{ setMass(getINCLMass()); }

Referenced by G4INCL::Cluster::Cluster(), setType(), and G4INCL::StandardPropagationModel::shootParticle().

◆ setMass()

◆ setMomentum()

◆ setNumberOfCollisions()

void G4INCL::Particle::setNumberOfCollisions ( G4int  n)
inline

Set the number of collisions undergone by the particle.

Definition at line 841 of file G4INCLParticle.hh.

◆ setNumberOfDecays()

void G4INCL::Particle::setNumberOfDecays ( G4int  n)
inline

Set the number of decays undergone by the particle.

Definition at line 850 of file G4INCLParticle.hh.

850{ nDecays = n; }

◆ setNumberOfKaon()

void G4INCL::Particle::setNumberOfKaon ( const G4int  NK)
inline

◆ setOutOfWell()

void G4INCL::Particle::setOutOfWell ( )
inline

Mark the particle as out of its potential well.

This flag is used to control pions created outside their potential well in delta decay. The pion potential checks it and returns zero if it is true (necessary in order to correctly enforce energy conservation). The Nucleus::applyFinalState() method uses it to determine whether new avatars should be generated for the particle.

Definition at line 863 of file G4INCLParticle.hh.

863{ outOfWell = true; }

◆ setParentResonanceID()

void G4INCL::Particle::setParentResonanceID ( const G4int  parentID)
inline

◆ setParentResonancePDGCode()

void G4INCL::Particle::setParentResonancePDGCode ( const G4int  parentPDGCode)
inline

◆ setParticipantType()

void G4INCL::Particle::setParticipantType ( ParticipantType const  p)
inline

Definition at line 318 of file G4INCLParticle.hh.

318 {
320 }

◆ setParticleBias()

void G4INCL::Particle::setParticleBias ( G4double  ParticleBias)
inline

Set the particle bias.

Definition at line 1039 of file G4INCLParticle.hh.

1039{ this->theParticleBias = ParticleBias; }

Referenced by setBiasCollisionVector().

◆ setPosition()

◆ setPotentialEnergy()

◆ setRealMass()

void G4INCL::Particle::setRealMass ( )
inline

Set the mass of the Particle to its real mass.

Definition at line 587 of file G4INCLParticle.hh.

587{ setMass(getRealMass()); }
G4double getRealMass() const
Get the real particle mass.

Referenced by G4INCL::ClusterDecay::decay().

◆ setTableMass()

◆ setType()

void G4INCL::Particle::setType ( ParticleType  t)
inline

Definition at line 191 of file G4INCLParticle.hh.

191 {
192 theType = t;
193 switch(theType)
194 {
195 case DeltaPlusPlus:
196 theA = 1;
197 theZ = 2;
198 theS = 0;
199 break;
200 case Proton:
201 case DeltaPlus:
202 theA = 1;
203 theZ = 1;
204 theS = 0;
205 break;
206 case Neutron:
207 case DeltaZero:
208 theA = 1;
209 theZ = 0;
210 theS = 0;
211 break;
212 case DeltaMinus:
213 theA = 1;
214 theZ = -1;
215 theS = 0;
216 break;
217 case PiPlus:
218 theA = 0;
219 theZ = 1;
220 theS = 0;
221 break;
222 case PiZero:
223 case Eta:
224 case Omega:
225 case EtaPrime:
226 case Photon:
227 theA = 0;
228 theZ = 0;
229 theS = 0;
230 break;
231 case PiMinus:
232 theA = 0;
233 theZ = -1;
234 theS = 0;
235 break;
236 case Lambda:
237 theA = 1;
238 theZ = 0;
239 theS = -1;
240 break;
241 case SigmaPlus:
242 theA = 1;
243 theZ = 1;
244 theS = -1;
245 break;
246 case SigmaZero:
247 theA = 1;
248 theZ = 0;
249 theS = -1;
250 break;
251 case SigmaMinus:
252 theA = 1;
253 theZ = -1;
254 theS = -1;
255 break;
256 case KPlus:
257 theA = 0;
258 theZ = 1;
259 theS = 1;
260 break;
261 case KZero:
262 theA = 0;
263 theZ = 0;
264 theS = 1;
265 break;
266 case KZeroBar:
267 theA = 0;
268 theZ = 0;
269 theS = -1;
270 break;
271 case KShort:
272 theA = 0;
273 theZ = 0;
274// theS should not be defined
275 break;
276 case KLong:
277 theA = 0;
278 theZ = 0;
279// theS should not be defined
280 break;
281 case KMinus:
282 theA = 0;
283 theZ = -1;
284 theS = -1;
285 break;
286 case Composite:
287 // INCL_ERROR("Trying to set particle type to Composite! Construct a Cluster object instead" << '\n');
288 theA = 0;
289 theZ = 0;
290 theS = 0;
291 break;
292 case UnknownParticle:
293 theA = 0;
294 theZ = 0;
295 theS = 0;
296 INCL_ERROR("Trying to set particle type to Unknown!" << '\n');
297 break;
298 }
299
300 if( !isResonance() && t!=Composite )
301 setINCLMass();
302 }
void setINCLMass()
Set the mass of the Particle to its table mass.

Referenced by G4INCL::Cluster::Cluster(), G4INCL::ClusterDecay::decay(), G4INCL::DeltaDecayChannel::fillFinalState(), G4INCL::DeltaProductionChannel::fillFinalState(), G4INCL::ElasticChannel::fillFinalState(), G4INCL::EtaNToPiNChannel::fillFinalState(), G4INCL::EtaNToPiPiNChannel::fillFinalState(), G4INCL::NDeltaEtaProductionChannel::fillFinalState(), G4INCL::NDeltaOmegaProductionChannel::fillFinalState(), G4INCL::NDeltaToDeltaLKChannel::fillFinalState(), G4INCL::NDeltaToDeltaSKChannel::fillFinalState(), G4INCL::NDeltaToNLKChannel::fillFinalState(), G4INCL::NDeltaToNNKKbChannel::fillFinalState(), G4INCL::NDeltaToNSKChannel::fillFinalState(), G4INCL::NeutralKaonDecayChannel::fillFinalState(), G4INCL::NKbToL2piChannel::fillFinalState(), G4INCL::NKbToLpiChannel::fillFinalState(), G4INCL::NKbToNKb2piChannel::fillFinalState(), G4INCL::NKbToNKbChannel::fillFinalState(), G4INCL::NKbToNKbpiChannel::fillFinalState(), G4INCL::NKbToS2piChannel::fillFinalState(), G4INCL::NKbToSpiChannel::fillFinalState(), G4INCL::NKToNK2piChannel::fillFinalState(), G4INCL::NKToNKChannel::fillFinalState(), G4INCL::NKToNKpiChannel::fillFinalState(), G4INCL::NNEtaToMultiPionsChannel::fillFinalState(), G4INCL::NNOmegaToMultiPionsChannel::fillFinalState(), G4INCL::NNToMissingStrangenessChannel::fillFinalState(), G4INCL::NNToMultiPionsChannel::fillFinalState(), G4INCL::NNToNLK2piChannel::fillFinalState(), G4INCL::NNToNLKChannel::fillFinalState(), G4INCL::NNToNLKpiChannel::fillFinalState(), G4INCL::NNToNNEtaChannel::fillFinalState(), G4INCL::NNToNNKKbChannel::fillFinalState(), G4INCL::NNToNNOmegaChannel::fillFinalState(), G4INCL::NNToNSK2piChannel::fillFinalState(), G4INCL::NNToNSKChannel::fillFinalState(), G4INCL::NNToNSKpiChannel::fillFinalState(), G4INCL::NpiToMissingStrangenessChannel::fillFinalState(), G4INCL::NSToNLChannel::fillFinalState(), G4INCL::NSToNSChannel::fillFinalState(), G4INCL::OmegaNToPiNChannel::fillFinalState(), G4INCL::OmegaNToPiPiNChannel::fillFinalState(), G4INCL::PiNToMultiPionsChannel::fillFinalState(), G4INCL::PionResonanceDecayChannel::fillFinalState(), G4INCL::RecombinationChannel::fillFinalState(), G4INCL::SigmaZeroDecayChannel::fillFinalState(), G4INCL::StrangeAbsorbtionChannel::fillFinalState(), and Particle().

◆ setUncorrelatedMomentum()

void G4INCL::Particle::setUncorrelatedMomentum ( const G4double  p)
inline

Set the uncorrelated momentum.

Definition at line 1009 of file G4INCLParticle.hh.

1009{ uncorrelatedMomentum = p; }

◆ swap()

void G4INCL::Particle::swap ( Particle rhs)
inlineprotected

Helper method for the assignment operator.

Definition at line 127 of file G4INCLParticle.hh.

127 {
128 std::swap(theZ, rhs.theZ);
129 std::swap(theA, rhs.theA);
130 std::swap(theS, rhs.theS);
131 std::swap(theParticipantType, rhs.theParticipantType);
132 std::swap(theType, rhs.theType);
133 if(rhs.thePropagationEnergy == &(rhs.theFrozenEnergy))
135 else
137 std::swap(theEnergy, rhs.theEnergy);
138 std::swap(theFrozenEnergy, rhs.theFrozenEnergy);
139 if(rhs.thePropagationMomentum == &(rhs.theFrozenMomentum))
141 else
143 std::swap(theMomentum, rhs.theMomentum);
144 std::swap(theFrozenMomentum, rhs.theFrozenMomentum);
145 std::swap(thePosition, rhs.thePosition);
146 std::swap(nCollisions, rhs.nCollisions);
147 std::swap(nDecays, rhs.nDecays);
148 std::swap(thePotentialEnergy, rhs.thePotentialEnergy);
149 // ID intentionally not swapped
150
151 std::swap(theParentResonancePDGCode, rhs.theParentResonancePDGCode);
152 std::swap(theParentResonanceID, rhs.theParentResonanceID);
153
154 std::swap(theHelicity, rhs.theHelicity);
155 std::swap(emissionTime, rhs.emissionTime);
156 std::swap(outOfWell, rhs.outOfWell);
157
158 std::swap(theMass, rhs.theMass);
159 std::swap(rpCorrelated, rhs.rpCorrelated);
160 std::swap(uncorrelatedMomentum, rhs.uncorrelatedMomentum);
161
162 std::swap(theParticleBias, rhs.theParticleBias);
163 std::swap(theBiasCollisionVector, rhs.theBiasCollisionVector);
164 }

Referenced by operator=(), and G4INCL::Cluster::swap().

◆ thawPropagation()

void G4INCL::Particle::thawPropagation ( )
inline

Unfreeze particle propagation.

Make the particle use theMomentum and theEnergy for propagation. Call this method to restore the normal propagation if the freezePropagation() method has been called.

Definition at line 923 of file G4INCLParticle.hh.

Referenced by G4INCL::ReflectionChannel::fillFinalState().

Member Data Documentation

◆ ID

long G4INCL::Particle::ID
protected

Definition at line 1102 of file G4INCLParticle.hh.

Referenced by dump(), getID(), Particle(), G4INCL::Cluster::print(), and print().

◆ INCLBiasVector

std::vector< G4double > G4INCL::Particle::INCLBiasVector
static

Time ordered vector of all bias applied.

/!\ Caution /!\ methods Assotiated to G4VectorCache<T> are: Push_back(…), operator[], Begin(), End(), Clear(), Size() and Pop_back()

Definition at line 1080 of file G4INCLParticle.hh.

Referenced by FillINCLBiasVector(), getBiasFromVector(), getTotalBias(), G4INCL::INCL::processEvent(), and setINCLBiasVector().

◆ nCollisions

◆ nDecays

G4int G4INCL::Particle::nDecays
protected

◆ nextBiasedCollisionID

G4ThreadLocal G4int G4INCL::Particle::nextBiasedCollisionID = 0
static

◆ rpCorrelated

G4bool G4INCL::Particle::rpCorrelated
protected

Definition at line 1104 of file G4INCLParticle.hh.

Referenced by getReflectionMomentum(), rpCorrelate(), rpDecorrelate(), and swap().

◆ theA

◆ theEnergy

◆ theFrozenEnergy

G4double G4INCL::Particle::theFrozenEnergy
protected

◆ theFrozenMomentum

G4INCL::ThreeVector G4INCL::Particle::theFrozenMomentum
protected

◆ theMomentum

◆ theNKaon

G4int G4INCL::Particle::theNKaon
protected

The number of Kaons inside the nucleus (update during the cascade)

Definition at line 1109 of file G4INCLParticle.hh.

Referenced by G4INCL::Nucleus::emitInsideKaon(), getNumberOfKaon(), and setNumberOfKaon().

◆ theParentResonanceID

G4int G4INCL::Particle::theParentResonanceID
protected

Definition at line 1112 of file G4INCLParticle.hh.

Referenced by getParentResonanceID(), setParentResonanceID(), and swap().

◆ theParentResonancePDGCode

G4int G4INCL::Particle::theParentResonancePDGCode
protected

Definition at line 1111 of file G4INCLParticle.hh.

Referenced by getParentResonancePDGCode(), setParentResonancePDGCode(), and swap().

◆ theParticipantType

◆ theParticleBias

G4double G4INCL::Particle::theParticleBias
protected

Definition at line 1107 of file G4INCLParticle.hh.

Referenced by getParticleBias(), setParticleBias(), and swap().

◆ thePosition

◆ thePotentialEnergy

◆ thePropagationEnergy

G4double* G4INCL::Particle::thePropagationEnergy
protected

Definition at line 1093 of file G4INCLParticle.hh.

Referenced by freezePropagation(), Particle(), swap(), and thawPropagation().

◆ thePropagationMomentum

G4INCL::ThreeVector* G4INCL::Particle::thePropagationMomentum
protected

◆ theS

◆ theType

◆ theZ

◆ uncorrelatedMomentum

G4double G4INCL::Particle::uncorrelatedMomentum
protected

Definition at line 1105 of file G4INCLParticle.hh.

Referenced by getReflectionMomentum(), setUncorrelatedMomentum(), and swap().


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