Geant4  10.02
G4INCLXXInterface Class Reference

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

#include <G4INCLXXInterface.hh>

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

Public Member Functions

 G4INCLXXInterface (G4VPreCompoundModel *const aPreCompound=0)
 
 ~G4INCLXXInterface ()
 
G4int operator== (G4INCLXXInterface &right)
 
G4int operator!= (G4INCLXXInterface &right)
 
G4ReactionProductVectorPropagate (G4KineticTrackVector *theSecondaries, G4V3DNucleus *theNucleus)
 
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &theNucleus)
 Main method to apply the INCL physics model. More...
 
void DeleteModel ()
 
virtual void ModelDescription (std::ostream &outFile) const
 
G4String const & GetDeExcitationModelName () const
 
- Public Member Functions inherited from G4VIntraNuclearTransportModel
 G4VIntraNuclearTransportModel (const G4String &modelName="CascadeModel", G4VPreCompoundModel *ptr=0)
 
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 &, G4Nucleus &)
 
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)
 
const G4HadronicInteractionGetMyPointer () const
 
virtual G4int GetVerboseLevel () const
 
virtual 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
 
G4bool operator== (const G4HadronicInteraction &right) const
 
G4bool operator!= (const G4HadronicInteraction &right) 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 &)
 

Private Member Functions

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

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 Member Functions inherited from G4HadronicInteraction
void SetModelName (const G4String &nam)
 
G4bool IsBlocked () const
 
void Block ()
 
- Protected Attributes inherited from G4VIntraNuclearTransportModel
G4String theTransportModelName
 
G4V3DNucleusthe3DNucleus
 
G4VPreCompoundModeltheDeExcitation
 
const G4HadProjectilethePrimaryProjectile
 
- Protected Attributes inherited from G4HadronicInteraction
G4HadFinalState theParticleChange
 
G4int verboseLevel
 
G4double theMinEnergy
 
G4double theMaxEnergy
 
G4bool isBlocked
 

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);
particle = G4Proton::Proton();
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.

Constructor & Destructor Documentation

G4INCLXXInterface::~G4INCLXXInterface ( )

Definition 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.

References G4INCLXXInterfaceStore::EmitBigWarning(), G4Nucleus::GetA_asInt(), G4INCLXXInterfaceStore::GetAccurateProjectile(), G4ParticleDefinition::GetAtomicMass(), G4HadProjectile::GetDefinition(), G4INCLXXInterfaceStore::GetMaxProjMassINCL(), G4ParticleDefinition::GetParticleName(), G4Nucleus::GetZ_asInt(), G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), G4PionZero::PionZero(), G4Proton::Proton(), 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 167 of file G4INCLXXInterface.cc.

References A(), G4INCL::EventInfo::A, AccurateProjectile(), G4HadFinalState::AddSecondary(), G4HadronicInteraction::ApplyYourself(), G4VPreCompoundModel::ApplyYourself(), G4INCL::EventInfo::ARem, G4HadFinalState::Clear(), complainedAboutBackupModel, complainedAboutPreCompound, G4VPreCompoundModel::DeExcite(), dumpRemnantInfo, 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(), G4Nucleus::GetZ_asInt(), isAlive, G4INCL::EventInfo::jxRem, G4INCL::EventInfo::jyRem, G4INCL::EventInfo::jzRem, MeV, G4Neutron::NeutronDefinition(), G4INCL::EventInfo::nParticles, G4INCL::EventInfo::nRemnants, G4INCL::INCL::processEvent(), G4Proton::ProtonDefinition(), G4INCL::EventInfo::px, G4INCL::EventInfo::pxRem, G4INCL::EventInfo::py, G4INCL::EventInfo::pyRem, G4INCL::EventInfo::pz, G4INCL::EventInfo::pzRem, remnant4MomentumScaling(), G4DynamicParticle::Set4Momentum(), G4Fragment::SetAngularMomentum(), G4HadFinalState::SetEnergyChange(), G4HadFinalState::SetMomentumChange(), G4HadFinalState::SetStatusChange(), stopAndKill, G4INCLXXVInterfaceTally::Tally(), theBackupModel, theBackupModelNucleon, G4VIntraNuclearTransportModel::theDeExcitation, theINCLModel, theInterfaceStore, theIonTable, thePreCompoundModel, theResult, theTally, toG4Particle(), toINCLKineticEnergy(), toINCLParticleSpecies(), G4INCL::EventInfo::transparent, G4INCL::EventInfo::Z, and G4INCL::EventInfo::ZRem.

+ Here is the call graph for this function:

void G4INCLXXInterface::DeleteModel ( )
inline

Definition at line 128 of file G4INCLXXInterface.hh.

References theINCLModel.

G4String const & G4INCLXXInterface::GetDeExcitationModelName ( ) const

Definition at line 601 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 586 of file G4INCLXXInterface.cc.

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

Definition at line 112 of file G4INCLXXInterface.hh.

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

Dummy assignment operator to shut up Coverity warnings.

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

Definition at line 108 of file G4INCLXXInterface.hh.

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

Implements G4VIntraNuclearTransportModel.

Definition at line 505 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 573 of file G4INCLXXInterface.cc.

Referenced by ApplyYourself().

+ Here is the caller graph for this function:

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

Convert an INCL particle to a G4DynamicParticle.

Definition at line 558 of file G4INCLXXInterface.cc.

References G4INCL::KinematicsUtils::energy(), MeV, and toG4ParticleDefinition().

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 
) const
private

Convert A and Z to a G4ParticleDefinition.

Definition at line 541 of file G4INCLXXInterface.cc.

References G4Alpha::Alpha(), G4Deuteron::Deuteron(), G4IonTable::GetIon(), G4He3::He3(), G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), G4PionZero::PionZero(), G4Proton::Proton(), 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 537 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 523 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 509 of file G4INCLXXInterface.cc.

References G4Alpha::Alpha(), G4INCL::Composite, G4Deuteron::Deuteron(), G4GenericIon::GenericIon(), G4ParticleDefinition::GetParticleType(), G4He3::He3(), 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.

Referenced by ApplyYourself().

G4bool G4INCLXXInterface::complainedAboutPreCompound
private

Definition at line 179 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself().

G4bool G4INCLXXInterface::dumpRemnantInfo
private

Definition at line 183 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadronicInteraction* G4INCLXXInterface::theBackupModel
private

Definition at line 172 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadronicInteraction* G4INCLXXInterface::theBackupModelNucleon
private

Definition 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.

Referenced by ApplyYourself(), and DeleteModel().

G4FissionProbability* G4INCLXXInterface::theINCLXXFissionProbability
private

Definition at line 186 of file G4INCLXXInterface.hh.

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

G4VLevelDensityParameter* G4INCLXXInterface::theINCLXXLevelDensity
private

Definition 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.

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

G4IonTable* const G4INCLXXInterface::theIonTable
private

Definition at line 181 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and toG4ParticleDefinition().

G4VPreCompoundModel* G4INCLXXInterface::thePreCompoundModel
private

Definition at line 168 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadFinalState G4INCLXXInterface::theResult
private

Definition at line 170 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself().

G4INCLXXVInterfaceTally* G4INCLXXInterface::theTally
private

Definition at line 176 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself().


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