Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 #include "G4NeutronLENDBuilder.hh" 26 #include "G4NeutronLENDBuilder.hh" 27 #include "G4SystemOfUnits.hh" 27 #include "G4SystemOfUnits.hh" 28 #include "G4ParticleDefinition.hh" 28 #include "G4ParticleDefinition.hh" 29 #include "G4ParticleTable.hh" 29 #include "G4ParticleTable.hh" 30 #include "G4ProcessManager.hh" 30 #include "G4ProcessManager.hh" 31 31 32 G4NeutronLENDBuilder:: 32 G4NeutronLENDBuilder:: 33 G4NeutronLENDBuilder(const G4String& eva ) << 33 G4NeutronLENDBuilder( G4String eva ) 34 { 34 { 35 theLENDElastic = 0; 35 theLENDElastic = 0; 36 theLENDElasticCrossSection = 0; 36 theLENDElasticCrossSection = 0; 37 37 38 theLENDFission = 0; 38 theLENDFission = 0; 39 theLENDFissionCrossSection = 0; 39 theLENDFissionCrossSection = 0; 40 40 41 theLENDCapture = 0; 41 theLENDCapture = 0; 42 theLENDCaptureCrossSection = 0; 42 theLENDCaptureCrossSection = 0; 43 43 44 theLENDInelastic = 0; 44 theLENDInelastic = 0; 45 theLENDInelasticCrossSection = 0; 45 theLENDInelasticCrossSection = 0; 46 46 47 theMin = 0; 47 theMin = 0; 48 theIMin = theMin; 48 theIMin = theMin; 49 theMax = 20*MeV; 49 theMax = 20*MeV; 50 theIMax = theMax; 50 theIMax = theMax; 51 evaluation = eva; 51 evaluation = eva; 52 52 53 } 53 } >> 54 >> 55 G4NeutronLENDBuilder:: >> 56 ~G4NeutronLENDBuilder() >> 57 {} >> 58 54 void G4NeutronLENDBuilder:: 59 void G4NeutronLENDBuilder:: 55 Build(G4HadronElasticProcess * aP) 60 Build(G4HadronElasticProcess * aP) 56 { 61 { 57 if(theLENDElastic==0) theLENDElastic = new G 62 if(theLENDElastic==0) theLENDElastic = new G4LENDElastic( G4Neutron::Neutron() ); 58 theLENDElastic->SetMinEnergy(theMin); 63 theLENDElastic->SetMinEnergy(theMin); 59 theLENDElastic->SetMaxEnergy(theMax); 64 theLENDElastic->SetMaxEnergy(theMax); 60 65 61 if ( evaluation != "" ) theLENDElastic->Chan 66 if ( evaluation != "" ) theLENDElastic->ChangeDefaultEvaluation( evaluation ); 62 theLENDElastic->AllowNaturalAbundanceTarget( << 67 //theLENDElastic->AllowNaturalAbundanceTarget(); 63 //theLENDElastic->AllowAnyCandidateTarget(); << 68 theLENDElastic->AllowAnyCandidateTarget(); 64 if(theLENDElasticCrossSection == 0) theLENDE 69 if(theLENDElasticCrossSection == 0) theLENDElasticCrossSection = new G4LENDElasticCrossSection( G4Neutron::Neutron() ); 65 if ( evaluation != "" ) theLENDElasticCrossS 70 if ( evaluation != "" ) theLENDElasticCrossSection->ChangeDefaultEvaluation( evaluation ); 66 theLENDElasticCrossSection->AllowNaturalAbun << 71 //theLENDElasticCrossSection->AllowNaturalAbundanceTarget(); 67 //theLENDElasticCrossSection->AllowAnyCandid << 72 theLENDElasticCrossSection->AllowAnyCandidateTarget(); 68 aP->AddDataSet(theLENDElasticCrossSection); 73 aP->AddDataSet(theLENDElasticCrossSection); 69 aP->RegisterMe(theLENDElastic); 74 aP->RegisterMe(theLENDElastic); 70 } 75 } 71 76 72 void G4NeutronLENDBuilder:: 77 void G4NeutronLENDBuilder:: 73 Build(G4NeutronFissionProcess * aP) << 78 Build(G4HadronFissionProcess * aP) 74 { 79 { 75 if(theLENDFission == 0) theLENDFission = new 80 if(theLENDFission == 0) theLENDFission = new G4LENDFission( G4Neutron::Neutron() ); 76 theLENDFission->SetMinEnergy(theMin); 81 theLENDFission->SetMinEnergy(theMin); 77 theLENDFission->SetMaxEnergy(theMax); 82 theLENDFission->SetMaxEnergy(theMax); 78 if ( evaluation != "" ) theLENDFission->Chan 83 if ( evaluation != "" ) theLENDFission->ChangeDefaultEvaluation( evaluation ); 79 //theLENDFission->AllowNaturalAbundanceTarge 84 //theLENDFission->AllowNaturalAbundanceTarget(); 80 //theLENDFission->AllowAnyCandidateTarget(); << 85 theLENDFission->AllowAnyCandidateTarget(); 81 if(theLENDFissionCrossSection==0) theLENDFis 86 if(theLENDFissionCrossSection==0) theLENDFissionCrossSection=new G4LENDFissionCrossSection( G4Neutron::Neutron() ); 82 if ( evaluation != "" ) theLENDFissionCrossS 87 if ( evaluation != "" ) theLENDFissionCrossSection->ChangeDefaultEvaluation( evaluation ); 83 //theLENDFissionCrossSection->AllowNaturalAb 88 //theLENDFissionCrossSection->AllowNaturalAbundanceTarget(); 84 //theLENDFissionCrossSection->AllowAnyCandid << 89 theLENDFissionCrossSection->AllowAnyCandidateTarget(); 85 aP->AddDataSet(theLENDFissionCrossSection); 90 aP->AddDataSet(theLENDFissionCrossSection); 86 aP->RegisterMe(theLENDFission); 91 aP->RegisterMe(theLENDFission); 87 } 92 } 88 93 89 void G4NeutronLENDBuilder:: 94 void G4NeutronLENDBuilder:: 90 Build(G4NeutronCaptureProcess * aP) << 95 Build(G4HadronCaptureProcess * aP) 91 { 96 { 92 if(theLENDCapture==0) theLENDCapture = new G 97 if(theLENDCapture==0) theLENDCapture = new G4LENDCapture( G4Neutron::Neutron() ); 93 theLENDCapture->SetMinEnergy(theMin); 98 theLENDCapture->SetMinEnergy(theMin); 94 theLENDCapture->SetMaxEnergy(theMax); 99 theLENDCapture->SetMaxEnergy(theMax); 95 if ( evaluation != "" ) theLENDCapture->Chan 100 if ( evaluation != "" ) theLENDCapture->ChangeDefaultEvaluation( evaluation ); 96 theLENDCapture->AllowNaturalAbundanceTarget( << 101 //theLENDCapture->AllowNaturalAbundanceTarget(); 97 //theLENDCapture->AllowAnyCandidateTarget(); << 102 theLENDCapture->AllowAnyCandidateTarget(); 98 if(theLENDCaptureCrossSection==0) theLENDCap 103 if(theLENDCaptureCrossSection==0) theLENDCaptureCrossSection = new G4LENDCaptureCrossSection( G4Neutron::Neutron() ); 99 if ( evaluation != "" ) theLENDCaptureCrossS 104 if ( evaluation != "" ) theLENDCaptureCrossSection->ChangeDefaultEvaluation( evaluation ); 100 theLENDCaptureCrossSection->AllowNaturalAbun << 105 //theLENDCaptureCrossSection->AllowNaturalAbundanceTarget(); 101 //theLENDCaptureCrossSection->AllowAnyCandid << 106 theLENDCaptureCrossSection->AllowAnyCandidateTarget(); 102 aP->AddDataSet(theLENDCaptureCrossSection); 107 aP->AddDataSet(theLENDCaptureCrossSection); 103 aP->RegisterMe(theLENDCapture); 108 aP->RegisterMe(theLENDCapture); 104 } 109 } 105 110 106 void G4NeutronLENDBuilder:: 111 void G4NeutronLENDBuilder:: 107 Build(G4HadronInelasticProcess * aP) << 112 Build(G4NeutronInelasticProcess * aP) 108 { 113 { 109 if(theLENDInelastic==0) theLENDInelastic = n 114 if(theLENDInelastic==0) theLENDInelastic = new G4LENDInelastic( G4Neutron::Neutron() ); 110 theLENDInelastic->SetMinEnergy(theIMin); 115 theLENDInelastic->SetMinEnergy(theIMin); 111 theLENDInelastic->SetMaxEnergy(theIMax); 116 theLENDInelastic->SetMaxEnergy(theIMax); 112 if ( evaluation != "" ) theLENDInelastic->Ch 117 if ( evaluation != "" ) theLENDInelastic->ChangeDefaultEvaluation( evaluation ); 113 theLENDInelastic->AllowNaturalAbundanceTarge << 118 //theLENDInelastic->AllowNaturalAbundanceTarget(); 114 //theLENDInelastic->AllowAnyCandidateTarget( << 119 theLENDInelastic->AllowAnyCandidateTarget(); 115 if(theLENDInelasticCrossSection==0) theLENDI 120 if(theLENDInelasticCrossSection==0) theLENDInelasticCrossSection = new G4LENDInelasticCrossSection( G4Neutron::Neutron() ); 116 if ( evaluation != "" ) theLENDInelasticCros 121 if ( evaluation != "" ) theLENDInelasticCrossSection->ChangeDefaultEvaluation( evaluation ); 117 theLENDInelasticCrossSection->AllowNaturalAb << 122 //theLENDInelasticCrossSection->AllowNaturalAbundanceTarget(); 118 //theLENDInelasticCrossSection->AllowAnyCand << 123 theLENDInelasticCrossSection->AllowAnyCandidateTarget(); 119 aP->AddDataSet(theLENDInelasticCrossSection) 124 aP->AddDataSet(theLENDInelasticCrossSection); 120 aP->RegisterMe(theLENDInelastic); 125 aP->RegisterMe(theLENDInelastic); 121 } 126 } 122 << 123 127