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

#include <G4HadronPhysicsFTF_BIC.hh>

+ Inheritance diagram for G4HadronPhysicsFTF_BIC:

Public Member Functions

 G4HadronPhysicsFTF_BIC (G4int verbose=1)
 
 G4HadronPhysicsFTF_BIC (const G4String &name, G4bool quasiElastic=false)
 
virtual ~G4HadronPhysicsFTF_BIC ()
 
 G4HadronPhysicsFTF_BIC (G4HadronPhysicsFTF_BIC &)=delete
 
G4HadronPhysicsFTF_BICoperator= (const G4HadronPhysicsFTF_BIC &right)=delete
 
- Public Member Functions inherited from G4HadronPhysicsFTFP_BERT
 G4HadronPhysicsFTFP_BERT (G4int verbose=1)
 
 G4HadronPhysicsFTFP_BERT (const G4String &name, G4bool quasiElastic=false)
 
virtual ~G4HadronPhysicsFTFP_BERT ()
 
void ConstructParticle () override
 
void ConstructProcess () override
 
 G4HadronPhysicsFTFP_BERT (G4HadronPhysicsFTFP_BERT &)=delete
 
G4HadronPhysicsFTFP_BERToperator= (const G4HadronPhysicsFTFP_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
 
void Kaon () override
 
- Protected Member Functions inherited from G4HadronPhysicsFTFP_BERT
void CreateModels ()
 
virtual void Neutron ()
 
virtual void Proton ()
 
virtual void Pion ()
 
virtual void Kaon ()
 
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 G4HadronPhysicsFTFP_BERT
G4double minFTFP_pion
 
G4double maxBERT_pion
 
G4double minFTFP_kaon
 
G4double maxBERT_kaon
 
G4double minFTFP_proton
 
G4double maxBERT_proton
 
G4double minFTFP_neutron
 
G4double maxBERT_neutron
 
G4double minBERT_proton
 
G4double minBERT_neutron
 
G4bool QuasiElastic
 
- 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 43 of file G4HadronPhysicsFTF_BIC.hh.

Constructor & Destructor Documentation

◆ G4HadronPhysicsFTF_BIC() [1/3]

G4HadronPhysicsFTF_BIC::G4HadronPhysicsFTF_BIC ( G4int  verbose = 1)

Definition at line 69 of file G4HadronPhysicsFTF_BIC.cc.

70 : G4HadronPhysicsFTF_BIC("hInelastic FTF_BIC",false)
71{
73}
static G4HadronicParameters * Instance()
void SetVerboseLevel(const G4int val)

◆ G4HadronPhysicsFTF_BIC() [2/3]

G4HadronPhysicsFTF_BIC::G4HadronPhysicsFTF_BIC ( const G4String name,
G4bool  quasiElastic = false 
)

Definition at line 75 of file G4HadronPhysicsFTF_BIC.cc.

76 : G4HadronPhysicsFTFP_BERT(name, qe)
77{
78 maxBIC_pion = 1.5*CLHEP::GeV;
79 minBERT_pion = 1.0*CLHEP::GeV;
80}

◆ ~G4HadronPhysicsFTF_BIC()

G4HadronPhysicsFTF_BIC::~G4HadronPhysicsFTF_BIC ( )
virtual

Definition at line 82 of file G4HadronPhysicsFTF_BIC.cc.

83{}

◆ G4HadronPhysicsFTF_BIC() [3/3]

G4HadronPhysicsFTF_BIC::G4HadronPhysicsFTF_BIC ( G4HadronPhysicsFTF_BIC )
delete

Member Function Documentation

◆ Kaon()

void G4HadronPhysicsFTF_BIC::Kaon ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsFTFP_BERT.

Definition at line 179 of file G4HadronPhysicsFTF_BIC.cc.

180{
182 G4bool useFactorXS = param->ApplyFactorXS();
183
184 auto k = new G4KaonBuilder;
185 AddBuilder(k);
186 auto ftfk = new G4FTFBinaryKaonBuilder(QuasiElastic);
187 AddBuilder(ftfk);
188 k->RegisterMe(ftfk);
189 auto bertk = new G4BertiniKaonBuilder;
190 AddBuilder(bertk);
191 k->RegisterMe(bertk);
192 bertk->SetMaxEnergy(maxBERT_kaon);
193 k->Build();
194 // add cross section factor
195 if( useFactorXS ) {
197 for( auto & pdg : G4HadParticles::GetKaons() ) {
198 auto part = table->FindParticle( pdg );
199 if ( part == nullptr ) { continue; }
201 if(nullptr != inel) {
203 }
204 }
205 }
206}
bool G4bool
Definition: G4Types.hh:86
static const std::vector< G4int > & GetKaons()
G4double XSFactorHadronInelastic() const
void MultiplyCrossSectionBy(G4double factor)
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
void AddBuilder(G4PhysicsBuilderInterface *bld)

◆ Neutron()

void G4HadronPhysicsFTF_BIC::Neutron ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsFTFP_BERT.

Definition at line 85 of file G4HadronPhysicsFTF_BIC.cc.

86{
88 G4bool useFactorXS = param->ApplyFactorXS();
89 //General schema:
90 // 1) Create a builder
91 // 2) Call AddBuilder
92 // 3) Configure the builder, possibly with sub-builders
93 // 4) Call builder->Build()
94 auto neu = new G4NeutronBuilder;
95 AddBuilder(neu);
97 AddBuilder( ftfn );
98 neu->RegisterMe(ftfn);
99 auto bicn = new G4BinaryNeutronBuilder;
100 AddBuilder(bicn);
101 neu->RegisterMe(bicn);
102 bicn->SetMinEnergy(0.0);
103 bicn->SetMaxEnergy(maxBERT_neutron);
104 neu->Build();
105
106 // add cross section factor
109 if(nullptr != inel) {
110 inel->AddDataSet(new G4NeutronInelasticXS());
111 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
112 }
114 if (nullptr != capture) {
115 capture->RegisterMe(new G4NeutronRadCapture());
116 }
117}
G4double XSFactorNucleonInelastic() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103
static G4HadronicProcess * FindCaptureProcess(const G4ParticleDefinition *)

◆ operator=()

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

◆ Pion()

void G4HadronPhysicsFTF_BIC::Pion ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsFTFP_BERT.

Definition at line 143 of file G4HadronPhysicsFTF_BIC.cc.

144{
146 G4bool useFactorXS = param->ApplyFactorXS();
147
148 auto pi = new G4PionBuilder;
149 AddBuilder(pi);
150 auto ftfpi = new G4FTFBinaryPionBuilder(QuasiElastic);
151 AddBuilder(ftfpi);
152 pi->RegisterMe(ftfpi);
153 auto bertpi = new G4BertiniPionBuilder;
154 AddBuilder(bertpi);
155 bertpi->SetMinEnergy(minBERT_pion);
156 bertpi->SetMaxEnergy(maxBERT_pion);
157 pi->RegisterMe(bertpi);
158 auto bicpi = new G4BinaryPionBuilder;
159 AddBuilder(bicpi);
160 pi->RegisterMe(bicpi);
161 bicpi->SetMaxEnergy(maxBIC_pion);
162 pi->Build();
163
164 // add cross section factor
165 if( useFactorXS ) {
168 if(nullptr != inel) {
170 }
173 if(nullptr != inel) {
175 }
176 }
177}
G4double XSFactorPionInelastic() const
static G4PionMinus * PionMinus()
Definition: G4PionMinus.cc:97
static G4PionPlus * PionPlus()
Definition: G4PionPlus.cc:97
const G4double pi
G4bool pion(G4int ityp)

◆ Proton()

void G4HadronPhysicsFTF_BIC::Proton ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsFTFP_BERT.

Definition at line 119 of file G4HadronPhysicsFTF_BIC.cc.

120{
122 G4bool useFactorXS = param->ApplyFactorXS();
123
124 auto pro = new G4ProtonBuilder;
125 AddBuilder(pro);
126 auto ftfp = new G4FTFBinaryProtonBuilder(QuasiElastic);
127 AddBuilder(ftfp);
128 pro->RegisterMe(ftfp);
129 auto bicp = new G4BinaryProtonBuilder;
130 AddBuilder(bicp);
131 pro->RegisterMe(bicp);
132 bicp->SetMaxEnergy(maxBERT_proton);
133 pro->Build();
134
135 // add cross section factor
138 if(nullptr != inel) {
139 if( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
140 }
141}
static G4Proton * Proton()
Definition: G4Proton.cc:92

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