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

#include <G4IonPhysicsPHP.hh>

Inheritance diagram for G4IonPhysicsPHP:

Public Member Functions

 G4IonPhysicsPHP (G4int ver=0)
 G4IonPhysicsPHP (const G4String &nname, G4int ver=0)
 ~G4IonPhysicsPHP () 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 53 of file G4IonPhysicsPHP.hh.

Constructor & Destructor Documentation

◆ G4IonPhysicsPHP() [1/2]

G4IonPhysicsPHP::G4IonPhysicsPHP ( G4int ver = 0)

Definition at line 75 of file G4IonPhysicsPHP.cc.

76 : G4IonPhysicsPHP( "ionInelasticFTFP_BIC_PHP", ver)
77{}
G4IonPhysicsPHP(G4int ver=0)

Referenced by G4IonPhysicsPHP().

◆ G4IonPhysicsPHP() [2/2]

G4IonPhysicsPHP::G4IonPhysicsPHP ( const G4String & nname,
G4int ver = 0 )

Definition at line 79 of file G4IonPhysicsPHP.cc.

80 : G4VPhysicsConstructor( nname ), verbose( ver )
81{
83 G4DeexPrecoParameters* param = G4NuclearLevelData::GetInstance()->GetParameters();
85 if ( verbose > 1 ) G4cout << "### G4IonPhysics: " << nname << G4endl;
86}
@ bIons
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
void SetDeexChannelsType(G4DeexChannelType)
G4DeexPrecoParameters * GetParameters()
static G4NuclearLevelData * GetInstance()
G4VPhysicsConstructor(const G4String &="")

◆ ~G4IonPhysicsPHP()

G4IonPhysicsPHP::~G4IonPhysicsPHP ( )
override

Definition at line 88 of file G4IonPhysicsPHP.cc.

88 {
89}

Member Function Documentation

◆ ConstructParticle()

void G4IonPhysicsPHP::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 91 of file G4IonPhysicsPHP.cc.

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

◆ ConstructProcess()

void G4IonPhysicsPHP::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 97 of file G4IonPhysicsPHP.cc.

97 {
98
99 const G4double maxPHP = 200.0*MeV;
100 const G4double overlapPHP_BIC = 10.0*MeV;
104
105 G4HadronicInteraction* p =
107 G4PreCompoundModel* thePreCompound = static_cast< G4PreCompoundModel* >(p);
108 if ( ! thePreCompound ) thePreCompound = new G4PreCompoundModel;
109
110 // Binary Cascade
111 G4HadronicInteraction* theIonBC1 = new G4BinaryLightIonReaction( thePreCompound );
112 theIonBC1->SetMinEnergy( 0.0 ); // Used for generic ions
113 theIonBC1->SetMaxEnergy( maxBIC );
114
115 G4HadronicInteraction* theIonBC2 = new G4BinaryLightIonReaction( thePreCompound );
116 theIonBC2->SetMinEnergy( maxPHP - overlapPHP_BIC ); // Used for d, t, He3, alpha
117 theIonBC2->SetMaxEnergy( maxBIC );
118
119 // FTFP
120 G4HadronicInteraction* theFTFP = nullptr;
121 if(maxFTF > maxBIC) {
122 G4FTFBuilder theBuilder( "FTFP", thePreCompound );
123 theFTFP = theBuilder.GetModel();
124 theFTFP->SetMinEnergy( minFTF );
125 theFTFP->SetMaxEnergy( maxFTF );
126 }
127
128 G4CrossSectionInelastic* theNuclNuclData =
129 new G4CrossSectionInelastic( new G4ComponentGGNuclNuclXsc() );
130
131 // ParticleHP : deuteron
132 G4HadronicInteraction* modelDeuteronPHP =
133 new G4ParticleHPInelastic( G4Deuteron::Deuteron(), "ParticleHPInelastic" );
134 modelDeuteronPHP->SetMinEnergy( 0.0 );
135 modelDeuteronPHP->SetMaxEnergy( maxPHP );
136 G4ParticleHPInelasticData* theDeuteronHPInelasticData =
137 new G4ParticleHPInelasticData( G4Deuteron::Deuteron() );
138 theDeuteronHPInelasticData->SetMinKinEnergy( 0.0 );
139 theDeuteronHPInelasticData->SetMaxKinEnergy( maxPHP );
140
141 // ParticleHP : triton
142 G4HadronicInteraction* modelTritonPHP =
143 new G4ParticleHPInelastic( G4Triton::Triton(), "ParticleHPInelastic" );
144 modelTritonPHP->SetMinEnergy( 0.0 );
145 modelTritonPHP->SetMaxEnergy( maxPHP );
146 G4ParticleHPInelasticData* theTritonHPInelasticData =
147 new G4ParticleHPInelasticData( G4Triton::Triton() );
148 theTritonHPInelasticData->SetMinKinEnergy( 0.0 );
149 theTritonHPInelasticData->SetMaxKinEnergy( maxPHP );
150
151 // ParticleHP : 3He
152 G4HadronicInteraction* modelHe3PHP =
153 new G4ParticleHPInelastic( G4He3::He3(), "ParticleHPInelastic" );
154 modelHe3PHP->SetMinEnergy( 0.0 );
155 modelHe3PHP->SetMaxEnergy( maxPHP );
156 G4ParticleHPInelasticData* theHe3HPInelasticData =
157 new G4ParticleHPInelasticData( G4He3::He3() );
158 theHe3HPInelasticData->SetMinKinEnergy( 0.0 );
159 theHe3HPInelasticData->SetMaxKinEnergy( maxPHP );
160
161 // ParticleHP : alpha
162 G4HadronicInteraction* modelAlphaPHP =
163 new G4ParticleHPInelastic( G4Alpha::Alpha(), "ParticleHPInelastic" );
164 modelAlphaPHP->SetMinEnergy( 0.0 );
165 modelAlphaPHP->SetMaxEnergy( maxPHP );
166 G4ParticleHPInelasticData* theAlphaHPInelasticData =
167 new G4ParticleHPInelasticData( G4Alpha::Alpha() );
168 theAlphaHPInelasticData->SetMinKinEnergy( 0.0 );
169 theAlphaHPInelasticData->SetMaxKinEnergy( maxPHP );
170
171 AddProcess( "dInelastic", G4Deuteron::Deuteron(), theDeuteronHPInelasticData,
172 modelDeuteronPHP, theIonBC2, theFTFP, theNuclNuclData);
173 AddProcess( "tInelastic", G4Triton::Triton(), theTritonHPInelasticData,
174 modelTritonPHP, theIonBC2, theFTFP, theNuclNuclData);
175 AddProcess( "He3Inelastic", G4He3::He3(), theHe3HPInelasticData,
176 modelHe3PHP, theIonBC2, theFTFP, theNuclNuclData);
177 AddProcess( "alphaInelastic", G4Alpha::Alpha(), theAlphaHPInelasticData,
178 modelAlphaPHP, theIonBC2, theFTFP, theNuclNuclData);
179 AddProcess( "ionInelastic", G4GenericIon::GenericIon(), nullptr,
180 nullptr, theIonBC1, theFTFP, theNuclNuclData);
181
182 if ( verbose > 1 ) G4cout << "G4IonPhysicsPHP::ConstructProcess done! " << G4endl;
183}
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 GetMinEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
static G4He3 * He3()
Definition G4He3.cc:90
static G4Triton * Triton()
Definition G4Triton.cc:90
void SetMaxKinEnergy(G4double value)
void SetMinKinEnergy(G4double value)

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