Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4IonPhysics Class Reference

#include <G4IonPhysics.hh>

+ Inheritance diagram for G4IonPhysics:

Public Member Functions

 G4IonPhysics (G4int ver=0)
 
 G4IonPhysics (const G4String &nname, G4int ver=0)
 
 ~G4IonPhysics () override
 
void ConstructParticle () override
 
void ConstructProcess () override
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
virtual void ConstructParticle ()=0
 
virtual void ConstructProcess ()=0
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 
virtual void TerminateWorker ()
 

Protected Attributes

G4int verbose
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Types inherited from G4VPhysicsConstructor
using PhysicsBuilder_V = G4VPCData::PhysicsBuilders_V
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
PhysicsBuilder_V GetBuilders () const
 
void AddBuilder (G4PhysicsBuilderInterface *bld)
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 48 of file G4IonPhysics.hh.

Constructor & Destructor Documentation

◆ G4IonPhysics() [1/2]

G4IonPhysics::G4IonPhysics ( G4int  ver = 0)

Definition at line 72 of file G4IonPhysics.cc.

73 : G4IonPhysics("ionInelasticFTFP_BIC", ver)
74{}

◆ G4IonPhysics() [2/2]

G4IonPhysics::G4IonPhysics ( const G4String nname,
G4int  ver = 0 
)

Definition at line 78 of file G4IonPhysics.cc.

79 : G4VPhysicsConstructor(nname),verbose(ver)
80{
82 if(verbose > 1) { G4cout << "### IonPhysics: " << nname << G4endl; }
83}
@ bIons
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout

◆ ~G4IonPhysics()

G4IonPhysics::~G4IonPhysics ( )
override

Definition at line 87 of file G4IonPhysics.cc.

88{}

Member Function Documentation

◆ ConstructParticle()

void G4IonPhysics::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 92 of file G4IonPhysics.cc.

93{
94 // Construct ions
95 G4IonConstructor pConstructor;
96 pConstructor.ConstructParticle();
97}
static void ConstructParticle()

◆ ConstructProcess()

void G4IonPhysics::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 101 of file G4IonPhysics.cc.

102{
104
107 G4PreCompoundModel* thePreCompound = static_cast<G4PreCompoundModel*>(p);
108 if(!thePreCompound) { thePreCompound = new G4PreCompoundModel; }
109
110 // Binary Cascade
111 G4HadronicInteraction* theIonBC =
112 new G4BinaryLightIonReaction(thePreCompound);
113 theIonBC->SetMinEnergy( 0.0 );
114 theIonBC->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade() );
115
116 // FTFP
117 G4HadronicInteraction* theFTFP = nullptr;
118 if(emax > theIonBC->GetMaxEnergy()) {
119 G4FTFBuilder theBuilder("FTFP",thePreCompound);
120 theFTFP = theBuilder.GetModel();
121 theFTFP->SetMinEnergy( G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade() );
122 theFTFP->SetMaxEnergy( emax );
123 }
124
125 G4CrossSectionInelastic* theNuclNuclData =
127
128 AddProcess("dInelastic", G4Deuteron::Deuteron(),theIonBC,theFTFP,
129 theNuclNuclData);
130 AddProcess("tInelastic",G4Triton::Triton(),theIonBC,theFTFP,
131 theNuclNuclData);
132 AddProcess("He3Inelastic",G4He3::He3(),theIonBC,theFTFP,
133 theNuclNuclData);
134 AddProcess("alphaInelastic", G4Alpha::Alpha(),theIonBC,theFTFP,
135 theNuclNuclData);
136 AddProcess("ionInelastic",G4GenericIon::GenericIon(),theIonBC,theFTFP,
137 theNuclNuclData);
138
139 if(verbose > 1) {
140 G4cout << "G4IonPhysics::ConstructProcess done! "
141 << G4endl;
142 }
143}
double G4double
Definition: G4Types.hh:83
static G4Alpha * Alpha()
Definition: G4Alpha.cc:88
static G4Deuteron * Deuteron()
Definition: G4Deuteron.cc:93
static G4GenericIon * GenericIon()
Definition: G4GenericIon.cc:92
G4HadronicInteraction * FindModel(const G4String &name)
static G4HadronicInteractionRegistry * Instance()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
static G4HadronicParameters * Instance()
G4double GetMaxEnergy() const
static G4He3 * He3()
Definition: G4He3.cc:93
static G4Triton * Triton()
Definition: G4Triton.cc:94

Member Data Documentation

◆ verbose

G4int G4IonPhysics::verbose
protected

Definition at line 70 of file G4IonPhysics.hh.

Referenced by ConstructProcess(), and G4IonPhysics().


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