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

#include <G4HyperonFTFPBuilder.hh>

+ Inheritance diagram for G4HyperonFTFPBuilder:

Public Member Functions

 G4HyperonFTFPBuilder (G4bool quasiElastic=false)
 
virtual ~G4HyperonFTFPBuilder ()
 
virtual void Build (G4HadronElasticProcess *) final override
 
virtual void Build (G4HadronInelasticProcess *aP) final override
 
virtual void SetMinEnergy (G4double val) final override
 
virtual void SetMaxEnergy (G4double val) final override
 
virtual void Build (G4HadronElasticProcess *aP)=0
 
virtual void Build (G4HadronInelasticProcess *aP)=0
 
- Public Member Functions inherited from G4VHyperonBuilder
 G4VHyperonBuilder ()=default
 
virtual ~G4VHyperonBuilder ()
 
virtual void Build (G4HadronElasticProcess *aP)=0
 
virtual void Build (G4HadronInelasticProcess *aP)=0
 
virtual void Build ()
 
- Public Member Functions inherited from G4PhysicsBuilderInterface
 G4PhysicsBuilderInterface ()=default
 
virtual ~G4PhysicsBuilderInterface ()
 
virtual void Build ()
 
virtual void RegisterMe (G4PhysicsBuilderInterface *)
 
virtual void SetMinEnergy (G4double)
 
virtual void SetMaxEnergy (G4double)
 

Detailed Description

Definition at line 50 of file G4HyperonFTFPBuilder.hh.

Constructor & Destructor Documentation

◆ G4HyperonFTFPBuilder()

G4HyperonFTFPBuilder::G4HyperonFTFPBuilder ( G4bool  quasiElastic = false)

Definition at line 55 of file G4HyperonFTFPBuilder.cc.

55 {
56 // The following energy limits refer to FTFP only and only for hyperons
57 // (for antihyperons, the min energy is assumed to be 0.0; the max is the same as for hyperons)
60 // Hyperon : Bertini at low energies, then FTFP
61 theHyperonFTFP = new G4TheoFSGenerator( "FTFP" );
62 theHyperonFTFP->SetMinEnergy( theMin );
63 theHyperonFTFP->SetMaxEnergy( theMax );
64 G4FTFModel* theStringModel = new G4FTFModel;
65 theStringModel->SetFragmentationModel( new G4ExcitedStringDecay );
67 theHyperonFTFP->SetTransport( theCascade );
68 theHyperonFTFP->SetHighEnergyGenerator( theStringModel );
69 if ( quasiElastic ) theHyperonFTFP->SetQuasiElasticChannel( new G4QuasiElasticChannel );
70
71 theBertini = new G4CascadeInterface;
72 theBertini->SetMinEnergy( 0.0 );
73 theBertini->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade() );
74
75 // AntiHyperons: Use FTFP for full energy range, starting at 0.
76 theAntiHyperonFTFP = new G4TheoFSGenerator( "FTFP" );
77 theAntiHyperonFTFP->SetMinEnergy( 0.0 );
78 theAntiHyperonFTFP->SetMaxEnergy( theMax );
79 theAntiHyperonFTFP->SetTransport( theCascade );
80 theAntiHyperonFTFP->SetHighEnergyGenerator( theStringModel );
81 if ( quasiElastic ) theAntiHyperonFTFP->SetQuasiElasticChannel( new G4QuasiElasticChannel );
82
83 // use Glauber-Gribov cross sections
84 theInelasticCrossSection = new G4CrossSectionInelastic( new G4ComponentGGHadronNucleusXsc );
85}
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
static G4HadronicParameters * Instance()
G4double GetMinEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergy() const
void SetTransport(G4VIntraNuclearTransportModel *const value)
void SetQuasiElasticChannel(G4QuasiElasticChannel *const value)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void SetFragmentationModel(G4VStringFragmentation *aModel)

◆ ~G4HyperonFTFPBuilder()

G4HyperonFTFPBuilder::~G4HyperonFTFPBuilder ( )
virtual

Definition at line 88 of file G4HyperonFTFPBuilder.cc.

88{}

Member Function Documentation

◆ Build() [1/4]

virtual void G4HyperonFTFPBuilder::Build ( G4HadronElasticProcess )
inlinefinaloverridevirtual

Implements G4VHyperonBuilder.

Definition at line 55 of file G4HyperonFTFPBuilder.hh.

55{}

◆ Build() [2/4]

virtual void G4VHyperonBuilder::Build ( G4HadronElasticProcess aP)
virtual

Implements G4VHyperonBuilder.

◆ Build() [3/4]

void G4HyperonFTFPBuilder::Build ( G4HadronInelasticProcess aP)
finaloverridevirtual

Implements G4VHyperonBuilder.

Definition at line 91 of file G4HyperonFTFPBuilder.cc.

91 {
93 // Anti-hyperon
94 theAntiHyperonFTFP->SetMaxEnergy( theMax );
95 aP->RegisterMe( theAntiHyperonFTFP );
96 } else {
97 // Hyperon
98 theHyperonFTFP->SetMinEnergy( theMin );
99 theHyperonFTFP->SetMaxEnergy( theMax );
100 aP->RegisterMe( theBertini );
101 aP->RegisterMe( theHyperonFTFP );
102 }
103 aP->AddDataSet( theInelasticCrossSection );
104}
const G4ParticleDefinition * GetParticleDefinition() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)

◆ Build() [4/4]

virtual void G4VHyperonBuilder::Build ( G4HadronInelasticProcess aP)
virtual

Implements G4VHyperonBuilder.

◆ SetMaxEnergy()

virtual void G4HyperonFTFPBuilder::SetMaxEnergy ( G4double  val)
inlinefinaloverridevirtual

Reimplemented from G4PhysicsBuilderInterface.

Definition at line 62 of file G4HyperonFTFPBuilder.hh.

62{ theMax = val; }

◆ SetMinEnergy()

virtual void G4HyperonFTFPBuilder::SetMinEnergy ( G4double  val)
inlinefinaloverridevirtual

Reimplemented from G4PhysicsBuilderInterface.

Definition at line 61 of file G4HyperonFTFPBuilder.hh.

61{ theMin = val; }

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