Geant4  10.01.p03
G4ElementaryParticleCollider Class Reference

#include <G4ElementaryParticleCollider.hh>

+ Inheritance diagram for G4ElementaryParticleCollider:
+ Collaboration diagram for G4ElementaryParticleCollider:

Public Member Functions

 G4ElementaryParticleCollider ()
 
virtual ~G4ElementaryParticleCollider ()
 
void collide (G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
 
void setNucleusState (G4int a, G4int z)
 
- Public Member Functions inherited from G4CascadeColliderBase
 G4CascadeColliderBase (const G4String &name, G4int verbose=0)
 
virtual ~G4CascadeColliderBase ()
 
virtual void rescatter (G4InuclParticle *, G4KineticTrackVector *, G4V3DNucleus *, G4CollisionOutput &)
 
virtual void setVerboseLevel (G4int verbose=0)
 
- Public Member Functions inherited from G4VCascadeCollider
 G4VCascadeCollider (const G4String &name, G4int verbose=0)
 
virtual ~G4VCascadeCollider ()
 

Private Member Functions

G4int generateMultiplicity (G4int is, G4double ekin) const
 
void generateOutgoingPartTypes (G4int is, G4int mult, G4double ekin)
 
void generateSCMfinalState (G4double ekin, G4double etot_scm, G4InuclElementaryParticle *particle1, G4InuclElementaryParticle *particle2)
 
void generateSCMpionAbsorption (G4double etot_scm, G4InuclElementaryParticle *particle1, G4InuclElementaryParticle *particle2)
 
void generateSCMmuonAbsorption (G4double etot_scm, G4InuclElementaryParticle *particle1, G4InuclElementaryParticle *particle2)
 
void generateSCMpionNAbsorption (G4double etot_scm, G4InuclElementaryParticle *particle1, G4InuclElementaryParticle *particle2)
 
G4bool pionNucleonAbsorption (G4double ekin) const
 
G4bool splitQuasiDeuteron (G4int qdtype)
 
void fillOutgoingMasses ()
 
 G4ElementaryParticleCollider (const G4ElementaryParticleCollider &)
 
G4ElementaryParticleCollideroperator= (const G4ElementaryParticleCollider &)
 

Private Attributes

G4CascadeFinalStateGenerator fsGenerator
 
std::vector
< G4InuclElementaryParticle
particles
 
std::vector< G4LorentzVectorscm_momentums
 
std::vector< G4doublemodules
 
std::vector< G4doublemasses
 
std::vector< G4doublemasses2
 
std::vector< G4intparticle_kinds
 
G4int nucleusA
 
G4int nucleusZ
 

Additional Inherited Members

- Protected Member Functions inherited from G4CascadeColliderBase
virtual G4bool useEPCollider (G4InuclParticle *bullet, G4InuclParticle *target) const
 
virtual G4bool inelasticInteractionPossible (G4InuclParticle *bullet, G4InuclParticle *target, G4double ekin) const
 
virtual G4bool validateOutput (G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
 
virtual G4bool validateOutput (const G4Fragment &fragment, G4CollisionOutput &output)
 
virtual G4bool validateOutput (G4InuclParticle *bullet, G4InuclParticle *target, const std::vector< G4InuclElementaryParticle > &particles)
 
- Protected Member Functions inherited from G4VCascadeCollider
virtual void setName (const G4String &name)
 
- Protected Attributes inherited from G4CascadeColliderBase
G4InteractionCase interCase
 
G4CascadeCheckBalancebalance
 
- Protected Attributes inherited from G4VCascadeCollider
G4String theName
 
G4int verboseLevel
 

Detailed Description

Definition at line 74 of file G4ElementaryParticleCollider.hh.

Constructor & Destructor Documentation

G4ElementaryParticleCollider::G4ElementaryParticleCollider ( )

Definition at line 135 of file G4ElementaryParticleCollider.cc.

virtual G4ElementaryParticleCollider::~G4ElementaryParticleCollider ( )
inlinevirtual

Definition at line 77 of file G4ElementaryParticleCollider.hh.

G4ElementaryParticleCollider::G4ElementaryParticleCollider ( const G4ElementaryParticleCollider )
private

Member Function Documentation

void G4ElementaryParticleCollider::collide ( G4InuclParticle bullet,
G4InuclParticle target,
G4CollisionOutput output 
)
virtual

Implements G4VCascadeCollider.

Definition at line 141 of file G4ElementaryParticleCollider.cc.

References G4CollisionOutput::addOutgoingParticles(), G4LorentzConvertor::backToTheLab(), G4cerr, G4cout, G4endl, generateSCMfinalState(), generateSCMmuonAbsorption(), generateSCMpionAbsorption(), generateSCMpionNAbsorption(), G4InuclParticle::getDefinition(), G4LorentzConvertor::getKinEnergyInTheTRS(), G4InuclParticle::getMomModule(), G4ParticleDefinition::GetParticleName(), G4CascadeChannelTables::GetTable(), G4LorentzConvertor::getTotalSCMEnergy(), G4InteractionCase::hadrons(), G4CascadeColliderBase::interCase, G4InuclElementaryParticle::isMuon(), G4InuclElementaryParticle::isNeutrino(), G4InuclElementaryParticle::nucleon(), particles, pionNucleonAbsorption(), G4CascadeChannelTables::Print(), G4InuclElementaryParticle::quasi_deutron(), G4InteractionCase::set(), G4LorentzConvertor::setBullet(), G4LorentzConvertor::setTarget(), G4LorentzConvertor::setVerbose(), G4LorentzConvertor::toTheCenterOfMass(), G4InuclElementaryParticle::type(), G4CascadeColliderBase::useEPCollider(), G4NucleiModel::useQuasiDeuteron(), G4CascadeColliderBase::validateOutput(), and G4VCascadeCollider::verboseLevel.

Referenced by G4InuclCollider::collide(), and G4NucleiModel::generateParticleFate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ElementaryParticleCollider::fillOutgoingMasses ( )
private

Definition at line 382 of file G4ElementaryParticleCollider.cc.

References G4InuclElementaryParticle::getParticleMass(), masses, masses2, and particle_kinds.

Referenced by generateSCMfinalState(), generateSCMmuonAbsorption(), generateSCMpionAbsorption(), and generateSCMpionNAbsorption().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4ElementaryParticleCollider::generateMultiplicity ( G4int  is,
G4double  ekin 
) const
private

Definition at line 267 of file G4ElementaryParticleCollider.cc.

References G4cerr, G4cout, G4endl, G4CascadeChannel::getMultiplicity(), G4CascadeChannelTables::GetTable(), and G4VCascadeCollider::verboseLevel.

Referenced by generateSCMfinalState().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ElementaryParticleCollider::generateOutgoingPartTypes ( G4int  is,
G4int  mult,
G4double  ekin 
)
private

Definition at line 290 of file G4ElementaryParticleCollider.cc.

References G4cerr, G4endl, G4CascadeChannel::getOutgoingParticleTypes(), G4CascadeChannelTables::GetTable(), and particle_kinds.

Referenced by generateSCMfinalState().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ElementaryParticleCollider::generateSCMfinalState ( G4double  ekin,
G4double  etot_scm,
G4InuclElementaryParticle particle1,
G4InuclElementaryParticle particle2 
)
private

Definition at line 309 of file G4ElementaryParticleCollider.cc.

References G4CascadeFinalStateGenerator::Configure(), G4InuclParticle::EPCollider, fillOutgoingMasses(), fsGenerator, G4cout, G4endl, G4INCL::PhaseSpaceGenerator::generate(), G4HadDecayGenerator::Generate(), generateMultiplicity(), generateOutgoingPartTypes(), masses, particle_kinds, particles, scm_momentums, G4HadDecayGenerator::SetVerboseLevel(), G4InuclElementaryParticle::type(), and G4VCascadeCollider::verboseLevel.

Referenced by collide().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ElementaryParticleCollider::generateSCMmuonAbsorption ( G4double  etot_scm,
G4InuclElementaryParticle particle1,
G4InuclElementaryParticle particle2 
)
private

Definition at line 444 of file G4ElementaryParticleCollider.cc.

References G4InuclParticle::EPCollider, fillOutgoingMasses(), G4cerr, G4cout, G4endl, G4InuclParticle::getDefinition(), G4ParticleDefinition::GetParticleName(), G4GDecay3::GetThreeBodyMomenta(), masses, G4InuclParticleNames::mnu, G4InuclParticleNames::muonMinus, particle_kinds, particles, scm_momentums, splitQuasiDeuteron(), G4InuclElementaryParticle::type(), G4NucleiModel::useQuasiDeuteron(), and G4VCascadeCollider::verboseLevel.

Referenced by collide().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ElementaryParticleCollider::generateSCMpionAbsorption ( G4double  etot_scm,
G4InuclElementaryParticle particle1,
G4InuclElementaryParticle particle2 
)
private

Definition at line 399 of file G4ElementaryParticleCollider.cc.

References a, G4InuclParticle::EPCollider, fillOutgoingMasses(), G4cerr, G4cout, G4endl, G4InuclSpecialFunctions::generateWithRandomAngles(), G4InuclParticle::getDefinition(), G4ParticleDefinition::GetParticleName(), masses, masses2, particle_kinds, particles, splitQuasiDeuteron(), G4InuclElementaryParticle::type(), G4NucleiModel::useQuasiDeuteron(), and G4VCascadeCollider::verboseLevel.

Referenced by collide().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ElementaryParticleCollider::generateSCMpionNAbsorption ( G4double  etot_scm,
G4InuclElementaryParticle particle1,
G4InuclElementaryParticle particle2 
)
private

Definition at line 502 of file G4ElementaryParticleCollider.cc.

References a, G4InuclParticle::EPCollider, fillOutgoingMasses(), G4cerr, G4cout, G4endl, G4InuclSpecialFunctions::generateWithRandomAngles(), G4InuclParticle::getDefinition(), G4InuclParticle::getMomentum(), G4InuclNuclei::getNucleiMass(), G4ParticleDefinition::GetParticleName(), masses, masses2, G4InuclParticleNames::neu, G4InuclElementaryParticle::nucleon(), nucleusA, nucleusZ, particle_kinds, particles, G4InuclParticleNames::pim, G4InuclParticleNames::pip, G4InuclParticleNames::pro, G4InuclElementaryParticle::type(), and G4VCascadeCollider::verboseLevel.

Referenced by collide().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ElementaryParticleCollider& G4ElementaryParticleCollider::operator= ( const G4ElementaryParticleCollider )
private
G4bool G4ElementaryParticleCollider::pionNucleonAbsorption ( G4double  ekin) const
private

Definition at line 575 of file G4ElementaryParticleCollider.cc.

References G4cout, G4endl, G4InuclElementaryParticle::getParticleMass(), G4InteractionCase::hadrons(), G4CascadeColliderBase::interCase, G4InuclParticleNames::neu, G4InuclParticleNames::pim, G4CascadeParameters::piNAbsorption(), G4InuclParticleNames::pionZero, G4InuclParticleNames::pip, G4InuclParticleNames::pro, and G4VCascadeCollider::verboseLevel.

Referenced by collide().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ElementaryParticleCollider::setNucleusState ( G4int  a,
G4int  z 
)
inline

Definition at line 82 of file G4ElementaryParticleCollider.hh.

References a, nucleusA, nucleusZ, and z.

Referenced by G4NucleiModel::generateParticleFate().

+ Here is the caller graph for this function:

G4bool G4ElementaryParticleCollider::splitQuasiDeuteron ( G4int  qdtype)
private

Definition at line 597 of file G4ElementaryParticleCollider.cc.

References b1, b2, G4InuclParticleNames::dineutron, G4InuclParticleNames::diproton, G4cerr, G4endl, particle_kinds, and G4InuclParticleNames::unboundPN.

Referenced by generateSCMmuonAbsorption(), and generateSCMpionAbsorption().

+ Here is the caller graph for this function:

Member Data Documentation

G4CascadeFinalStateGenerator G4ElementaryParticleCollider::fsGenerator
private

Definition at line 117 of file G4ElementaryParticleCollider.hh.

Referenced by generateSCMfinalState().

std::vector<G4double> G4ElementaryParticleCollider::masses
private
std::vector<G4double> G4ElementaryParticleCollider::masses2
private
std::vector<G4double> G4ElementaryParticleCollider::modules
private

Definition at line 122 of file G4ElementaryParticleCollider.hh.

G4int G4ElementaryParticleCollider::nucleusA
private

Definition at line 128 of file G4ElementaryParticleCollider.hh.

Referenced by generateSCMpionNAbsorption(), and setNucleusState().

G4int G4ElementaryParticleCollider::nucleusZ
private

Definition at line 128 of file G4ElementaryParticleCollider.hh.

Referenced by generateSCMpionNAbsorption(), and setNucleusState().

std::vector<G4InuclElementaryParticle> G4ElementaryParticleCollider::particles
private
std::vector<G4LorentzVector> G4ElementaryParticleCollider::scm_momentums
private

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