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

#include <G4HadronPhysicsQGS_BIC.hh>

+ Inheritance diagram for G4HadronPhysicsQGS_BIC:

Public Member Functions

 G4HadronPhysicsQGS_BIC (G4int verbose=1)
 
 G4HadronPhysicsQGS_BIC (const G4String &name, G4bool quasiElastic=true)
 
virtual ~G4HadronPhysicsQGS_BIC ()
 
 G4HadronPhysicsQGS_BIC (G4HadronPhysicsQGS_BIC &)=delete
 
G4HadronPhysicsQGS_BICoperator= (const G4HadronPhysicsQGS_BIC &right)=delete
 
- Public Member Functions inherited from G4HadronPhysicsQGSP_BERT
 G4HadronPhysicsQGSP_BERT (G4int verbose=1)
 
 G4HadronPhysicsQGSP_BERT (const G4String &name, G4bool quasiElastic=true)
 
virtual ~G4HadronPhysicsQGSP_BERT ()
 
void ConstructParticle () override
 
void ConstructProcess () override
 
 G4HadronPhysicsQGSP_BERT (G4HadronPhysicsQGSP_BERT &)=delete
 
G4HadronPhysicsQGSP_BERToperator= (const G4HadronPhysicsQGSP_BERT &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 Neutron () override
 
void Proton () override
 
void Pion () override
 
- Protected Member Functions inherited from G4HadronPhysicsQGSP_BERT
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)
 

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 Attributes inherited from G4HadronPhysicsQGSP_BERT
G4double minQGSP_proton
 
G4double minQGSP_neutron
 
G4double minQGSP_pik
 
G4double minFTFP_proton
 
G4double minFTFP_neutron
 
G4double minFTFP_pik
 
G4double maxFTFP_proton
 
G4double maxFTFP_neutron
 
G4double maxFTFP_pik
 
G4double minBERT_proton
 
G4double minBERT_neutron
 
G4double minBERT_pik
 
G4double maxBERT_proton
 
G4double maxBERT_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
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 44 of file G4HadronPhysicsQGS_BIC.hh.

Constructor & Destructor Documentation

◆ G4HadronPhysicsQGS_BIC() [1/3]

G4HadronPhysicsQGS_BIC::G4HadronPhysicsQGS_BIC ( G4int  verbose = 1)

Definition at line 80 of file G4HadronPhysicsQGS_BIC.cc.

81 : G4HadronPhysicsQGS_BIC("hInelastic QGS_BIC",true)
82{
84}
static G4HadronicParameters * Instance()
void SetVerboseLevel(const G4int val)

◆ G4HadronPhysicsQGS_BIC() [2/3]

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

Definition at line 86 of file G4HadronPhysicsQGS_BIC.cc.

87 : G4HadronPhysicsQGSP_BERT(name, qe)
88{
89 minBERT_pion = 1.0*GeV;
90 maxBIC_pion = 1.5*GeV;
91}

◆ ~G4HadronPhysicsQGS_BIC()

G4HadronPhysicsQGS_BIC::~G4HadronPhysicsQGS_BIC ( )
virtual

Definition at line 93 of file G4HadronPhysicsQGS_BIC.cc.

94{}

◆ G4HadronPhysicsQGS_BIC() [3/3]

G4HadronPhysicsQGS_BIC::G4HadronPhysicsQGS_BIC ( G4HadronPhysicsQGS_BIC )
delete

Member Function Documentation

◆ Neutron()

void G4HadronPhysicsQGS_BIC::Neutron ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsQGSP_BERT.

Definition at line 96 of file G4HadronPhysicsQGS_BIC.cc.

97{
99 G4bool useFactorXS = param->ApplyFactorXS();
100 //General schema:
101 // 1) Create a builder
102 // 2) Call AddBuilder
103 // 3) Configure the builder, possibly with sub-builders
104 // 4) Call builder->Build()
105 auto neu = new G4NeutronBuilder;
106 AddBuilder(neu);
108 AddBuilder(qgs);
109 qgs->SetMinEnergy(minQGSP_neutron);
110 neu->RegisterMe(qgs);
112 AddBuilder(ftf);
113 ftf->SetMinEnergy(minFTFP_neutron);
114 ftf->SetMaxEnergy(maxFTFP_neutron);
115 neu->RegisterMe(ftf);
116 auto bicn = new G4BinaryNeutronBuilder;
117 AddBuilder(bicn);
118 bicn->SetMaxEnergy(maxBERT_neutron);
119 neu->RegisterMe(bicn);
120 neu->Build();
121
124 if(inel) {
125 inel->AddDataSet(new G4NeutronInelasticXS());
126 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
127 }
129 if (capture) {
130 capture->RegisterMe(new G4NeutronRadCapture());
131 }
132}
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)

◆ operator=()

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

◆ Pion()

void G4HadronPhysicsQGS_BIC::Pion ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsQGSP_BERT.

Definition at line 163 of file G4HadronPhysicsQGS_BIC.cc.

164{
166 G4bool useFactorXS = param->ApplyFactorXS();
167
168 auto pi = new G4PionBuilder;
169 AddBuilder(pi);
171 AddBuilder(qgs);
172 qgs->SetMinEnergy(minQGSP_pik);
173 pi->RegisterMe(qgs);
175 AddBuilder(ftf);
176 ftf->SetMinEnergy(minFTFP_pik);
177 ftf->SetMaxEnergy(maxFTFP_pik);
178 pi->RegisterMe(ftf);
179 auto bert = new G4BertiniPionBuilder;
180 AddBuilder(bert);
181 bert->SetMinEnergy(minBERT_pion);
182 bert->SetMaxEnergy(maxBERT_pik);
183 pi->RegisterMe(bert);
184 auto bic = new G4BinaryPionBuilder;
185 AddBuilder(bic);
186 bic->SetMaxEnergy(maxBIC_pion);
187 pi->RegisterMe(bic);
188 pi->Build();
189
190 auto k = new G4KaonBuilder;
191 AddBuilder(k);
193 AddBuilder(qgsk);
194 qgsk->SetMinEnergy(minQGSP_pik);
195 k->RegisterMe(qgsk);
197 AddBuilder(ftfk);
198 ftfk->SetMaxEnergy(maxFTFP_pik);
199 k->RegisterMe(ftfk);
200 auto bertk = new G4BertiniKaonBuilder;
201 AddBuilder(bertk);
202 bertk->SetMaxEnergy(maxBERT_pik);
203 k->RegisterMe(bertk);
204 k->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
const G4double pi
G4bool pion(G4int ityp)

◆ Proton()

void G4HadronPhysicsQGS_BIC::Proton ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsQGSP_BERT.

Definition at line 134 of file G4HadronPhysicsQGS_BIC.cc.

135{
137 G4bool useFactorXS = param->ApplyFactorXS();
138
139 auto pro = new G4ProtonBuilder;
140 AddBuilder(pro);
142 AddBuilder(qgs);
143 qgs->SetMinEnergy(minQGSP_proton);
144 pro->RegisterMe(qgs);
146 AddBuilder(ftf);
147 ftf->SetMinEnergy(minFTFP_proton);
148 ftf->SetMaxEnergy(maxFTFP_proton);
149 pro->RegisterMe(ftf);
150 auto bic = new G4BinaryProtonBuilder;
151 AddBuilder(bic);
152 bic->SetMaxEnergy(maxBERT_proton);
153 pro->RegisterMe(bic);
154 pro->Build();
155
158 if(inel) {
159 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
160 }
161}
static G4Proton * Proton()
Definition: G4Proton.cc:92

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