70void G4HadronicBuilder::BuildFTFP_BERT(
const std::vector<G4int>& partList,
79 theModel->SetHighEnergyGenerator( theStringModel );
93 for(
auto & pdg : partList ) {
96 if ( part ==
nullptr ) {
continue; }
99 hadi->AddDataSet( xsinel );
100 hadi->RegisterMe( theModel );
101 if( theCascade !=
nullptr ) hadi->RegisterMe( theCascade );
107void G4HadronicBuilder::BuildFTFQGSP_BERT(
const std::vector<G4int>& partList,
116 theModel->SetHighEnergyGenerator( theStringModel );
130 for(
auto & pdg : partList ) {
133 if ( part ==
nullptr ) {
continue; }
136 hadi->AddDataSet( xsinel );
137 hadi->RegisterMe( theModel );
138 if( theCascade !=
nullptr ) hadi->RegisterMe( theCascade );
144void G4HadronicBuilder::BuildQGSP_FTFP_BERT(
const std::vector<G4int>& partList,
156 theHEModel->SetTransport( theTransport );
157 theHEModel->SetHighEnergyGenerator( theQGSModel );
167 theLEModel->SetHighEnergyGenerator( theFTFModel );
168 theLEModel->SetTransport( theTransport );
181 for(
auto & pdg : partList ) {
184 if ( part ==
nullptr ) {
continue; }
187 hadi->AddDataSet( xsinel );
188 hadi->RegisterMe( theHEModel );
189 hadi->RegisterMe( theLEModel );
190 if(theCascade !=
nullptr) hadi->RegisterMe( theCascade );
207 for(
auto & pdg : partList ) {
210 if ( part ==
nullptr ) {
continue; }
213 hade->AddDataSet( xsel );
214 hade->RegisterMe( elModel );
339 static G4bool isFirstCall =
true;
340 if ( ! isFirstCall )
return;
345 if ( part ==
nullptr ) {
346 G4cout <<
"G4HadronicBuilder::BuildDecayTableForBCHadrons : ERROR ! particlePDG="
347 << pdg <<
" is not defined !" <<
G4endl;
350 if ( part->GetDecayTable() ) {
351 G4cout <<
"G4HadronicBuilder::BuildDecayTableForBCHadrons : WARNING ! particlePDG="
352 << pdg <<
" has already a decay table defined !" <<
G4endl;
356 const G4int numberDecayChannels = 1;
358 for (
G4int i = 0; i < numberDecayChannels; ++i ) mode[i] =
nullptr;
455 G4cout <<
"G4HadronicBuilder::BuildDecayTableForBCHadrons : UNKNOWN particlePDG=" << pdg <<
G4endl;
458 for (
G4int index = 0; index < numberDecayChannels; ++index ) decayTable->
Insert( mode[index] );
460 part->SetDecayTable( decayTable );
468 const G4int numberDecayChannels = 1;
470 for (
G4int i = 0; i < numberDecayChannels; ++i ) mode[i] =
nullptr;
472 for (
G4int index = 0; index < numberDecayChannels; ++index ) decayTable->
Insert( mode[index] );
478 const G4int numberDecayChannels = 1;
480 for (
G4int i = 0; i < numberDecayChannels; ++i ) mode[i] =
nullptr;
482 for (
G4int index = 0; index < numberDecayChannels; ++index ) decayTable->
Insert( mode[index] );
488 const G4int numberDecayChannels = 1;
490 for (
G4int i = 0; i < numberDecayChannels; ++i ) mode[i] =
nullptr;
492 for (
G4int index = 0; index < numberDecayChannels; ++index ) decayTable->
Insert( mode[index] );
531 theTheoFSModel->SetHighEnergyGenerator( theStringModel );
534 theTheoFSModel->SetMinEnergy( 15.0*CLHEP::GeV );
543 for (
auto & pdg : partList ) {
545 if ( part ==
nullptr )
continue;
547 hadi->AddDataSet( xsinel );
548 hadi->RegisterMe( theTheoFSModel );
549 hadi->RegisterMe( theINCLXXModel );
G4GLOB_DLL std::ostream G4cout
void Insert(G4VDecayChannel *aChannel)
static G4Etac * Definition()
static const std::vector< G4int > & GetBCHadrons()
static const std::vector< G4int > & GetAntiHyperons()
static const std::vector< G4int > & GetLightAntiIons()
static const std::vector< G4int > & GetHyperNuclei()
static const std::vector< G4int > & GetKaons()
static const std::vector< G4int > & GetHyperons()
static const std::vector< G4int > & GetHyperAntiNuclei()
static G4CrossSectionElastic * ElasticXS(const G4String &componentName)
static G4CrossSectionInelastic * InelasticXS(const G4String &componentName)
static void BuildBCHadronsFTFP_BERT()
static void BuildElastic(const std::vector< G4int > &particleList)
static void BuildHyperonsFTFP_BERT()
static void BuildKaonsQGSP_FTFP_BERT(G4bool quasiElastic)
static void BuildKaonsFTFQGSP_BERT()
static void BuildBCHadronsFTFQGSP_BERT()
static void BuildHyperonsQGSP_FTFP_BERT(G4bool quasiElastic)
static void BuildHyperonsFTFQGSP_BERT()
static void BuildDecayTableForBCHadrons()
static void BuildFTFP_INCLXX(const std::vector< G4int > &partList, const G4String &xsName)
static void BuildKaonsFTFP_BERT()
static void BuildAntiLightIonsFTFP()
static void BuildHyperAntiNucleiFTFP_BERT()
static void BuildBCHadronsQGSP_FTFP_BERT(G4bool quasiElastic)
static void BuildHyperNucleiFTFP_BERT()
static void BuildHyperNucleiFTFP_INCLXX()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
G4bool ApplyFactorXS() const
static G4HadronicParameters * Instance()
G4double GetMinEnergyTransitionFTF_Cascade() const
G4double GetMinEnergyTransitionQGS_FTF() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
G4double XSFactorHadronInelastic() const
G4double GetMaxEnergyTransitionQGS_FTF() const
G4double XSFactorHadronElastic() const
G4double GetMaxEnergy() const
INCL++ intra-nuclear cascade.
static G4JPsi * Definition()
void SetDecayTable(G4DecayTable *aDecayTable)
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4Upsilon * Definition()
void SetFragmentationModel(G4VStringFragmentation *aModel)