73void G4HadronicBuilder::BuildFTFP_BERT(
const std::vector<G4int>& partList,
82 theModel->SetHighEnergyGenerator( theStringModel );
96 for(
auto & pdg : partList ) {
99 if ( part ==
nullptr ) {
continue; }
102 hadi->AddDataSet( xsinel );
103 hadi->RegisterMe( theModel );
104 if( theCascade !=
nullptr ) hadi->RegisterMe( theCascade );
110void G4HadronicBuilder::BuildFTFQGSP_BERT(
const std::vector<G4int>& partList,
119 theModel->SetHighEnergyGenerator( theStringModel );
133 for(
auto & pdg : partList ) {
136 if ( part ==
nullptr ) {
continue; }
139 hadi->AddDataSet( xsinel );
140 hadi->RegisterMe( theModel );
141 if( theCascade !=
nullptr ) hadi->RegisterMe( theCascade );
147void G4HadronicBuilder::BuildQGSP_FTFP_BERT(
const std::vector<G4int>& partList,
159 theHEModel->SetTransport( theTransport );
160 theHEModel->SetHighEnergyGenerator( theQGSModel );
170 theLEModel->SetHighEnergyGenerator( theFTFModel );
171 theLEModel->SetTransport( theTransport );
184 for(
auto & pdg : partList ) {
187 if ( part ==
nullptr ) {
continue; }
190 hadi->AddDataSet( xsinel );
191 hadi->RegisterMe( theHEModel );
192 hadi->RegisterMe( theLEModel );
193 if(theCascade !=
nullptr) hadi->RegisterMe( theCascade );
199void G4HadronicBuilder::BuildINCLXX(
const std::vector<G4int>& partList,
209 theModel->SetHighEnergyGenerator( theStringModel );
229 for(
auto & pdg : partList ) {
232 if ( part ==
nullptr ) {
continue; }
236 hadi->AddDataSet( xsinel );
237 hadi->RegisterMe( theModelINCLXX );
241 hadi->AddDataSet( xsinel );
242 hadi->RegisterMe( theModel );
243 if( theCascade !=
nullptr ) hadi->RegisterMe( theCascade );
261 for(
auto & pdg : partList ) {
264 if ( part ==
nullptr ) {
continue; }
267 hade->AddDataSet( xsel );
268 hade->RegisterMe( elModel );
397 static G4bool isFirstCall =
true;
398 if ( ! isFirstCall )
return;
403 if ( part ==
nullptr ) {
404 G4cout <<
"G4HadronicBuilder::BuildDecayTableForBCHadrons : ERROR ! particlePDG="
405 << pdg <<
" is not defined !" <<
G4endl;
408 if ( part->GetDecayTable() ) {
409 G4cout <<
"G4HadronicBuilder::BuildDecayTableForBCHadrons : WARNING ! particlePDG="
410 << pdg <<
" has already a decay table defined !" <<
G4endl;
414 const G4int numberDecayChannels = 1;
416 for (
G4int i = 0; i < numberDecayChannels; ++i ) mode[i] =
nullptr;
513 G4cout <<
"G4HadronicBuilder::BuildDecayTableForBCHadrons : UNKNOWN particlePDG=" << pdg <<
G4endl;
516 for (
G4int index = 0; index < numberDecayChannels; ++index ) decayTable->
Insert( mode[index] );
518 part->SetDecayTable( decayTable );
526 const G4int numberDecayChannels = 1;
528 for (
G4int i = 0; i < numberDecayChannels; ++i ) mode[i] =
nullptr;
530 for (
G4int index = 0; index < numberDecayChannels; ++index ) decayTable->
Insert( mode[index] );
536 const G4int numberDecayChannels = 1;
538 for (
G4int i = 0; i < numberDecayChannels; ++i ) mode[i] =
nullptr;
540 for (
G4int index = 0; index < numberDecayChannels; ++index ) decayTable->
Insert( mode[index] );
546 const G4int numberDecayChannels = 1;
548 for (
G4int i = 0; i < numberDecayChannels; ++i ) mode[i] =
nullptr;
550 for (
G4int index = 0; index < numberDecayChannels; ++index ) decayTable->
Insert( mode[index] );
589 theTheoFSModel->SetHighEnergyGenerator( theStringModel );
592 theTheoFSModel->SetMinEnergy( 15.0*CLHEP::GeV );
601 for (
auto & pdg : partList ) {
603 if ( part ==
nullptr )
continue;
605 hadi->AddDataSet( xsinel );
606 hadi->RegisterMe( theTheoFSModel );
607 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()
static void BuildAntiLightIonsINCLXX()
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 GetMaxEnergyINCLXX_Pbar() const
G4double XSFactorHadronInelastic() const
G4double GetMaxEnergyTransitionQGS_FTF() const
G4double XSFactorHadronElastic() const
G4double GetMaxEnergy() const
G4double GetMinEnergyINCLXX_Pbar() 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)