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

#include <G4LightIonQMDPhysics.hh>

Inheritance diagram for G4LightIonQMDPhysics:

Public Member Functions

 G4LightIonQMDPhysics (G4int verb=0)
 G4LightIonQMDPhysics (const G4String &name, G4int ver=0)
 ~G4LightIonQMDPhysics () 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 58 of file G4LightIonQMDPhysics.hh.

Constructor & Destructor Documentation

◆ G4LightIonQMDPhysics() [1/2]

G4LightIonQMDPhysics::G4LightIonQMDPhysics ( G4int verb = 0)

Definition at line 88 of file G4LightIonQMDPhysics.cc.

89 : G4LightIonQMDPhysics("LightIonQMD", ver)
90{}

Referenced by G4LightIonQMDPhysics().

◆ G4LightIonQMDPhysics() [2/2]

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

Definition at line 92 of file G4LightIonQMDPhysics.cc.

93 : G4VPhysicsConstructor(nname), verbose(ver)
94{
95 eminLIQMD = 30.*MeV;
96 emaxLIQMD = 500.*MeV;
97 eminQMD = 500.*MeV;
98 emaxQMD = 10.*GeV;
99 overlap = 10*MeV;
101 G4DeexPrecoParameters* param = G4NuclearLevelData::GetInstance()->GetParameters();
103 if(verbose > 1) { G4cout << "### IonPhysics: " << nname << G4endl; }
104}
@ bIons
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
void SetDeexChannelsType(G4DeexChannelType)
G4DeexPrecoParameters * GetParameters()
static G4NuclearLevelData * GetInstance()
G4VPhysicsConstructor(const G4String &="")

◆ ~G4LightIonQMDPhysics()

G4LightIonQMDPhysics::~G4LightIonQMDPhysics ( )
override

Definition at line 106 of file G4LightIonQMDPhysics.cc.

107{}

Member Function Documentation

◆ ConstructParticle()

void G4LightIonQMDPhysics::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 181 of file G4LightIonQMDPhysics.cc.

182{
183 // Construct light ions
184 G4IonConstructor pConstructor;
185 pConstructor.ConstructParticle();
186}
static void ConstructParticle()

◆ ConstructProcess()

void G4LightIonQMDPhysics::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 109 of file G4LightIonQMDPhysics.cc.

110{
111 G4HadronicInteraction* p =
113 G4PreCompoundModel* thePreCompound = static_cast<G4PreCompoundModel*>(p);
114 if(!thePreCompound) { thePreCompound = new G4PreCompoundModel; }
115
116 G4BinaryLightIonReaction* theIonBC = new G4BinaryLightIonReaction(thePreCompound);
117 theIonBC->SetMaxEnergy(eminLIQMD + overlap);
118
119 G4LightIonQMDReaction* theLIQMD = new G4LightIonQMDReaction();
120 theLIQMD->SetMinEnergy(eminLIQMD);
121 theLIQMD->SetMaxEnergy(emaxLIQMD + overlap);
122
125 G4HadronicInteraction* theFTFP = nullptr;
126 if(emax > emaxQMD) {
127 G4FTFBuilder theFTFPBuilder("FTFP",thePreCompound);
128 theFTFP = theFTFPBuilder.GetModel();
129 theFTFP->SetMinEnergy(emaxQMD - overlap);
130 theFTFP->SetMaxEnergy(emax);
131 }
132
133 G4QMDReaction* theQMD = new G4QMDReaction();
134 theQMD->SetMinEnergy(eminQMD);
135 theQMD->SetMaxEnergy(emaxQMD);
136
137 G4VCrossSectionDataSet* theNuclNuclData =
138 new G4CrossSectionInelastic( new G4ComponentGGNuclNuclXsc() );
139
140 AddProcess("protonInelastic", G4Proton::Proton(), theIonBC, theQMD, theLIQMD, theFTFP, theNuclNuclData);
141 AddProcess("dInelastic", G4Deuteron::Deuteron(), theIonBC, theQMD, theLIQMD, theFTFP, theNuclNuclData);
142 AddProcess("tInelastic", G4Triton::Triton(), theIonBC, theQMD, theLIQMD, theFTFP, theNuclNuclData);
143 AddProcess("He3Inelastic", G4He3::He3(), theIonBC, theQMD, theLIQMD, theFTFP, theNuclNuclData);
144 AddProcess("alphaInelastic", G4Alpha::Alpha(), theIonBC, theQMD, theLIQMD, theFTFP, theNuclNuclData);
145 AddProcess("ionInelastic", G4GenericIon::GenericIon(), theIonBC, theQMD, theLIQMD, theFTFP, theNuclNuclData);
146}
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 G4Proton * Proton()
Definition G4Proton.cc:90
static G4Triton * Triton()
Definition G4Triton.cc:90

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