Geant4 10.7.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 ()
 
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 ()
 

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
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- 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() [2/2]

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

Definition at line 79 of file G4IonPhysicsPHP.cc.

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

◆ ~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
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 =
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 =
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 =
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 =
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 =
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: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 GetMinEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergy() const
static G4He3 * He3()
Definition: G4He3.cc:93
static G4Triton * Triton()
Definition: G4Triton.cc:94
void SetMaxKinEnergy(G4double value)
void SetMinKinEnergy(G4double value)

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