96{
99
101 auto inel = new G4HadronInelasticProcess( "neutronInelastic", neutron );
102 neutron->GetProcessManager()->AddDiscreteProcess(inel);
103
106 qgs.Build( inel );
107
111 ftf.Build( inel );
112
113 G4BertiniNeutronBuilder bert;
117
118 auto xsinel = new G4NeutronInelasticXS();
119 inel->AddDataSet( xsinel );
120 inel->AddDataSet( new G4NeutronHPInelasticXS() );
121 auto mod = new G4NeutronHPInelasticVI();
122 mod->SetMaxEnergy( 20*CLHEP::MeV );
123 inel->RegisterMe( mod );
124 if ( useFactorXS )
126
127 auto capture = new G4NeutronCaptureProcess( "nCaptureHP" );
128 neutron->GetProcessManager()->AddDiscreteProcess(capture);
129 capture->AddDataSet( new G4NeutronHPCaptureXS() );
131 capture->RegisterMe( new G4NuDEXNeutronCaptureModel() );
132 } else {
133 capture->RegisterMe( new G4NeutronRadCaptureHP() );
134 }
135
136 auto fission = new G4NeutronFissionProcess( "nFissionHP" );
137 neutron->GetProcessManager()->AddDiscreteProcess(fission);
138 fission->AddDataSet( new G4NeutronHPFissionXS() );
139 fission->RegisterMe( new G4NeutronFissionVI() );
140}
virtual void SetMaxEnergy(G4double aM) final override
virtual void SetMinEnergy(G4double aM) final override
virtual void Build(G4HadronElasticProcess *) final override
G4bool ApplyFactorXS() const
G4bool EnableNUDEX() const
G4double XSFactorNucleonInelastic() const
static G4Neutron * Neutron()