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

#include <G4IonQMDPhysics.hh>

Inheritance diagram for G4IonQMDPhysics:

Public Member Functions

 G4IonQMDPhysics (G4int verb=0)
 G4IonQMDPhysics (const G4String &name, G4int ver=0)
 ~G4IonQMDPhysics () 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 ()
void SetPhysicsName (const G4String &="")
const G4StringGetPhysicsName () const
void SetPhysicsType (G4int)
G4int GetPhysicsType () const
G4int GetInstanceID () const
virtual void TerminateWorker ()
void SetVerboseLevel (G4int value)
G4int GetVerboseLevel () const

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)
Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel = 0
G4String namePhysics = ""
G4int typePhysics = 0
G4ParticleTabletheParticleTable = nullptr
G4int g4vpcInstanceID = 0
Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager

Detailed Description

Definition at line 52 of file G4IonQMDPhysics.hh.

Constructor & Destructor Documentation

◆ G4IonQMDPhysics() [1/2]

G4IonQMDPhysics::G4IonQMDPhysics ( G4int verb = 0)

Definition at line 82 of file G4IonQMDPhysics.cc.

83 : G4IonQMDPhysics("IonQMD", ver)
84{}
G4IonQMDPhysics(G4int verb=0)

Referenced by G4IonQMDPhysics().

◆ G4IonQMDPhysics() [2/2]

G4IonQMDPhysics::G4IonQMDPhysics ( const G4String & name,
G4int ver = 0 )

Definition at line 86 of file G4IonQMDPhysics.cc.

87 : G4VPhysicsConstructor(nname), verbose(ver)
88{
89 eminQMD = 100.*MeV;
90 emaxQMD = 10.*GeV;
91 overlap = 10*MeV;
93 G4DeexPrecoParameters* param = G4NuclearLevelData::GetInstance()->GetParameters();
95 if(verbose > 1) { G4cout << "### IonPhysics: " << nname << G4endl; }
96}
@ bIons
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
void SetDeexChannelsType(G4DeexChannelType)
G4DeexPrecoParameters * GetParameters()
static G4NuclearLevelData * GetInstance()
G4VPhysicsConstructor(const G4String &="")

◆ ~G4IonQMDPhysics()

G4IonQMDPhysics::~G4IonQMDPhysics ( )
override

Definition at line 98 of file G4IonQMDPhysics.cc.

99{}

Member Function Documentation

◆ ConstructParticle()

void G4IonQMDPhysics::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 165 of file G4IonQMDPhysics.cc.

166{
167 // Construct light ions
168 G4IonConstructor pConstructor;
169 pConstructor.ConstructParticle();
170}
static void ConstructParticle()

◆ ConstructProcess()

void G4IonQMDPhysics::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 101 of file G4IonQMDPhysics.cc.

102{
103 G4HadronicInteraction* p =
105 G4PreCompoundModel* thePreCompound = static_cast<G4PreCompoundModel*>(p);
106 if(!thePreCompound) { thePreCompound = new G4PreCompoundModel; }
107
108 G4BinaryLightIonReaction* theIonBC = new G4BinaryLightIonReaction(thePreCompound);
109 theIonBC->SetMaxEnergy(eminQMD + overlap);
110
113 G4HadronicInteraction* theFTFP = nullptr;
114 if(emax > emaxQMD) {
115 G4FTFBuilder theFTFPBuilder("FTFP",thePreCompound);
116 theFTFP = theFTFPBuilder.GetModel();
117 theFTFP->SetMinEnergy(emaxQMD - overlap);
118 theFTFP->SetMaxEnergy(emax);
119 }
120
121 G4QMDReaction* theQMD = new G4QMDReaction();
122 theQMD->SetMinEnergy(eminQMD);
123 theQMD->SetMaxEnergy(emaxQMD);
124
125 G4VCrossSectionDataSet* theNuclNuclData =
126 new G4CrossSectionInelastic( new G4ComponentGGNuclNuclXsc() );
127
128 AddProcess("dInelastic", G4Deuteron::Deuteron(), theIonBC, theQMD, theFTFP, theNuclNuclData);
129 AddProcess("tInelastic", G4Triton::Triton(), theIonBC, theQMD, theFTFP, theNuclNuclData);
130 AddProcess("He3Inelastic", G4He3::He3(), theIonBC, theQMD, theFTFP, theNuclNuclData);
131 AddProcess("alphaInelastic", G4Alpha::Alpha(), theIonBC, theQMD, theFTFP, theNuclNuclData);
132 AddProcess("ionInelastic", G4GenericIon::GenericIon(), theIonBC, theQMD, theFTFP, theNuclNuclData);
133}
double G4double
Definition G4Types.hh:83
static G4Alpha * Alpha()
Definition G4Alpha.cc:83
static G4Deuteron * Deuteron()
Definition G4Deuteron.cc:90
static G4GenericIon * GenericIon()
G4HadronicInteraction * FindModel(const G4String &name)
static G4HadronicInteractionRegistry * Instance()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
static G4HadronicParameters * Instance()
G4double GetMaxEnergyTransitionFTF_Cascade() const
static G4He3 * He3()
Definition G4He3.cc:90
static G4Triton * Triton()
Definition G4Triton.cc:90

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