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

#include <G4HadronPhysicsFTFQGSP_BERT.hh>

+ Inheritance diagram for G4HadronPhysicsFTFQGSP_BERT:

Public Member Functions

 G4HadronPhysicsFTFQGSP_BERT (G4int verbose=1)
 
 G4HadronPhysicsFTFQGSP_BERT (const G4String &name, G4bool quasiElastic=false)
 
virtual ~G4HadronPhysicsFTFQGSP_BERT ()
 
void ConstructProcess () override
 
 G4HadronPhysicsFTFQGSP_BERT (G4HadronPhysicsFTFQGSP_BERT &)=delete
 
G4HadronPhysicsFTFQGSP_BERToperator= (const G4HadronPhysicsFTFQGSP_BERT &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
 
 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 ()
 
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 DumpBanner () 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 ()
 
- 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 49 of file G4HadronPhysicsFTFQGSP_BERT.hh.

Constructor & Destructor Documentation

◆ G4HadronPhysicsFTFQGSP_BERT() [1/3]

G4HadronPhysicsFTFQGSP_BERT::G4HadronPhysicsFTFQGSP_BERT ( G4int verbose = 1)

Definition at line 81 of file G4HadronPhysicsFTFQGSP_BERT.cc.

82 : G4HadronPhysicsFTFQGSP_BERT("hInelastic FTFQGSP_BERT", false)
83{
85}
static G4HadronicParameters * Instance()
void SetVerboseLevel(const G4int val)

◆ G4HadronPhysicsFTFQGSP_BERT() [2/3]

G4HadronPhysicsFTFQGSP_BERT::G4HadronPhysicsFTFQGSP_BERT ( const G4String & name,
G4bool quasiElastic = false )

Definition at line 87 of file G4HadronPhysicsFTFQGSP_BERT.cc.

88 : G4HadronPhysicsFTFP_BERT(name, qe)
89{}

◆ ~G4HadronPhysicsFTFQGSP_BERT()

G4HadronPhysicsFTFQGSP_BERT::~G4HadronPhysicsFTFQGSP_BERT ( )
virtual

Definition at line 91 of file G4HadronPhysicsFTFQGSP_BERT.cc.

92{}

◆ G4HadronPhysicsFTFQGSP_BERT() [3/3]

G4HadronPhysicsFTFQGSP_BERT::G4HadronPhysicsFTFQGSP_BERT ( G4HadronPhysicsFTFQGSP_BERT & )
delete

Member Function Documentation

◆ ConstructProcess()

void G4HadronPhysicsFTFQGSP_BERT::ConstructProcess ( )
overridevirtual

Reimplemented from G4HadronPhysicsFTFP_BERT.

Definition at line 101 of file G4HadronPhysicsFTFQGSP_BERT.cc.

102{
104 DumpBanner();
105 }
107 G4bool useFactorXS = param->ApplyFactorXS();
108 G4double emax = param->GetMaxEnergy();
110
111 auto theModel = new G4TheoFSGenerator("FTFQGSP");
112 auto theStringModel = new G4FTFModel();
113 theStringModel->SetFragmentationModel(new G4ExcitedStringDecay( new G4QGSMFragmentation() ) );
114 theModel->SetHighEnergyGenerator( theStringModel );
115 theModel->SetTransport( new G4GeneratorPrecompoundInterface() );
116 theModel->SetMinEnergy( param->GetMinEnergyTransitionFTF_Cascade() );
117 theModel->SetMaxEnergy( emax );
118
119 auto theCascade = new G4CascadeInterface();
120 theCascade->SetMaxEnergy( param->GetMaxEnergyTransitionFTF_Cascade() );
121
122 // p
124 G4HadronicProcess* proc =
125 new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle );
126 proc->AddDataSet(new G4ParticleInelasticXS(particle));
127 proc->RegisterMe(theModel);
128 proc->RegisterMe(theCascade);
129 ph->RegisterProcess(proc, particle);
130 if( useFactorXS ) proc->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
131
132 // n
133 particle = G4Neutron::Neutron();
134 proc = new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle );
135 proc->AddDataSet(new G4NeutronInelasticXS());
136 proc->RegisterMe(theModel);
137 proc->RegisterMe(theCascade);
138 ph->RegisterProcess(proc, particle);
139 if( useFactorXS ) proc->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
140
141 proc = new G4NeutronCaptureProcess("nCapture");
142 proc->RegisterMe(new G4NeutronRadCapture());
143 ph->RegisterProcess(proc, particle);
144
145 // pi+
146 particle = G4PionPlus::PionPlus();
147 proc = new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle );
148 proc->AddDataSet(new G4BGGPionInelasticXS(particle));
149 proc->RegisterMe(theModel);
150 proc->RegisterMe(theCascade);
151 ph->RegisterProcess(proc, particle);
152 if( useFactorXS ) proc->MultiplyCrossSectionBy( param->XSFactorPionInelastic() );
153
154 // pi-
155 particle = G4PionMinus::PionMinus();
156 proc = new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle );
157 proc->AddDataSet(new G4BGGPionInelasticXS(particle));
158 proc->RegisterMe(theModel);
159 proc->RegisterMe(theCascade);
160 ph->RegisterProcess(proc, particle);
161 if( useFactorXS ) proc->MultiplyCrossSectionBy( param->XSFactorPionInelastic() );
162
163 // kaons
165
166 // high energy particles
167 if( emax > param->EnergyThresholdForHeavyHadrons() ) {
168
169 // pbar, nbar, anti light ions
171
172 // hyperons
174
175 // b-, c- baryons and mesons
176 if( param->EnableBCParticles() ) {
178 }
179 }
180}
double G4double
Definition G4Types.hh:83
bool G4bool
Definition G4Types.hh:86
static void BuildKaonsFTFQGSP_BERT()
static void BuildBCHadronsFTFQGSP_BERT()
static void BuildHyperonsFTFQGSP_BERT()
static void BuildAntiLightIonsFTFP()
G4double GetMinEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
G4double EnergyThresholdForHeavyHadrons() const
G4double XSFactorPionInelastic() const
G4double XSFactorNucleonInelastic() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void MultiplyCrossSectionBy(G4double factor)
void RegisterMe(G4HadronicInteraction *a)
static G4Neutron * Neutron()
Definition G4Neutron.cc:101
const G4String & GetParticleName() const
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4PionMinus * PionMinus()
static G4PionPlus * PionPlus()
Definition G4PionPlus.cc:93
static G4Proton * Proton()
Definition G4Proton.cc:90
G4bool IsMasterThread()

◆ DumpBanner()

void G4HadronPhysicsFTFQGSP_BERT::DumpBanner ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsFTFP_BERT.

Definition at line 94 of file G4HadronPhysicsFTFQGSP_BERT.cc.

95{
97 G4cout << " QGS string fragmentation instead of Lund string fragmentation."
98 << G4endl;
99}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout

Referenced by ConstructProcess().

◆ operator=()

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

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