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