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

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 ()
 
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
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- 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{}

◆ G4HadronPhysicsFTFQGSP_BERT() [2/3]

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

◆ ~G4HadronPhysicsFTFQGSP_BERT()

G4HadronPhysicsFTFQGSP_BERT::~G4HadronPhysicsFTFQGSP_BERT ( )
virtual

Definition at line 89 of file G4HadronPhysicsFTFQGSP_BERT.cc.

90{}

◆ 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 99 of file G4HadronPhysicsFTFQGSP_BERT.cc.

100{
102 DumpBanner();
103 }
105 G4bool useFactorXS = param->ApplyFactorXS();
106 G4double emax = param->GetMaxEnergy();
108
109 auto theModel = new G4TheoFSGenerator("FTFQGSP");
110 auto theStringModel = new G4FTFModel();
111 theStringModel->SetFragmentationModel(new G4ExcitedStringDecay( new G4QGSMFragmentation() ) );
112 theModel->SetHighEnergyGenerator( theStringModel );
113 theModel->SetTransport( new G4GeneratorPrecompoundInterface() );
114 theModel->SetMinEnergy( param->GetMinEnergyTransitionFTF_Cascade() );
115 theModel->SetMaxEnergy( emax );
116
117 auto theCascade = new G4CascadeInterface();
118 theCascade->SetMaxEnergy( param->GetMaxEnergyTransitionFTF_Cascade() );
119
120 // p
122 G4HadronicProcess* proc =
123 new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle );
124 proc->AddDataSet(new G4ParticleInelasticXS(particle));
125 proc->RegisterMe(theModel);
126 proc->RegisterMe(theCascade);
127 ph->RegisterProcess(proc, particle);
128 if( useFactorXS ) proc->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
129
130 // n
131 particle = G4Neutron::Neutron();
132 proc = new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle );
133 proc->AddDataSet(new G4NeutronInelasticXS());
134 proc->RegisterMe(theModel);
135 proc->RegisterMe(theCascade);
136 ph->RegisterProcess(proc, particle);
137 if( useFactorXS ) proc->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
138
139 proc = new G4HadronCaptureProcess("nCapture");
140 proc->RegisterMe(new G4NeutronRadCapture());
141 ph->RegisterProcess(proc, particle);
142
143 // pi+
144 particle = G4PionPlus::PionPlus();
145 proc = new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle );
146 proc->AddDataSet(new G4BGGPionInelasticXS(particle));
147 proc->RegisterMe(theModel);
148 proc->RegisterMe(theCascade);
149 ph->RegisterProcess(proc, particle);
150 if( useFactorXS ) proc->MultiplyCrossSectionBy( param->XSFactorPionInelastic() );
151
152 // pi-
153 particle = G4PionMinus::PionMinus();
154 proc = new G4HadronInelasticProcess( particle->GetParticleName()+"Inelastic", particle );
155 proc->AddDataSet(new G4BGGPionInelasticXS(particle));
156 proc->RegisterMe(theModel);
157 proc->RegisterMe(theCascade);
158 ph->RegisterProcess(proc, particle);
159 if( useFactorXS ) proc->MultiplyCrossSectionBy( param->XSFactorPionInelastic() );
160
161 // kaons
163
164 // high energy particles
165 if( emax > param->EnergyThresholdForHeavyHadrons() ) {
166
167 // pbar, nbar, anti light ions
169
170 // hyperons
172
173 // b-, c- baryons and mesons
174 if( param->EnableBCParticles() ) {
176 }
177 }
178}
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()
static G4HadronicParameters * Instance()
G4double GetMinEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
G4bool EnableBCParticles() const
G4double EnergyThresholdForHeavyHadrons() const
G4double XSFactorPionInelastic() const
G4double GetMaxEnergy() const
G4double XSFactorNucleonInelastic() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void MultiplyCrossSectionBy(G4double factor)
void RegisterMe(G4HadronicInteraction *a)
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103
const G4String & GetParticleName() const
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4PionMinus * PionMinus()
Definition: G4PionMinus.cc:97
static G4PionPlus * PionPlus()
Definition: G4PionPlus.cc:97
static G4Proton * Proton()
Definition: G4Proton.cc:92
G4bool IsMasterThread()
Definition: G4Threading.cc:124

◆ DumpBanner()

void G4HadronPhysicsFTFQGSP_BERT::DumpBanner ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsFTFP_BERT.

Definition at line 92 of file G4HadronPhysicsFTFQGSP_BERT.cc.

93{
95 G4cout << " QGS string fragmentation instead of Lund string fragmentation."
96 << G4endl;
97}
#define G4endl
Definition: G4ios.hh:57
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: