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

#include <G4HadronPhysicsQGSP_BIC.hh>

+ Inheritance diagram for G4HadronPhysicsQGSP_BIC:

Public Member Functions

 G4HadronPhysicsQGSP_BIC (G4int verbose=1)
 
 G4HadronPhysicsQGSP_BIC (const G4String &name, G4bool quasiElastic=true)
 
 ~G4HadronPhysicsQGSP_BIC () override
 
void ConstructParticle () override
 
void ConstructProcess () override
 
 G4HadronPhysicsQGSP_BIC (G4HadronPhysicsQGSP_BIC &)=delete
 
G4HadronPhysicsQGSP_BICoperator= (const G4HadronPhysicsQGSP_BIC &right)=delete
 
- 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 Member Functions

void CreateModels ()
 
virtual void Neutron ()
 
virtual void Proton ()
 
virtual void Pion ()
 
virtual void Others ()
 
virtual void DumpBanner ()
 
- 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

G4double minQGSP_neutron
 
G4double minQGSP_proton
 
G4double minQGSP_pik
 
G4double maxFTFP_proton
 
G4double maxFTFP_neutron
 
G4double maxFTFP_pik
 
G4double minFTFP_proton
 
G4double minFTFP_neutron
 
G4double minFTFP_pik
 
G4double maxBIC_proton
 
G4double minBIC_neutron
 
G4double minBIC_proton
 
G4double maxBIC_neutron
 
G4double maxBERT_pik
 
G4bool QuasiElasticFTF
 
G4bool QuasiElasticQGS
 
- 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
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 50 of file G4HadronPhysicsQGSP_BIC.hh.

Constructor & Destructor Documentation

◆ G4HadronPhysicsQGSP_BIC() [1/3]

G4HadronPhysicsQGSP_BIC::G4HadronPhysicsQGSP_BIC ( G4int  verbose = 1)

Definition at line 87 of file G4HadronPhysicsQGSP_BIC.cc.

88 : G4HadronPhysicsQGSP_BIC("hInelastic QGSP_BIC",true)
89{}

◆ G4HadronPhysicsQGSP_BIC() [2/3]

G4HadronPhysicsQGSP_BIC::G4HadronPhysicsQGSP_BIC ( const G4String name,
G4bool  quasiElastic = true 
)

Definition at line 91 of file G4HadronPhysicsQGSP_BIC.cc.

93{
94 QuasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
95 QuasiElasticQGS= true; // For QGS, it must use it.
106}
static G4HadronicParameters * Instance()
G4double GetMinEnergyTransitionFTF_Cascade() const
G4double GetMinEnergyTransitionQGS_FTF() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergyTransitionQGS_FTF() const

◆ ~G4HadronPhysicsQGSP_BIC()

G4HadronPhysicsQGSP_BIC::~G4HadronPhysicsQGSP_BIC ( )
override

Definition at line 247 of file G4HadronPhysicsQGSP_BIC.cc.

248{}

◆ G4HadronPhysicsQGSP_BIC() [3/3]

G4HadronPhysicsQGSP_BIC::G4HadronPhysicsQGSP_BIC ( G4HadronPhysicsQGSP_BIC )
delete

Member Function Documentation

◆ ConstructParticle()

void G4HadronPhysicsQGSP_BIC::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 250 of file G4HadronPhysicsQGSP_BIC.cc.

251{
252 G4MesonConstructor pMesonConstructor;
253 pMesonConstructor.ConstructParticle();
254
255 G4BaryonConstructor pBaryonConstructor;
256 pBaryonConstructor.ConstructParticle();
257
258 G4ShortLivedConstructor pShortLivedConstructor;
259 pShortLivedConstructor.ConstructParticle();
260
261 G4IonConstructor pIonConstructor;
262 pIonConstructor.ConstructParticle();
263}
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()

◆ ConstructProcess()

void G4HadronPhysicsQGSP_BIC::ConstructProcess ( )
overridevirtual

◆ CreateModels()

void G4HadronPhysicsQGSP_BIC::CreateModels ( )
protected

Definition at line 108 of file G4HadronPhysicsQGSP_BIC.cc.

109{
110 Neutron();
111 Proton();
112 Pion();
113 Others();
114}

Referenced by ConstructProcess().

◆ DumpBanner()

virtual void G4HadronPhysicsQGSP_BIC::DumpBanner ( )
inlineprotectedvirtual

Definition at line 71 of file G4HadronPhysicsQGSP_BIC.hh.

71{}

Referenced by ConstructProcess().

◆ Neutron()

void G4HadronPhysicsQGSP_BIC::Neutron ( )
protectedvirtual

Reimplemented in G4HadronPhysicsQGSP_BIC_HP.

Definition at line 116 of file G4HadronPhysicsQGSP_BIC.cc.

117{
119 G4bool useFactorXS = param->ApplyFactorXS();
120
121 auto neu = new G4NeutronBuilder;
122 AddBuilder(neu);
124 AddBuilder(qgs);
125 qgs->SetMinEnergy(minQGSP_neutron);
126 neu->RegisterMe(qgs);
128 AddBuilder(ftf);
129 ftf->SetMinEnergy(minFTFP_neutron);
130 ftf->SetMaxEnergy(maxFTFP_neutron);
131 neu->RegisterMe(ftf);
132 auto bic = new G4BinaryNeutronBuilder;
133 AddBuilder(bic);
134 bic->SetMinEnergy(minBIC_neutron);
135 bic->SetMaxEnergy(maxBIC_neutron);
136 neu->RegisterMe(bic);
137 neu->Build();
138
141 if(inel) {
142 inel->AddDataSet(new G4NeutronInelasticXS());
143 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
144 }
146 if (capture) {
147 capture->RegisterMe(new G4NeutronRadCapture());
148 }
149}
bool G4bool
Definition: G4Types.hh:86
G4double XSFactorNucleonInelastic() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void MultiplyCrossSectionBy(G4double factor)
void RegisterMe(G4HadronicInteraction *a)
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
static G4HadronicProcess * FindCaptureProcess(const G4ParticleDefinition *)
void AddBuilder(G4PhysicsBuilderInterface *bld)

Referenced by CreateModels().

◆ operator=()

G4HadronPhysicsQGSP_BIC & G4HadronPhysicsQGSP_BIC::operator= ( const G4HadronPhysicsQGSP_BIC right)
delete

◆ Others()

void G4HadronPhysicsQGSP_BIC::Others ( )
protectedvirtual

Definition at line 227 of file G4HadronPhysicsQGSP_BIC.cc.

228{
230
231 // high energy particles
232 if( param->GetMaxEnergy() > param->EnergyThresholdForHeavyHadrons() ) {
233
234 // anti light ions
236
237 // hyperons
239
240 // b-, c- baryons and mesons
241 if( param->EnableBCParticles() ) {
243 }
244 }
245}
static void BuildHyperonsQGSP_FTFP_BERT(G4bool quasiElastic)
static void BuildAntiLightIonsFTFP()
static void BuildBCHadronsQGSP_FTFP_BERT(G4bool quasiElastic)
G4bool EnableBCParticles() const
G4double EnergyThresholdForHeavyHadrons() const
G4double GetMaxEnergy() const

Referenced by CreateModels().

◆ Pion()

void G4HadronPhysicsQGSP_BIC::Pion ( )
protectedvirtual

Definition at line 181 of file G4HadronPhysicsQGSP_BIC.cc.

182{
184 G4bool useFactorXS = param->ApplyFactorXS();
185
186 auto pik = new G4PiKBuilder();
187 AddBuilder(pik);
188 auto qgs = new G4QGSPPiKBuilder(QuasiElasticQGS);
189 AddBuilder(qgs);
190 qgs->SetMinEnergy(minQGSP_pik);
191 pik->RegisterMe(qgs);
192 auto ftf = new G4FTFPPiKBuilder(QuasiElasticFTF);
193 AddBuilder(ftf);
194 ftf->SetMaxEnergy(maxFTFP_pik);
195 ftf->SetMinEnergy(minFTFP_pik);
196 pik->RegisterMe(ftf);
197 auto bert = new G4BertiniPiKBuilder();
198 AddBuilder(bert);
199 bert->SetMaxEnergy(maxBERT_pik);
200 pik->RegisterMe(bert);
201 pik->Build();
202
203 // add cross section factor
204 if( useFactorXS ) {
207 if(inel) {
209 }
212 if(inel) {
214 }
216 for( auto & pdg : G4HadParticles::GetKaons() ) {
217 auto part = table->FindParticle( pdg );
218 if ( part == nullptr ) { continue; }
220 if(inel) {
222 }
223 }
224 }
225}
static const std::vector< G4int > & GetKaons()
G4double XSFactorHadronInelastic() const
G4double XSFactorPionInelastic() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
static G4PionMinus * PionMinus()
Definition: G4PionMinus.cc:97
static G4PionPlus * PionPlus()
Definition: G4PionPlus.cc:97
G4bool pion(G4int ityp)

Referenced by CreateModels().

◆ Proton()

void G4HadronPhysicsQGSP_BIC::Proton ( )
protectedvirtual

Reimplemented in G4HadronPhysicsQGSP_BIC_AllHP.

Definition at line 151 of file G4HadronPhysicsQGSP_BIC.cc.

152{
154 G4bool useFactorXS = param->ApplyFactorXS();
155
156 auto pro = new G4ProtonBuilder;
157 AddBuilder(pro);
158 auto qgs = new G4QGSPProtonBuilder(QuasiElasticQGS);
159 AddBuilder(qgs);
160 qgs->SetMinEnergy(minQGSP_proton);
161 pro->RegisterMe(qgs);
162 auto ftf = new G4FTFPProtonBuilder(QuasiElasticFTF);
163 AddBuilder(ftf);
164 ftf->SetMinEnergy(minFTFP_proton);
165 ftf->SetMaxEnergy(maxFTFP_proton);
166 pro->RegisterMe(ftf);
167 auto bic = new G4BinaryProtonBuilder;
168 AddBuilder(bic);
169 bic->SetMinEnergy(minBIC_proton);
170 bic->SetMaxEnergy(maxBIC_proton);
171 pro->RegisterMe(bic);
172 pro->Build();
173
176 if(inel) {
177 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
178 }
179}
static G4Proton * Proton()
Definition: G4Proton.cc:92

Referenced by CreateModels().

Member Data Documentation

◆ maxBERT_pik

G4double G4HadronPhysicsQGSP_BIC::maxBERT_pik
protected

Definition at line 86 of file G4HadronPhysicsQGSP_BIC.hh.

Referenced by ConstructProcess(), G4HadronPhysicsQGSP_BIC(), and Pion().

◆ maxBIC_neutron

G4double G4HadronPhysicsQGSP_BIC::maxBIC_neutron
protected

◆ maxBIC_proton

G4double G4HadronPhysicsQGSP_BIC::maxBIC_proton
protected

◆ maxFTFP_neutron

G4double G4HadronPhysicsQGSP_BIC::maxFTFP_neutron
protected

◆ maxFTFP_pik

G4double G4HadronPhysicsQGSP_BIC::maxFTFP_pik
protected

Definition at line 78 of file G4HadronPhysicsQGSP_BIC.hh.

Referenced by ConstructProcess(), G4HadronPhysicsQGSP_BIC(), and Pion().

◆ maxFTFP_proton

G4double G4HadronPhysicsQGSP_BIC::maxFTFP_proton
protected

◆ minBIC_neutron

◆ minBIC_proton

◆ minFTFP_neutron

G4double G4HadronPhysicsQGSP_BIC::minFTFP_neutron
protected

◆ minFTFP_pik

G4double G4HadronPhysicsQGSP_BIC::minFTFP_pik
protected

Definition at line 81 of file G4HadronPhysicsQGSP_BIC.hh.

Referenced by ConstructProcess(), G4HadronPhysicsQGSP_BIC(), and Pion().

◆ minFTFP_proton

G4double G4HadronPhysicsQGSP_BIC::minFTFP_proton
protected

◆ minQGSP_neutron

G4double G4HadronPhysicsQGSP_BIC::minQGSP_neutron
protected

◆ minQGSP_pik

G4double G4HadronPhysicsQGSP_BIC::minQGSP_pik
protected

Definition at line 75 of file G4HadronPhysicsQGSP_BIC.hh.

Referenced by ConstructProcess(), G4HadronPhysicsQGSP_BIC(), and Pion().

◆ minQGSP_proton

G4double G4HadronPhysicsQGSP_BIC::minQGSP_proton
protected

◆ QuasiElasticFTF

G4bool G4HadronPhysicsQGSP_BIC::QuasiElasticFTF
protected

◆ QuasiElasticQGS

G4bool G4HadronPhysicsQGSP_BIC::QuasiElasticQGS
protected

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