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

Protected Member Functions

virtual void Neutron ()
 
virtual void Proton ()
 
virtual void Pion ()
 
- 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
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- 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 81 of file G4HadronPhysicsQGS_BIC.cc.

82 : G4HadronPhysicsQGS_BIC("hInelastic QGS_BIC",true) {}

◆ G4HadronPhysicsQGS_BIC() [2/3]

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

Definition at line 84 of file G4HadronPhysicsQGS_BIC.cc.

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

◆ ~G4HadronPhysicsQGS_BIC()

G4HadronPhysicsQGS_BIC::~G4HadronPhysicsQGS_BIC ( )
virtual

Definition at line 91 of file G4HadronPhysicsQGS_BIC.cc.

92{}

◆ G4HadronPhysicsQGS_BIC() [3/3]

G4HadronPhysicsQGS_BIC::G4HadronPhysicsQGS_BIC ( G4HadronPhysicsQGS_BIC )
delete

Member Function Documentation

◆ Neutron()

void G4HadronPhysicsQGS_BIC::Neutron ( )
protectedvirtual

Reimplemented from G4HadronPhysicsQGSP_BERT.

Definition at line 94 of file G4HadronPhysicsQGS_BIC.cc.

95{
97 G4bool useFactorXS = param->ApplyFactorXS();
98 //General schema:
99 // 1) Create a builder
100 // 2) Call AddBuilder
101 // 3) Configure the builder, possibly with sub-builders
102 // 4) Call builder->Build()
103 auto neu = new G4NeutronBuilder;
104 AddBuilder(neu);
106 AddBuilder(qgs);
107 qgs->SetMinEnergy(minQGSP_neutron);
108 neu->RegisterMe(qgs);
110 AddBuilder(ftf);
111 ftf->SetMinEnergy(minFTFP_neutron);
112 ftf->SetMaxEnergy(maxFTFP_neutron);
113 neu->RegisterMe(ftf);
114 auto bicn = new G4BinaryNeutronBuilder;
115 AddBuilder(bicn);
116 bicn->SetMaxEnergy(maxBERT_neutron);
117 neu->RegisterMe(bicn);
118 neu->Build();
119
122 if(inel) {
123 inel->AddDataSet(new G4NeutronInelasticXS());
124 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
125 }
127 if (capture) {
128 capture->RegisterMe(new G4NeutronRadCapture());
129 }
130}
bool G4bool
Definition: G4Types.hh:86
static G4HadronicParameters * Instance()
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 ( )
protectedvirtual

Reimplemented from G4HadronPhysicsQGSP_BERT.

Definition at line 161 of file G4HadronPhysicsQGS_BIC.cc.

162{
164 G4bool useFactorXS = param->ApplyFactorXS();
165
166 auto pi = new G4PionBuilder;
167 AddBuilder(pi);
169 AddBuilder(qgs);
170 qgs->SetMinEnergy(minQGSP_pik);
171 pi->RegisterMe(qgs);
173 AddBuilder(ftf);
174 ftf->SetMinEnergy(minFTFP_pik);
175 ftf->SetMaxEnergy(maxFTFP_pik);
176 pi->RegisterMe(ftf);
177 auto bert = new G4BertiniPionBuilder;
178 AddBuilder(bert);
179 bert->SetMinEnergy(minBERT_pion);
180 bert->SetMaxEnergy(maxBERT_pik);
181 pi->RegisterMe(bert);
182 auto bic = new G4BinaryPionBuilder;
183 AddBuilder(bic);
184 bic->SetMaxEnergy(maxBIC_pion);
185 pi->RegisterMe(bic);
186 pi->Build();
187
188 auto k = new G4KaonBuilder;
189 AddBuilder(k);
191 AddBuilder(qgsk);
192 qgsk->SetMinEnergy(minQGSP_pik);
193 k->RegisterMe(qgsk);
195 AddBuilder(ftfk);
196 ftfk->SetMaxEnergy(maxFTFP_pik);
197 k->RegisterMe(ftfk);
198 auto bertk = new G4BertiniKaonBuilder;
199 AddBuilder(bertk);
200 bertk->SetMaxEnergy(maxBERT_pik);
201 k->RegisterMe(bertk);
202 k->Build();
203
204 // add cross section factor
205 if( useFactorXS ) {
208 if(inel) {
210 }
213 if(inel) {
215 }
217 for( auto & pdg : G4HadParticles::GetKaons() ) {
218 auto part = table->FindParticle( pdg );
219 if ( part == nullptr ) { continue; }
221 if(inel) {
223 }
224 }
225 }
226}
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 ( )
protectedvirtual

Reimplemented from G4HadronPhysicsQGSP_BERT.

Definition at line 132 of file G4HadronPhysicsQGS_BIC.cc.

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

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