Geant4 11.1.1
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)
 
virtual ~G4HadronPhysicsQGSP_BIC ()
 
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
 
G4int GetInstanceID () const
 
virtual void TerminateWorker ()
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 

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 = 0
 
G4String namePhysics = ""
 
G4int typePhysics = 0
 
G4ParticleTabletheParticleTable = nullptr
 
G4int g4vpcInstanceID = 0
 

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{
91}
static G4HadronicParameters * Instance()
void SetVerboseLevel(const G4int val)

◆ G4HadronPhysicsQGSP_BIC() [2/3]

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

Definition at line 93 of file G4HadronPhysicsQGSP_BIC.cc.

95{
97 QuasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
98 QuasiElasticQGS= true; // For QGS, it must use it.
109}
@ bHadronInelastic
G4double GetMinEnergyTransitionFTF_Cascade() const
G4double GetMinEnergyTransitionQGS_FTF() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergyTransitionQGS_FTF() const

◆ ~G4HadronPhysicsQGSP_BIC()

G4HadronPhysicsQGSP_BIC::~G4HadronPhysicsQGSP_BIC ( )
virtual

Definition at line 250 of file G4HadronPhysicsQGSP_BIC.cc.

251{}

◆ 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 253 of file G4HadronPhysicsQGSP_BIC.cc.

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

◆ ConstructProcess()

void G4HadronPhysicsQGSP_BIC::ConstructProcess ( )
overridevirtual

◆ CreateModels()

void G4HadronPhysicsQGSP_BIC::CreateModels ( )
protected

Definition at line 111 of file G4HadronPhysicsQGSP_BIC.cc.

112{
113 Neutron();
114 Proton();
115 Pion();
116 Others();
117}

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 119 of file G4HadronPhysicsQGSP_BIC.cc.

120{
122 G4bool useFactorXS = param->ApplyFactorXS();
123
124 auto neu = new G4NeutronBuilder;
125 AddBuilder(neu);
127 AddBuilder(qgs);
128 qgs->SetMinEnergy(minQGSP_neutron);
129 neu->RegisterMe(qgs);
131 AddBuilder(ftf);
132 ftf->SetMinEnergy(minFTFP_neutron);
133 ftf->SetMaxEnergy(maxFTFP_neutron);
134 neu->RegisterMe(ftf);
135 auto bic = new G4BinaryNeutronBuilder;
136 AddBuilder(bic);
137 bic->SetMinEnergy(minBIC_neutron);
138 bic->SetMaxEnergy(maxBIC_neutron);
139 neu->RegisterMe(bic);
140 neu->Build();
141
144 if(inel) {
145 inel->AddDataSet(new G4NeutronInelasticXS());
146 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
147 }
149 if (capture) {
150 capture->RegisterMe(new G4NeutronRadCapture());
151 }
152}
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 230 of file G4HadronPhysicsQGSP_BIC.cc.

231{
233
234 // high energy particles
235 if( param->GetMaxEnergy() > param->EnergyThresholdForHeavyHadrons() ) {
236
237 // anti light ions
239
240 // hyperons
242
243 // b-, c- baryons and mesons
244 if( param->EnableBCParticles() ) {
246 }
247 }
248}
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 184 of file G4HadronPhysicsQGSP_BIC.cc.

185{
187 G4bool useFactorXS = param->ApplyFactorXS();
188
189 auto pik = new G4PiKBuilder();
190 AddBuilder(pik);
191 auto qgs = new G4QGSPPiKBuilder(QuasiElasticQGS);
192 AddBuilder(qgs);
193 qgs->SetMinEnergy(minQGSP_pik);
194 pik->RegisterMe(qgs);
195 auto ftf = new G4FTFPPiKBuilder(QuasiElasticFTF);
196 AddBuilder(ftf);
197 ftf->SetMaxEnergy(maxFTFP_pik);
198 ftf->SetMinEnergy(minFTFP_pik);
199 pik->RegisterMe(ftf);
200 auto bert = new G4BertiniPiKBuilder();
201 AddBuilder(bert);
202 bert->SetMaxEnergy(maxBERT_pik);
203 pik->RegisterMe(bert);
204 pik->Build();
205
206 // add cross section factor
207 if( useFactorXS ) {
210 if(inel) {
212 }
215 if(inel) {
217 }
219 for( auto & pdg : G4HadParticles::GetKaons() ) {
220 auto part = table->FindParticle( pdg );
221 if ( part == nullptr ) { continue; }
223 if(inel) {
225 }
226 }
227 }
228}
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 154 of file G4HadronPhysicsQGSP_BIC.cc.

155{
157 G4bool useFactorXS = param->ApplyFactorXS();
158
159 auto pro = new G4ProtonBuilder;
160 AddBuilder(pro);
161 auto qgs = new G4QGSPProtonBuilder(QuasiElasticQGS);
162 AddBuilder(qgs);
163 qgs->SetMinEnergy(minQGSP_proton);
164 pro->RegisterMe(qgs);
165 auto ftf = new G4FTFPProtonBuilder(QuasiElasticFTF);
166 AddBuilder(ftf);
167 ftf->SetMinEnergy(minFTFP_proton);
168 ftf->SetMaxEnergy(maxFTFP_proton);
169 pro->RegisterMe(ftf);
170 auto bic = new G4BinaryProtonBuilder;
171 AddBuilder(bic);
172 bic->SetMinEnergy(minBIC_proton);
173 bic->SetMaxEnergy(maxBIC_proton);
174 pro->RegisterMe(bic);
175 pro->Build();
176
179 if(inel) {
180 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
181 }
182}
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: