Public Member Functions | Private Attributes | List of all members
NeutronHPphysics Class Reference

#include <NeutronHPphysics.hh>

Inheritance diagram for NeutronHPphysics:

Public Member Functions

 NeutronHPphysics (const G4String &name="neutron")
 
void ConstructParticle () override
 
void ConstructProcess () override
 
void SetThermalPhysics (G4bool flag)
 

Private Attributes

G4bool fThermal
 

Detailed Description

Definition at line 11 of file NeutronHPphysics.hh.

Constructor & Destructor Documentation

NeutronHPphysics::NeutronHPphysics ( const G4String &  name = "neutron")

Definition at line 36 of file NeutronHPphysics.cc.

37  : G4VPhysicsConstructor(name), fThermal(true)
38 {}
static QCString name
Definition: declinfo.cpp:673

Member Function Documentation

void NeutronHPphysics::ConstructParticle ( )
inlineoverride

Definition at line 16 of file NeutronHPphysics.hh.

17  {}
void NeutronHPphysics::ConstructProcess ( )
override

Definition at line 41 of file NeutronHPphysics.cc.

42 {
43  G4ParticleDefinition* neutron = G4Neutron::Neutron();
44  G4ProcessManager* pManager = neutron->GetProcessManager();
45 
46  // delete all neutron processes if already registered
47  G4ProcessTable* processTable = G4ProcessTable::GetProcessTable();
48  G4VProcess* process = 0;
49  process = processTable->FindProcess("hadElastic", neutron);
50  if (process) pManager->RemoveProcess(process);
51  //
52  process = processTable->FindProcess("neutronInelastic", neutron);
53  if (process) pManager->RemoveProcess(process);
54  //
55  process = processTable->FindProcess("nCapture", neutron);
56  if (process) pManager->RemoveProcess(process);
57  //
58  process = processTable->FindProcess("nFission", neutron);
59  if (process) pManager->RemoveProcess(process);
60 
61  // (re) create process: elastic
62  //
63  G4HadronElasticProcess* process1 = new G4HadronElasticProcess();
64  pManager->AddDiscreteProcess(process1);
65  //
66  // model1a
67  G4ParticleHPElastic* model1a = new G4ParticleHPElastic();
68  process1->RegisterMe(model1a);
69  process1->AddDataSet(new G4ParticleHPElasticData());
70  //
71  // model1b
72  if (fThermal) {
73  model1a->SetMinEnergy(4 * eV);
74  G4ParticleHPThermalScattering* model1b = new G4ParticleHPThermalScattering();
75  process1->RegisterMe(model1b);
76  process1->AddDataSet(new G4ParticleHPThermalScatteringData());
77  }
78 
79  // (re) create process: inelastic
80  //
81  G4NeutronInelasticProcess* process2 = new G4NeutronInelasticProcess();
82  pManager->AddDiscreteProcess(process2);
83  //
84  // cross section data set
85  G4ParticleHPInelasticData* dataSet2 = new G4ParticleHPInelasticData();
86  process2->AddDataSet(dataSet2);
87  //
88  // models
89  G4ParticleHPInelastic* model2 = new G4ParticleHPInelastic();
90  process2->RegisterMe(model2);
91 
92  // (re) create process: nCapture
93  //
94  G4HadronCaptureProcess* process3 = new G4HadronCaptureProcess();
95  pManager->AddDiscreteProcess(process3);
96  //
97  // cross section data set
98  G4ParticleHPCaptureData* dataSet3 = new G4ParticleHPCaptureData();
99  process3->AddDataSet(dataSet3);
100  //
101  // models
102  G4ParticleHPCapture* model3 = new G4ParticleHPCapture();
103  process3->RegisterMe(model3);
104 
105  // (re) create process: nFission
106  //
107  G4HadronFissionProcess* process4 = new G4HadronFissionProcess();
108  pManager->AddDiscreteProcess(process4);
109  //
110  // cross section data set
111  G4ParticleHPFissionData* dataSet4 = new G4ParticleHPFissionData();
112  process4->AddDataSet(dataSet4);
113  //
114  // models
115  G4ParticleHPFission* model4 = new G4ParticleHPFission();
116  process4->RegisterMe(model4);
117 }
std::unordered_map< int, std::unordered_map< int, std::string > > & processTable()
Definition: ProcessTable.hh:21
def process(f, kind)
Definition: search.py:254
static constexpr double eV
Definition: Units.h:127
void NeutronHPphysics::SetThermalPhysics ( G4bool  flag)
inline

Definition at line 21 of file NeutronHPphysics.hh.

22  {
23  fThermal = flag;
24  };

Member Data Documentation

G4bool NeutronHPphysics::fThermal
private

Definition at line 24 of file NeutronHPphysics.hh.


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