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

#include <G4QGSPAntiBarionBuilder.hh>

+ Inheritance diagram for G4QGSPAntiBarionBuilder:

Public Member Functions

 G4QGSPAntiBarionBuilder (G4bool quasiElastic=false)
 
virtual ~G4QGSPAntiBarionBuilder ()
 
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 G4VAntiBarionBuilder
 G4VAntiBarionBuilder ()=default
 
virtual ~G4VAntiBarionBuilder ()
 
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 49 of file G4QGSPAntiBarionBuilder.hh.

Constructor & Destructor Documentation

◆ G4QGSPAntiBarionBuilder()

G4QGSPAntiBarionBuilder::G4QGSPAntiBarionBuilder ( G4bool  quasiElastic = false)

Definition at line 54 of file G4QGSPAntiBarionBuilder.cc.

54 {
56 G4VComponentCrossSection* theAntiNucleonXS = xsreg->GetComponentCrossSection( "AntiAGlauber" );
57 if ( ! theAntiNucleonXS ) theAntiNucleonXS = new G4ComponentAntiNuclNuclearXS;
58 theAntiNucleonData = new G4CrossSectionInelastic( theAntiNucleonXS );
61 // The main model, QGSP, applicable only for anti_proton and anti_neutron
62 theQGSmodel = new G4TheoFSGenerator( "QGSP" );
65 theStringModel->SetFragmentationModel( theStringDecay );
67 theQGSmodel->SetTransport( theCascade );
68 theQGSmodel->SetHighEnergyGenerator( theStringModel );
69 if ( quasiElastic ) theQGSmodel->SetQuasiElasticChannel( new G4QuasiElasticChannel );
70 theQGSmodel->SetTransport(theCascade);
71 theQGSmodel->SetMinEnergy( theMin );
72 theQGSmodel->SetMaxEnergy( theMax );
73 // The auxilary model, FTFP, needed for anti_deuteron, anti_triton, anti_He3 and anti_alpha
74 theFTFmodel = new G4TheoFSGenerator( "FTFP" );
75 G4FTFModel* theStringModel2 = new G4FTFModel;
76 theStringModel2->SetFragmentationModel( new G4ExcitedStringDecay );
78 theFTFmodel->SetHighEnergyGenerator( theStringModel2 );
79 G4double quasiElasticFTF = false; // Use built-in quasi-elastic (not add-on)
80 if ( quasiElasticFTF ) theFTFmodel->SetQuasiElasticChannel( new G4QuasiElasticChannel );
81 theFTFmodel->SetTransport( theCascade2 );
82 theFTFmodel->SetMinEnergy( theMin );
83 theFTFmodel->SetMaxEnergy( theMax );
84}
double G4double
Definition: G4Types.hh:83
G4VComponentCrossSection * GetComponentCrossSection(const G4String &name)
static G4CrossSectionDataSetRegistry * Instance()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
static G4HadronicParameters * Instance()
G4double GetMinEnergyTransitionQGS_FTF() const
G4double GetMaxEnergy() const
void SetTransport(G4VIntraNuclearTransportModel *const value)
void SetQuasiElasticChannel(G4QuasiElasticChannel *const value)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void SetFragmentationModel(G4VStringFragmentation *aModel)

◆ ~G4QGSPAntiBarionBuilder()

virtual G4QGSPAntiBarionBuilder::~G4QGSPAntiBarionBuilder ( )
inlinevirtual

Definition at line 52 of file G4QGSPAntiBarionBuilder.hh.

52{};

Member Function Documentation

◆ Build() [1/4]

virtual void G4QGSPAntiBarionBuilder::Build ( G4HadronElasticProcess )
inlinefinaloverridevirtual

Implements G4VAntiBarionBuilder.

Definition at line 54 of file G4QGSPAntiBarionBuilder.hh.

54{}

◆ Build() [2/4]

virtual void G4VAntiBarionBuilder::Build ( G4HadronElasticProcess aP)
virtual

Implements G4VAntiBarionBuilder.

◆ Build() [3/4]

void G4QGSPAntiBarionBuilder::Build ( G4HadronInelasticProcess aP)
finaloverridevirtual

Implements G4VAntiBarionBuilder.

Definition at line 87 of file G4QGSPAntiBarionBuilder.cc.

87 {
88 if ( aP->GetParticleDefinition() && aP->GetParticleDefinition()->GetBaryonNumber() < -1 ) {
89 // Light anti-ions: for the time being QGSP cannot be applied, use FTFP
90 theFTFmodel->SetMinEnergy( theMin );
91 theFTFmodel->SetMaxEnergy( theMax );
92 aP->RegisterMe( theFTFmodel );
93 } else {
94 // Anti-proton and anti-neutron: use QGSP
95 theQGSmodel->SetMinEnergy( theMin );
96 theQGSmodel->SetMaxEnergy( theMax );
97 aP->RegisterMe( theQGSmodel );
98 }
99 aP->AddDataSet( theAntiNucleonData );
100}
const G4ParticleDefinition * GetParticleDefinition() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)

◆ Build() [4/4]

virtual void G4VAntiBarionBuilder::Build ( G4HadronInelasticProcess aP)
virtual

Implements G4VAntiBarionBuilder.

◆ SetMaxEnergy()

virtual void G4QGSPAntiBarionBuilder::SetMaxEnergy ( G4double  val)
inlinefinaloverridevirtual

Reimplemented from G4PhysicsBuilderInterface.

Definition at line 58 of file G4QGSPAntiBarionBuilder.hh.

58{ theMax = val; }

◆ SetMinEnergy()

virtual void G4QGSPAntiBarionBuilder::SetMinEnergy ( G4double  val)
inlinefinaloverridevirtual

Reimplemented from G4PhysicsBuilderInterface.

Definition at line 57 of file G4QGSPAntiBarionBuilder.hh.

57{ theMin = val; }

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