Geant4  10.00.p02
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 ()
 
- 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 ModelDescription (std::ostream &outFile) 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)
 

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
 
G4bool complainedAboutBackupModel
 
G4bool complainedAboutPreCompound
 
G4IonTable *const theIonTable
 
G4bool dumpRemnantInfo
 

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 99 of file G4INCLXXInterface.hh.

Constructor & Destructor Documentation

G4INCLXXInterface::G4INCLXXInterface ( G4VPreCompoundModel *const  aPreCompound = 0)

Definition at line 53 of file G4INCLXXInterface.cc.

References dumpRemnantInfo, G4INCLXXInterfaceStore::EmitWarning(), G4HadronicInteractionRegistry::FindModel(), G4HadronicInteractionRegistry::Instance(), theBackupModel, theBackupModelNucleon, G4VIntraNuclearTransportModel::theDeExcitation, theInterfaceStore, and thePreCompoundModel.

+ Here is the call graph for this function:

G4INCLXXInterface::~G4INCLXXInterface ( )

Definition at line 92 of file G4INCLXXInterface.cc.

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 96 of file G4INCLXXInterface.cc.

References G4INCLXXInterfaceStore::EmitWarning(), 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 141 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, 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::GetPDGMass(), G4HadFinalState::GetSecondary(), 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, theBackupModel, theBackupModelNucleon, G4VIntraNuclearTransportModel::theDeExcitation, theINCLModel, theInterfaceStore, theIonTable, thePreCompoundModel, theResult, 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 124 of file G4INCLXXInterface.hh.

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

Definition at line 108 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 104 of file G4INCLXXInterface.hh.

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

Implements G4VIntraNuclearTransportModel.

Definition at line 464 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 532 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 517 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 500 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 496 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 482 of file G4INCLXXInterface.cc.

References G4INCL::Composite, G4ParticleDefinition::GetBaryonNumber(), G4HadProjectile::GetDefinition(), G4ParticleDefinition::GetPDGCharge(), 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 468 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 169 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself().

G4bool G4INCLXXInterface::complainedAboutPreCompound
private

Definition at line 170 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself().

G4bool G4INCLXXInterface::dumpRemnantInfo
private

Definition at line 174 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadronicInteraction* G4INCLXXInterface::theBackupModel
private

Definition at line 164 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadronicInteraction* G4INCLXXInterface::theBackupModelNucleon
private

Definition at line 165 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4INCL::INCL* G4INCLXXInterface::theINCLModel
private

Definition at line 158 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself().

G4INCLXXInterfaceStore* const G4INCLXXInterface::theInterfaceStore
private

Definition at line 167 of file G4INCLXXInterface.hh.

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

G4IonTable* const G4INCLXXInterface::theIonTable
private

Definition at line 172 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and toG4ParticleDefinition().

G4VPreCompoundModel* G4INCLXXInterface::thePreCompoundModel
private

Definition at line 160 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself(), and G4INCLXXInterface().

G4HadFinalState G4INCLXXInterface::theResult
private

Definition at line 162 of file G4INCLXXInterface.hh.

Referenced by ApplyYourself().


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