88 {
91
93 auto inel = new G4HadronInelasticProcess( "neutronInelastic", neutron );
94 neutron->GetProcessManager()->AddDiscreteProcess( inel );
95
98 qgs.Build( inel );
99
103 ftf.Build( inel );
104
106 G4BertiniNeutronBuilder bert;
110 }
111
113 G4BinaryNeutronBuilder bic;
117 }
118
119 auto xsinel = new G4NeutronInelasticXS();
120 inel->AddDataSet( xsinel );
121
122 inel->AddDataSet( new G4ParticleHPInelasticData( neutron ) );
123 auto mod = new G4ParticleHPInelastic( neutron, "NeutronHPInelastic" );
124 mod->SetMaxEnergy( 20*CLHEP::MeV );
125 inel->RegisterMe( mod );
126
127 if ( useFactorXS )
129
130 auto capture = new G4NeutronCaptureProcess( "nCaptureHP" );
131 neutron->GetProcessManager()->AddDiscreteProcess(capture);
132 capture->AddDataSet( new G4NeutronHPCaptureData() );
134 capture->RegisterMe( new G4NuDEXNeutronCaptureModel() );
135 } else {
136 capture->RegisterMe( new G4NeutronRadCaptureHP() );
137 }
138
139 auto fission = new G4NeutronFissionProcess( "nFissionHP" );
140 neutron->GetProcessManager()->AddDiscreteProcess(fission);
142 fission->AddDataSet( new G4ParticleHPFissionData() );
143}
G4ParticleHPFission G4NeutronHPFission
virtual void SetMaxEnergy(G4double aM) final override
virtual void SetMinEnergy(G4double aM) final override
virtual void Build(G4HadronElasticProcess *) final override
virtual void Build(G4HadronElasticProcess *) final override
virtual void SetMaxEnergy(G4double aM) final override
virtual void SetMinEnergy(G4double aM) final override
G4bool ApplyFactorXS() const
G4bool EnableNUDEX() const
G4double XSFactorNucleonInelastic() const
static G4Neutron * Neutron()