#include <G4QNeutronHPBuilder.hh>
Public Member Functions | |
G4QNeutronHPBuilder () | |
virtual | ~G4QNeutronHPBuilder () |
void | Build () |
void | RegisterMe (G4VNeutronBuilder *aB) |
Definition at line 62 of file G4QNeutronHPBuilder.hh.
G4QNeutronHPBuilder::G4QNeutronHPBuilder | ( | ) |
Definition at line 43 of file G4QNeutronHPBuilder.cc.
References G4Neutron::Neutron().
00043 : 00044 theNeutrons(0) 00045 , theNeutronFission(0) 00046 , theNeutronCapture(0) 00047 , theCHIPSNGamma(0) 00048 , theHPNeutron(0) 00049 , wasActivated(false) 00050 { 00051 theNeutronInelastic = new G4NeutronInelasticProcess; 00052 theCHIPSInelastic = new G4QInelastic; 00053 const G4ParticleDefinition* proj = G4Neutron::Neutron(); 00054 const G4String& INprocessName = "MixedHPQNeutronInelasticProcess"; 00055 theInProcessMixer= new G4QDiscProcessMixer(INprocessName, proj); 00056 const G4String& NGprocessName = "MixedHPQNeutronGammaProcess"; 00057 theNgProcessMixer= new G4QDiscProcessMixer(NGprocessName, proj); 00058 const G4String& FIprocessName = "MixedHPQNeutronFissionProcess"; 00059 theFiProcessMixer= new G4QDiscProcessMixer(FIprocessName, proj); 00060 }
G4QNeutronHPBuilder::~G4QNeutronHPBuilder | ( | ) | [virtual] |
Definition at line 62 of file G4QNeutronHPBuilder.cc.
00063 { 00064 delete theCHIPSInelastic; 00065 delete theCHIPSNGamma; 00066 delete theNeutronInelastic; 00067 delete theHPNeutron; 00068 delete theInProcessMixer; 00069 delete theNgProcessMixer; 00070 delete theFiProcessMixer; 00071 }
void G4QNeutronHPBuilder::Build | ( | ) |
Definition at line 73 of file G4QNeutronHPBuilder.cc.
References G4ProcessManager::AddDiscreteProcess(), G4QDiscProcessMixer::AddDiscreteProcess(), G4ParticleDefinition::GetProcessManager(), G4Neutron::Neutron(), and G4NeutronBuilder::RegisterMe().
00074 { 00075 wasActivated = true; 00076 // The model definition for neutrons (needed for HP implementation) 00077 theNeutrons = new G4NeutronBuilder; 00078 theNeutrons->RegisterMe( theHPNeutron = new G4NeutronHPBuilder ); 00079 // End of the model definition 00080 std::vector<G4VNeutronBuilder *>::iterator i; 00081 for(i = theModelCollections.begin(); i != theModelCollections.end(); i++) 00082 { 00083 (*i)->Build(theNeutronInelastic); 00084 (*i)->Build(theNeutronCapture); 00085 (*i)->Build(theNeutronFission); 00086 } 00087 G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager(); 00088 00089 theInProcessMixer->AddDiscreteProcess(theCHIPSInelastic, 1.E8*megaelectronvolt); 00090 theInProcessMixer->AddDiscreteProcess(theNeutronInelastic, 19.9*megaelectronvolt); 00091 00092 theNgProcessMixer->AddDiscreteProcess(theCHIPSNGamma, 1.E8*megaelectronvolt); 00093 theNgProcessMixer->AddDiscreteProcess(theNeutronCapture, 19.9*megaelectronvolt); 00094 00095 //theFiProcessMixer->AddDiscreteProcess(theCHIPSFission, 1.E8*megaelectronvolt); 00096 //theFiProcessMixer->AddDiscreteProcess(theNeutronFission, 19.9*megaelectronvolt); 00097 00098 theProcMan->AddDiscreteProcess(theInProcessMixer); // Mix CHIPS+HP for inelastic 00099 theProcMan->AddDiscreteProcess(theNgProcessMixer); // Mix CHIPS+HP for (n,gamma) 00100 theProcMan->AddDiscreteProcess(theNeutronFission); // Only HP for fission 00101 //theProcMan->AddDiscreteProcess(theFiProcessMixer); // Mix CHIPS+HP for fission 00102 }
void G4QNeutronHPBuilder::RegisterMe | ( | G4VNeutronBuilder * | aB | ) | [inline] |