Geant4 11.4.0
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)
 ~G4QGSPAntiBarionBuilder () override=default
void Build (G4HadronInelasticProcess *aP)
void SetMinEnergy (G4double val) final override
void SetMaxEnergy (G4double val) final override
Public Member Functions inherited from G4VAntiBarionBuilder
 G4VAntiBarionBuilder ()=default
 ~G4VAntiBarionBuilder () override=default
Public Member Functions inherited from G4PhysicsBuilderInterface
 G4PhysicsBuilderInterface ()=default
virtual ~G4PhysicsBuilderInterface ()=default
virtual void Build ()
virtual void RegisterMe (G4PhysicsBuilderInterface *)

Detailed Description

Definition at line 49 of file G4QGSPAntiBarionBuilder.hh.

Constructor & Destructor Documentation

◆ G4QGSPAntiBarionBuilder()

G4QGSPAntiBarionBuilder::G4QGSPAntiBarionBuilder ( G4bool quasiElastic = false)

Definition at line 55 of file G4QGSPAntiBarionBuilder.cc.

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

◆ ~G4QGSPAntiBarionBuilder()

G4QGSPAntiBarionBuilder::~G4QGSPAntiBarionBuilder ( )
overridedefault

Member Function Documentation

◆ Build()

void G4QGSPAntiBarionBuilder::Build ( G4HadronInelasticProcess * aP)

Definition at line 88 of file G4QGSPAntiBarionBuilder.cc.

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

◆ SetMaxEnergy()

void G4QGSPAntiBarionBuilder::SetMaxEnergy ( G4double val)
inlinefinaloverridevirtual

Reimplemented from G4PhysicsBuilderInterface.

Definition at line 57 of file G4QGSPAntiBarionBuilder.hh.

57{ theMax = val; }

◆ SetMinEnergy()

void G4QGSPAntiBarionBuilder::SetMinEnergy ( G4double val)
inlinefinaloverridevirtual

Reimplemented from G4PhysicsBuilderInterface.

Definition at line 56 of file G4QGSPAntiBarionBuilder.hh.

56{ theMin = val; }

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