3 #include "G4NeutronInelasticXS.hh"
4 #include "G4NeutronCaptureXS.hh"
6 #include "G4ParticleDefinition.hh"
7 #include "G4HadronicProcess.hh"
8 #include "G4ProcessManager.hh"
9 #include "G4ProcessVector.hh"
10 #include "G4HadronicProcessType.hh"
12 #include "G4Neutron.hh"
15 G4VPhysicsConstructor(
"Neutron XS"),
verbose(ver) {}
23 G4NeutronInelasticXS* xinel =
new G4NeutronInelasticXS();
24 G4NeutronCaptureXS* xcap =
new G4NeutronCaptureXS();
26 const G4ParticleDefinition* neutron = G4Neutron::Neutron();
28 G4cout <<
"### CMSNeutronXS: use alternative neutron X-sections"
32 G4ProcessVector* pv = neutron->GetProcessManager()->GetProcessList();
34 G4HadronicProcess* had = 0;
35 for(G4int
i=0;
i<
n;
i++) {
36 if(fHadronInelastic == ((*pv)[
i])->GetProcessSubType()) {
37 had =
static_cast<G4HadronicProcess*
>((*pv)[
i]);
38 had->AddDataSet(xinel);
39 }
else if(fCapture == ((*pv)[i])->GetProcessSubType()) {
40 had =
static_cast<G4HadronicProcess*
>((*pv)[
i]);
41 had->AddDataSet(xcap);
CMSNeutronXS(const G4String &nam, G4int ver)
virtual void ConstructProcess()
virtual void ConstructParticle()