Belle II Software development
NeutronPhysics Class Reference

Neutron hadronic physics constructor for Belle II physics list. More...

#include <NeutronPhysics.h>

Inheritance diagram for NeutronPhysics:

Public Member Functions

virtual void ConstructParticle () override
 Build processes, models, cross sections used in physics list.
 
virtual void ConstructProcess () override
 Build all particle types used in physics list (empty in this class)
 

Private Attributes

G4TheoFSGenerator * m_ftfp
 Final state generator for QCD string models.
 
G4FTFModel * m_stringModel
 Fritiof string model.
 
G4ExcitedStringDecay * m_stringDecay
 Model to decay strings into hadrons.
 
G4LundStringFragmentation * m_fragModel
 Lund string fragmentation model.
 
G4GeneratorPrecompoundInterface * m_preCompoundModel
 Precompound model to deexcite post-collision nucleus.
 

Detailed Description

Neutron hadronic physics constructor for Belle II physics list.

Definition at line 31 of file NeutronPhysics.h.

Constructor & Destructor Documentation

◆ NeutronPhysics()

Definition at line 36 of file NeutronPhysics.cc.

37 : m_ftfp(nullptr), m_stringModel(nullptr), m_stringDecay(nullptr),
38 m_fragModel(nullptr), m_preCompoundModel(nullptr)
39{}
G4GeneratorPrecompoundInterface * m_preCompoundModel
Precompound model to deexcite post-collision nucleus.
G4TheoFSGenerator * m_ftfp
Final state generator for QCD string models.
G4FTFModel * m_stringModel
Fritiof string model.
G4ExcitedStringDecay * m_stringDecay
Model to decay strings into hadrons.
G4LundStringFragmentation * m_fragModel
Lund string fragmentation model.

◆ ~NeutronPhysics()

Definition at line 42 of file NeutronPhysics.cc.

43{
44 delete m_stringDecay;
45 delete m_stringModel;
46 delete m_fragModel;
47 delete m_preCompoundModel;
48}

Member Function Documentation

◆ ConstructParticle()

void ConstructParticle ( )
overridevirtual

Build processes, models, cross sections used in physics list.

Definition at line 51 of file NeutronPhysics.cc.

52{}

◆ ConstructProcess()

void ConstructProcess ( )
overridevirtual

Build all particle types used in physics list (empty in this class)

Definition at line 55 of file NeutronPhysics.cc.

56{
57 // Low energy elastic model
58 G4ChipsElasticModel* elMod = new G4ChipsElasticModel();
59
60 // Use Bertini cascade for low energies
61 G4CascadeInterface* loInelModel = new G4CascadeInterface;
62 loInelModel->SetMinEnergy(0.0);
63 loInelModel->SetMaxEnergy(12.0 * GeV);
64
65 // Capture model
66 G4NeutronRadCapture* capModel = new G4NeutronRadCapture();
67
68 // Use FTFP for high energies ==>> eventually replace this with new class FTFPInterface
69 m_ftfp = new G4TheoFSGenerator("FTFP");
70 m_stringModel = new G4FTFModel;
72 new G4ExcitedStringDecay(m_fragModel = new G4LundStringFragmentation);
73 m_stringModel->SetFragmentationModel(m_stringDecay);
74 m_preCompoundModel = new G4GeneratorPrecompoundInterface();
75
76 m_ftfp->SetHighEnergyGenerator(m_stringModel);
77 m_ftfp->SetTransport(m_preCompoundModel);
78 m_ftfp->SetMinEnergy(5 * GeV);
79 m_ftfp->SetMaxEnergy(100 * TeV);
80
81 // Cross section sets
82 G4BGGNucleonInelasticXS* inelCS = new G4BGGNucleonInelasticXS(G4Neutron::Neutron());
83 G4NeutronElasticXS* elCS = new G4NeutronElasticXS;
84 G4NeutronCaptureXS* capCS = new G4NeutronCaptureXS;
85
86 G4ProcessManager* procMan = G4Neutron::Neutron()->GetProcessManager();
87
88 // Elastic process
89 G4HadronElasticProcess* nProcEl = new G4HadronElasticProcess;
90 nProcEl->RegisterMe(elMod);
91 nProcEl->AddDataSet(elCS);
92 procMan->AddDiscreteProcess(nProcEl);
93
94 // Inelastic process
95 G4HadronInelasticProcess* nProcInel = new G4HadronInelasticProcess("neutronInelastic", G4Neutron::Definition());
96 nProcInel->RegisterMe(loInelModel);
97 nProcInel->RegisterMe(m_ftfp);
98 nProcInel->AddDataSet(inelCS);
99 procMan->AddDiscreteProcess(nProcInel);
100
101 // Capture process
102 G4NeutronCaptureProcess* nProcCap = new G4NeutronCaptureProcess;
103 nProcCap->RegisterMe(capModel);
104 nProcCap->AddDataSet(capCS);
105 procMan->AddDiscreteProcess(nProcCap);
106
107 // Neutron cut (kill neutrons that live too long or have too little energy)
108 G4NeutronKiller* nKiller = new G4NeutronKiller();
109 nKiller->SetKinEnergyLimit(0.0 * MeV);
110 nKiller->SetTimeLimit(10.*microsecond);
111 procMan->AddDiscreteProcess(nKiller);
112
113}

Member Data Documentation

◆ m_fragModel

G4LundStringFragmentation* m_fragModel
private

Lund string fragmentation model.

Definition at line 53 of file NeutronPhysics.h.

◆ m_ftfp

G4TheoFSGenerator* m_ftfp
private

Final state generator for QCD string models.

Definition at line 44 of file NeutronPhysics.h.

◆ m_preCompoundModel

G4GeneratorPrecompoundInterface* m_preCompoundModel
private

Precompound model to deexcite post-collision nucleus.

Definition at line 56 of file NeutronPhysics.h.

◆ m_stringDecay

G4ExcitedStringDecay* m_stringDecay
private

Model to decay strings into hadrons.

Definition at line 50 of file NeutronPhysics.h.

◆ m_stringModel

G4FTFModel* m_stringModel
private

Fritiof string model.

Definition at line 47 of file NeutronPhysics.h.


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