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

INCL++ intra-nuclear cascade. More...

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

+ Inheritance diagram for G4INCLXXInterface:
+ Collaboration diagram for G4INCLXXInterface:

Public Member Functions

 G4INCLXXInterface (G4VPreCompoundModel *const aPreCompound=0)
 
 ~G4INCLXXInterface ()
 
G4bool operator== (G4INCLXXInterface &right)
 
G4bool operator!= (G4INCLXXInterface &right)
 
G4ReactionProductVectorPropagate (G4KineticTrackVector *theSecondaries, G4V3DNucleus *theNucleus)
 
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &theNucleus)
 
void DeleteModel ()
 
virtual void ModelDescription (std::ostream &outFile) const
 
G4String const & GetDeExcitationModelName () const
 
- Public Member Functions inherited from G4VIntraNuclearTransportModel
 G4VIntraNuclearTransportModel (const G4String &mName="CascadeModel", G4VPreCompoundModel *ptr=nullptr)
 
virtual ~G4VIntraNuclearTransportModel ()
 
virtual G4ReactionProductVectorPropagateNuclNucl (G4KineticTrackVector *theSecondaries, G4V3DNucleus *theNucleus, G4V3DNucleus *theProjectileNucleus)
 
void SetDeExcitation (G4VPreCompoundModel *ptr)
 
void Set3DNucleus (G4V3DNucleus *const value)
 
void SetPrimaryProjectile (const G4HadProjectile &aPrimary)
 
const G4StringGetModelName () const
 
virtual void PropagateModelDescription (std::ostream &outFile) const
 
- Public Member Functions inherited from G4HadronicInteraction
 G4HadronicInteraction (const G4String &modelName="HadronicModel")
 
virtual ~G4HadronicInteraction ()
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual G4bool IsApplicable (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
G4double GetMinEnergy () const
 
G4double GetMinEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMinEnergy (G4double anEnergy)
 
void SetMinEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMinEnergy (G4double anEnergy, const G4Material *aMaterial)
 
G4double GetMaxEnergy () const
 
G4double GetMaxEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMaxEnergy (const G4double anEnergy)
 
void SetMaxEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMaxEnergy (G4double anEnergy, const G4Material *aMaterial)
 
G4int GetVerboseLevel () const
 
void SetVerboseLevel (G4int value)
 
const G4StringGetModelName () const
 
void DeActivateFor (const G4Material *aMaterial)
 
void ActivateFor (const G4Material *aMaterial)
 
void DeActivateFor (const G4Element *anElement)
 
void ActivateFor (const G4Element *anElement)
 
G4bool IsBlocked (const G4Material *aMaterial) const
 
G4bool IsBlocked (const G4Element *anElement) const
 
void SetRecoilEnergyThreshold (G4double val)
 
G4double GetRecoilEnergyThreshold () const
 
virtual const std::pair
< G4double, G4double
GetFatalEnergyCheckLevels () const
 
virtual std::pair< G4double,
G4double
GetEnergyMomentumCheckLevels () const
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void InitialiseModel ()
 

Private Member Functions

G4bool AccurateProjectile (const G4HadProjectile &aTrack, const G4Nucleus &theTargetNucleus) const
 
 G4INCLXXInterface (const G4INCLXXInterface &rhs)
 Dummy copy constructor to shut up Coverity warnings.
 
G4INCLXXInterfaceoperator= (G4INCLXXInterface const &rhs)
 Dummy assignment operator to shut up Coverity warnings.
 
G4INCL::ParticleType toINCLParticleType (G4ParticleDefinition const *const) const
 Convert G4ParticleDefinition to corresponding INCL particle type.
 
G4INCL::ParticleSpecies toINCLParticleSpecies (G4HadProjectile const &) const
 Convert G4HadProjectile to corresponding INCL particle species.
 
G4double toINCLKineticEnergy (G4HadProjectile const &) const
 Convert G4HadProjectile to corresponding INCL particle kinetic energy.
 
G4DynamicParticletoG4Particle (G4int A, G4int Z, G4int PDGCode, G4double kinE, G4double px, G4double py, G4double pz) const
 Convert an INCL particle to a G4DynamicParticle.
 
G4ParticleDefinitiontoG4ParticleDefinition (G4int A, G4int Z, G4int PDGCode) const
 Convert A and Z to a G4ParticleDefinition.
 
G4double remnant4MomentumScaling (G4double mass, G4double kineticE, G4double px, G4double py, G4double pz) const
 Rescale remnant momentum if necessary.
 

Private Attributes

G4INCL::INCLtheINCLModel
 
G4VPreCompoundModelthePreCompoundModel
 
G4HadFinalState theResult
 
G4HadronicInteractiontheBackupModel
 
G4HadronicInteractiontheBackupModelNucleon
 
G4INCLXXInterfaceStore *const theInterfaceStore
 
G4INCLXXVInterfaceTallytheTally
 
G4bool complainedAboutBackupModel
 
G4bool complainedAboutPreCompound
 
G4IonTable *const theIonTable
 
G4bool dumpRemnantInfo
 
G4VLevelDensityParametertheINCLXXLevelDensity
 
G4FissionProbabilitytheINCLXXFissionProbability
 

Additional Inherited Members

- Protected Member Functions inherited from G4VIntraNuclearTransportModel
G4V3DNucleusGet3DNucleus () const
 
G4VPreCompoundModelGetDeExcitation () const
 
const G4HadProjectileGetPrimaryProjectile () const
 
- Protected Attributes inherited from G4VIntraNuclearTransportModel
G4String theTransportModelName
 
G4V3DNucleusthe3DNucleus
 
G4VPreCompoundModeltheDeExcitation
 
const G4HadProjectilethePrimaryProjectile
 

Detailed Description

INCL++ intra-nuclear cascade.

Interface for INCL++. This interface handles basic hadron bullet particles (protons, neutrons, pions), as well as light ions.

Example usage in case of protons:

inclModel -> SetMinEnergy(0.0 * MeV); // Set the energy limits
inclModel -> SetMaxEnergy(3.0 * GeV);
G4ProtonInelasticProcess* protonInelasticProcess = new G4ProtonInelasticProcess();
G4ProtonInelasticCrossSection* protonInelasticCrossSection = new G4ProtonInelasticCrossSection();
protonInelasticProcess -> RegisterMe(inclModel);
protonInelasticProcess -> AddDataSet(protonInelasticCrossSection);
processManager = particle -> GetProcessManager();
processManager -> AddDiscreteProcess(protonInelasticProcess);

The same setup procedure is needed for neutron, pion and generic-ion inelastic processes as well.

Definition at line 103 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 103 of file G4INCLXXInterface.hh

Constructor & Destructor Documentation

G4INCLXXInterface::~G4INCLXXInterface ( )

Definition at line 116 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 116 of file G4INCLXXInterface.cc

References theINCLXXFissionProbability, and theINCLXXLevelDensity.

G4INCLXXInterface::G4INCLXXInterface ( const G4INCLXXInterface rhs)
private

Dummy copy constructor to shut up Coverity warnings.

Member Function Documentation

G4bool G4INCLXXInterface::AccurateProjectile ( const G4HadProjectile aTrack,
const G4Nucleus theTargetNucleus 
) const
private

Definition at line 122 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 122 of file G4INCLXXInterface.cc

References kdfinder::abs(), G4INCLXXInterfaceStore::EmitBigWarning(), G4Nucleus::GetA_asInt(), G4INCLXXInterfaceStore::GetAccurateProjectile(), G4ParticleDefinition::GetAtomicMass(), G4ParticleDefinition::GetBaryonNumber(), G4HadProjectile::GetDefinition(), G4INCLXXInterfaceStore::GetMaxProjMassINCL(), G4ParticleDefinition::GetParticleName(), G4Nucleus::GetZ_asInt(), and theInterfaceStore.

Referenced by ApplyYourself().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4HadFinalState * G4INCLXXInterface::ApplyYourself ( const G4HadProjectile aTrack,
G4Nucleus theNucleus 
)
virtual

Main method to apply the INCL physics model.

Parameters
aTrackthe projectile particle
theNucleustarget nucleus
Returns
the output of the INCL physics model

Implements G4HadronicInteraction.

Definition at line 163 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 163 of file G4INCLXXInterface.cc

References A(), G4INCL::EventInfo::A, kdfinder::abs(), AccurateProjectile(), G4HadFinalState::AddSecondary(), G4HadronicInteraction::ApplyYourself(), G4INCL::EventInfo::ARem, CLHEP::HepLorentzVector::boostVector(), G4HadFinalState::Clear(), complainedAboutBackupModel, complainedAboutPreCompound, G4VPreCompoundModel::DeExcite(), dumpRemnantInfo, CLHEP::HepLorentzVector::e(), G4INCL::EventInfo::EKin, G4INCL::EventInfo::EKinRem, G4INCLXXInterfaceStore::EmitBigWarning(), G4INCLXXInterfaceStore::EmitWarning(), G4INCL::EventInfo::EStarRem, G4cerr, G4endl, G4GenericIon::GenericIon(), G4HadProjectile::Get4Momentum(), G4DynamicParticle::Get4Momentum(), G4Nucleus::GetA_asInt(), G4ParticleDefinition::GetAtomicMass(), G4ParticleDefinition::GetAtomicNumber(), G4INCLXXInterfaceStore::GetCascadeMinEnergyPerNucleon(), G4HadProjectile::GetDefinition(), G4INCLXXInterfaceStore::GetINCLModel(), G4INCLXXInterfaceStore::GetInstance(), G4IonTable::GetIon(), G4IonTable::GetIonMass(), G4IonTable::GetIonName(), G4HadProjectile::GetKineticEnergy(), G4INCLXXInterfaceStore::GetMaxProjMassINCL(), G4HadronicInteraction::GetModelName(), G4NucleiProperties::GetNuclearMass(), G4HadFinalState::GetNumberOfSecondaries(), G4HadSecondary::GetParticle(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetParticleType(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGMass(), G4HadFinalState::GetSecondary(), G4INCLXXInterfaceStore::GetTally(), CLHEP::HepLorentzVector::getV(), G4Nucleus::GetZ_asInt(), source.hepunit::hbar_Planck, CLHEP::HepLorentzRotation::inverse(), CLHEP::HepRotation::inverse(), isAlive, G4INCL::EventInfo::jxRem, G4INCL::EventInfo::jyRem, G4INCL::EventInfo::jzRem, message(), MeV, momentum, G4Neutron::NeutronDefinition(), G4INCL::EventInfo::nParticles, G4INCL::EventInfo::nRemnants, G4INCL::EventInfo::PDGCode, CLHEP::HepLorentzVector::phi(), G4INCL::INCL::processEvent(), G4Proton::ProtonDefinition(), G4INCL::EventInfo::px, G4INCL::EventInfo::pxRem, G4INCL::EventInfo::py, G4INCL::EventInfo::pyRem, G4INCL::EventInfo::pz, G4INCL::EventInfo::pzRem, remnant4MomentumScaling(), CLHEP::HepLorentzVector::rho(), CLHEP::HepRotation::rotateY(), CLHEP::HepRotation::rotateZ(), G4DynamicParticle::Set4Momentum(), G4Fragment::SetAngularMomentum(), CLHEP::HepLorentzVector::setE(), G4HadFinalState::SetEnergyChange(), G4HadFinalState::SetMomentumChange(), G4HadFinalState::SetStatusChange(), CLHEP::HepLorentzVector::setVect(), stopAndKill, G4INCLXXVInterfaceTally::Tally(), theBackupModel, theBackupModelNucleon, G4VIntraNuclearTransportModel::theDeExcitation, theINCLModel, theInterfaceStore, theIonTable, thePreCompoundModel, theResult, CLHEP::HepLorentzVector::theta(), theTally, toG4Particle(), toINCLKineticEnergy(), toINCLParticleSpecies(), G4INCL::EventInfo::transparent, CLHEP::Hep3Vector::unit(), CLHEP::HepLorentzVector::vect(), Z, G4INCL::EventInfo::Z, and G4INCL::EventInfo::ZRem.

void G4INCLXXInterface::DeleteModel ( )
inline

Definition at line 128 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 128 of file G4INCLXXInterface.hh

References theINCLModel.

G4String const & G4INCLXXInterface::GetDeExcitationModelName ( ) const

Definition at line 613 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 613 of file G4INCLXXInterface.cc

References G4HadronicInteraction::GetModelName(), and G4VIntraNuclearTransportModel::theDeExcitation.

+ Here is the call graph for this function:

void G4INCLXXInterface::ModelDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4VIntraNuclearTransportModel.

Definition at line 598 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 598 of file G4INCLXXInterface.cc

G4bool G4INCLXXInterface::operator!= ( G4INCLXXInterface right)
inline

Definition at line 112 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 112 of file G4INCLXXInterface.hh

G4INCLXXInterface& G4INCLXXInterface::operator= ( G4INCLXXInterface const &  rhs)
private

Dummy assignment operator to shut up Coverity warnings.

G4bool G4INCLXXInterface::operator== ( G4INCLXXInterface right)
inline

Definition at line 108 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 108 of file G4INCLXXInterface.hh

G4ReactionProductVector * G4INCLXXInterface::Propagate ( G4KineticTrackVector theSecondaries,
G4V3DNucleus theNucleus 
)
virtual

Implements G4VIntraNuclearTransportModel.

Definition at line 502 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 502 of file G4INCLXXInterface.cc

G4double G4INCLXXInterface::remnant4MomentumScaling ( G4double  mass,
G4double  kineticE,
G4double  px,
G4double  py,
G4double  pz 
) const
private

Rescale remnant momentum if necessary.

Definition at line 585 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 585 of file G4INCLXXInterface.cc

References mass.

Referenced by ApplyYourself().

+ Here is the caller graph for this function:

G4DynamicParticle * G4INCLXXInterface::toG4Particle ( G4int  A,
G4int  Z,
G4int  PDGCode,
G4double  kinE,
G4double  px,
G4double  py,
G4double  pz 
) const
private

Convert an INCL particle to a G4DynamicParticle.

Definition at line 570 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 570 of file G4INCLXXInterface.cc

References energy, MeV, momentum, toG4ParticleDefinition(), and CLHEP::Hep3Vector::unit().

Referenced by ApplyYourself().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ParticleDefinition * G4INCLXXInterface::toG4ParticleDefinition ( G4int  A,
G4int  Z,
G4int  PDGCode 
) const
private

Convert A and Z to a G4ParticleDefinition.

Definition at line 540 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 540 of file G4INCLXXInterface.cc

References G4Alpha::Alpha(), G4Deuteron::Deuteron(), G4Eta::Eta(), G4Gamma::Gamma(), G4IonTable::GetIon(), G4He3::He3(), G4KaonMinus::KaonMinus(), G4KaonPlus::KaonPlus(), G4KaonZeroLong::KaonZeroLong(), G4KaonZeroShort::KaonZeroShort(), G4Lambda::Lambda(), G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), G4PionZero::PionZero(), G4Proton::Proton(), G4SigmaMinus::SigmaMinus(), G4SigmaPlus::SigmaPlus(), G4SigmaZero::SigmaZero(), theIonTable, and G4Triton::Triton().

Referenced by toG4Particle().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4INCLXXInterface::toINCLKineticEnergy ( G4HadProjectile const &  aTrack) const
private

Convert G4HadProjectile to corresponding INCL particle kinetic energy.

Definition at line 536 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 536 of file G4INCLXXInterface.cc

References G4HadProjectile::GetKineticEnergy().

Referenced by ApplyYourself().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4INCL::ParticleSpecies G4INCLXXInterface::toINCLParticleSpecies ( G4HadProjectile const &  aTrack) const
private

Convert G4HadProjectile to corresponding INCL particle species.

Definition at line 522 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 522 of file G4INCLXXInterface.cc

References G4INCL::Composite, G4ParticleDefinition::GetAtomicMass(), G4ParticleDefinition::GetAtomicNumber(), G4HadProjectile::GetDefinition(), G4INCL::ParticleSpecies::theA, G4INCL::ParticleSpecies::theType, G4INCL::ParticleSpecies::theZ, and toINCLParticleType().

Referenced by ApplyYourself().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4INCL::ParticleType G4INCLXXInterface::toINCLParticleType ( G4ParticleDefinition const * const  pdef) const
private

Convert G4ParticleDefinition to corresponding INCL particle type.

Definition at line 506 of file G4INCLXXInterface.cc.

View newest version in sPHENIX GitHub at line 506 of file G4INCLXXInterface.cc

References G4Alpha::Alpha(), G4INCL::Composite, G4Deuteron::Deuteron(), G4GenericIon::GenericIon(), G4ParticleDefinition::GetParticleType(), G4He3::He3(), G4KaonMinus::KaonMinus(), G4KaonPlus::KaonPlus(), G4INCL::KMinus, G4INCL::KPlus, G4INCL::Neutron, G4Neutron::Neutron(), G4INCL::PiMinus, G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), G4PionZero::PionZero(), G4INCL::PiPlus, G4INCL::PiZero, G4INCL::Proton, G4Proton::Proton(), G4Triton::Triton(), and G4INCL::UnknownParticle.

Referenced by toINCLParticleSpecies().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

G4bool G4INCLXXInterface::complainedAboutBackupModel
private

Definition at line 178 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 178 of file G4INCLXXInterface.hh

Referenced by ApplyYourself().

G4bool G4INCLXXInterface::complainedAboutPreCompound
private

Definition at line 179 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 179 of file G4INCLXXInterface.hh

Referenced by ApplyYourself().

G4bool G4INCLXXInterface::dumpRemnantInfo
private

Definition at line 183 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 183 of file G4INCLXXInterface.hh

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadronicInteraction* G4INCLXXInterface::theBackupModel
private

Definition at line 172 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 172 of file G4INCLXXInterface.hh

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadronicInteraction* G4INCLXXInterface::theBackupModelNucleon
private

Definition at line 173 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 173 of file G4INCLXXInterface.hh

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4INCL::INCL* G4INCLXXInterface::theINCLModel
private

Definition at line 166 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 166 of file G4INCLXXInterface.hh

Referenced by ApplyYourself(), and DeleteModel().

G4FissionProbability* G4INCLXXInterface::theINCLXXFissionProbability
private

Definition at line 186 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 186 of file G4INCLXXInterface.hh

Referenced by G4INCLXXInterface(), and ~G4INCLXXInterface().

G4VLevelDensityParameter* G4INCLXXInterface::theINCLXXLevelDensity
private

Definition at line 185 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 185 of file G4INCLXXInterface.hh

Referenced by G4INCLXXInterface(), and ~G4INCLXXInterface().

G4INCLXXInterfaceStore* const G4INCLXXInterface::theInterfaceStore
private

Definition at line 175 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 175 of file G4INCLXXInterface.hh

Referenced by AccurateProjectile(), ApplyYourself(), and G4INCLXXInterface().

G4IonTable* const G4INCLXXInterface::theIonTable
private

Definition at line 181 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 181 of file G4INCLXXInterface.hh

Referenced by ApplyYourself(), and toG4ParticleDefinition().

G4VPreCompoundModel* G4INCLXXInterface::thePreCompoundModel
private

Definition at line 168 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 168 of file G4INCLXXInterface.hh

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadFinalState G4INCLXXInterface::theResult
private

Definition at line 170 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 170 of file G4INCLXXInterface.hh

Referenced by ApplyYourself().

G4INCLXXVInterfaceTally* G4INCLXXInterface::theTally
private

Definition at line 176 of file G4INCLXXInterface.hh.

View newest version in sPHENIX GitHub at line 176 of file G4INCLXXInterface.hh

Referenced by ApplyYourself().


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