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 // 26 // 27 // This software was developed by Lawrence Liv 27 // This software was developed by Lawrence Livermore National Laboratory. 28 // 28 // 29 // Redistribution and use in source and binary 29 // Redistribution and use in source and binary forms, with or without 30 // modification, are permitted provided that t 30 // modification, are permitted provided that the following conditions are met: 31 // 31 // 32 // 1. Redistributions of source code must reta 32 // 1. Redistributions of source code must retain the above copyright notice, 33 // this list of conditions and the following 33 // this list of conditions and the following disclaimer. 34 // 2. Redistributions in binary form must repr 34 // 2. Redistributions in binary form must reproduce the above copyright notice, 35 // this list of conditions and the following 35 // this list of conditions and the following disclaimer in the documentation 36 // and/or other materials provided with the 36 // and/or other materials provided with the distribution. 37 // 3. The name of the author may not be used t 37 // 3. The name of the author may not be used to endorse or promote products 38 // derived from this software without specif 38 // derived from this software without specific prior written permission. 39 // 39 // 40 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``A 40 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 41 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 41 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 42 // MERCHANTABILITY AND FITNESS FOR A PARTICULA 42 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 43 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DI 43 // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 44 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGE 44 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 45 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES 45 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 46 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AN 46 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 47 // WHETHER IN CONTRACT, STRICT LIABILITY, OR T 47 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 48 // OTHERWISE) ARISING IN ANY WAY OUT OF THE US 48 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 49 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 49 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 50 // 50 // 51 // Copyright (c) 2006 The Regents of the Unive 51 // Copyright (c) 2006 The Regents of the University of California. 52 // All rights reserved. 52 // All rights reserved. 53 // UCRL-CODE-224807 53 // UCRL-CODE-224807 54 // 54 // 55 // 55 // >> 56 // $Id: G4SmpNEngCf252.cc 67966 2013-03-13 09:38:38Z gcosmo $ 56 // 57 // 57 58 58 #include <cmath> 59 #include <cmath> 59 #include "G4Log.hh" << 60 #include "G4Pow.hh" << 61 #include "G4fissionEvent.hh" 60 #include "G4fissionEvent.hh" 62 61 63 G4double G4fissionEvent::G4SmpNEngCf252(G4int 62 G4double G4fissionEvent::G4SmpNEngCf252(G4int option) { 64 63 65 /* 64 /* 66 Description 65 Description 67 Sample energy spectrum for Cf-252. 66 Sample energy spectrum for Cf-252. 68 */ 67 */ 69 68 70 /* 69 /* 71 Input 70 Input 72 option - 0 Mannhart corrected Maxwellia 71 option - 0 Mannhart corrected Maxwellian spectrum 73 1 Madland-Nix theoretical spec 72 1 Madland-Nix theoretical spectrum 74 2 Froehner Watt spectrum 73 2 Froehner Watt spectrum 75 Return 74 Return 76 energy of neutron emitted by spontaneous f 75 energy of neutron emitted by spontaneous fission 77 */ 76 */ 78 77 79 G4Pow* Pow=G4Pow::GetInstance(); << 80 << 81 G4double a,b; 78 G4double a,b; 82 G4double gpar; 79 G4double gpar; 83 G4double g2; 80 G4double g2; 84 G4double ferg; 81 G4double ferg; 85 G4double r; 82 G4double r; 86 83 87 r = fisslibrng(); 84 r = fisslibrng(); 88 85 89 /* 86 /* 90 Mannhart Corrected Spectrum 87 Mannhart Corrected Spectrum 91 */ 88 */ 92 if(option == 0) { 89 if(option == 0) { 93 if(r == 0) return 0.000001; 90 if(r == 0) return 0.000001; 94 if (r > 0.0 && r <= 0.0005) 91 if (r > 0.0 && r <= 0.0005) 95 return 0.00003 + 0.04992*(r/0.0005) - 0. << 92 return 0.00003 + 0.04992*(r/0.0005) - 0.59473*std::pow(r/0.0005,2) 96 + 5.44877*Pow->powN(r/0.0005,3) - 2 << 93 + 5.44877*std::pow(r/0.0005,3) - 29.38086*std::pow(r/0.0005,4) 97 + 97.14014*Pow->powN(r/0.0005,5) - << 94 + 97.14014*std::pow(r/0.0005,5) - 202.82112*std::pow(r/0.0005,6) 98 + 268.2301*Pow->powN(r/0.0005,7) - << 95 + 268.2301*std::pow(r/0.0005,7) - 217.75316*std::pow(r/0.0005,8) 99 + 98.96285*Pow->powN(r/0.0005,9) - << 96 + 98.96285*std::pow(r/0.0005,9) - 19.27077*std::pow(r/0.0005,10); 100 97 101 if (r > 0.0005 && r <= 0.005) 98 if (r > 0.0005 && r <= 0.005) 102 return 0.01118 + 0.06715*((r-.0005)/.004 99 return 0.01118 + 0.06715*((r-.0005)/.0045) 103 - 0.09236*Pow->powN((r-.0005)/.0045 << 100 - 0.09236*std::pow((r-.0005)/.0045,2) + 0.26224*std::pow((r-.0005)/.0045,3) 104 - 0.64784*Pow->powN((r-.0005)/.0045 << 101 - 0.64784*std::pow((r-.0005)/.0045,4) + 1.16830*std::pow((r-.0005)/.0045,5) 105 - 1.43858*Pow->powN((r-.0005)/.0045 << 102 - 1.43858*std::pow((r-.0005)/.0045,6) + 1.13771*std::pow((r-.0005)/.0045,7) 106 - 0.51839*Pow->powN((r-.0005)/.0045 << 103 - 0.51839*std::pow((r-.0005)/.0045,8) + 0.10302*std::pow((r-.0005)/.0045,9); 107 104 108 if (r > 0.005 && r <= 0.05) 105 if (r > 0.005 && r <= 0.05) 109 return 0.05244+0.32101*((r-.005)/.045) 106 return 0.05244+0.32101*((r-.005)/.045) 110 - 0.52574*Pow->powN((r-.005)/.045, << 107 - 0.52574*std::pow((r-.005)/.045,2) + 2.80540*std::pow((r-.005)/.045,3) 111 - 14.88036*Pow->powN((r-.005)/.045, << 108 - 14.88036*std::pow((r-.005)/.045,4) + 55.46869*std::pow((r-.005)/.045,5) 112 -133.64517*Pow->powN((r-.005)/.045, << 109 -133.64517*std::pow((r-.005)/.045,6) + 202.88434*std::pow((r-.005)/.045,7) 113 -186.86758*Pow->powN((r-.005)/.045, << 110 -186.86758*std::pow((r-.005)/.045,8) + 95.19530*std::pow((r-.005)/.045,9) 114 - 20.55275*Pow->powN((r-.005)/.045, << 111 - 20.55275*std::pow((r-.005)/.045,10); 115 112 116 if(r > 0.05 && r <= 0.25) return 0.25585+0 << 113 if(r > 0.05 && r <= 0.25) return 0.25585+0.75532*((r-.05)/.2)-0.73676*std::pow((r-.05)/.2,2)+3.65653*std::pow((r-.05)/.2,3)-13.80528*std::pow((r-.05)/.2,4)+33.35932*std::pow((r-.05)/.2,5)-50.0410*std::pow((r-.05)/.2,6)+45.13793*std::pow((r-.05)/.2,7)-22.4072*std::pow((r-.05)/.2,8)+4.70141*std::pow((r-.05)/.2,9); 117 114 118 if(r > 0.25 && r <= 0.50) return 0.87609+0 << 115 if(r > 0.25 && r <= 0.50) return 0.87609+0.74687*((r-.25)/.25)+0.02849*std::pow((r-.25)/.25,2)+0.06145*std::pow((r-.25)/.25,3)-0.09589*std::pow((r-.25)/.25,4)+0.29798*std::pow((r-.25)/.25,5)-0.57707*std::pow((r-.25)/.25,6)+0.66181*std::pow((r-.25)/.25,7)-0.40720*std::pow((r-.25)/.25,8)+0.10370*std::pow((r-.25)/.25,9); 119 116 120 if(r > 0.5 && r <= 0.75) return 1.69622+0. << 117 if(r > 0.5 && r <= 0.75) return 1.69622+0.93896*((r-.5)/.25)+0.16428*std::pow((r-.5)/.25,2)+0.21761*std::pow((r-.5)/.25,3)-0.96904*std::pow((r-.5)/.25,4)+3.34951*std::pow((r-.5)/.25,5)-6.35177*std::pow((r-.5)/.25,6)+6.90120*std::pow((r-.5)/.25,7)-3.98682*std::pow((r-.5)/.25,8)+0.95276*std::pow((r-.5)/.25,9); 121 118 122 if(r > 0.75 && r <= 0.95) return 2.91217+1 << 119 if(r > 0.75 && r <= 0.95) return 2.91217+1.52474*((r-.75)/.2)-4.99340*std::pow((r-.75)/.2,2)+58.72977*std::pow((r-.75)/.2,3)-313.30984*std::pow((r-.75)/.2,4)+946.0791*std::pow((r-.75)/.2,5)-1679.85559*std::pow((r-.75)/.2,6)+1740.83984*std::pow((r-.75)/.2,7)-973.51886*std::pow((r-.75)/.2,8)+227.06831*std::pow((r-.75)/.2,9); 123 if(r > 0.95 && r <= 0.975) return 5.50137 << 120 if(r > 0.95 && r <= 0.975) return 5.50137-0.99765*((r-.95)/.025)+27.57678*std::pow((r-.95)/.025,2)-218.47931*std::pow((r-.95)/.025,3)+1024.0426*std::pow((r-.95)/.025,4)-3005.86182*std::pow((r-.95)/.025,5)+5684.52295*std::pow((r-.95)/.025,6)-6919.36182*std::pow((r-.95)/.025,7)+5235.71777*std::pow((r-.95)/.025,8)-2240.06934*std::pow((r-.95)/.025,9)+413.9299*std::pow((r-.95)/.025,10); 124 121 125 if(r > 0.975 && r <= 0.995) return 6.5217 << 122 if(r > 0.975 && r <= 0.995) return 6.52172+1.21273*((r-.975)/.02)+0.69998*std::pow((r-.975)/.02,2)-1.78886*std::pow((r-.975)/.02,3)+11.57883*std::pow((r-.975)/.02,4)-39.41592*std::pow((r-.975)/.02,5)+88.32992*std::pow((r-.975)/.02,6)-127.68685*std::pow((r-.975)/.02,7)+115.97678*std::pow((r-.975)/.02,8)-60.09069*std::pow((r-.975)/.02,9)+13.66798*std::pow((r-.975)/.02,10); 126 if(r > 0.995 && r <= 0.999) return 9.0050 << 123 if(r > 0.995 && r <= 0.999) return 9.00502+1.31798*((r-.995)/.004)-1.17448*std::pow((r-.995)/.004,2)+20.15941*std::pow((r-.995)/.004,3)-114.27763*std::pow((r-.995)/.004,4)+370.04855*std::pow((r-.995)/.004,5)-701.888*std::pow((r-.995)/.004,6)+776.28204*std::pow((r-.995)/.004,7)-462.68823*std::pow((r-.995)/.004,8)+115.05296*std::pow((r-.995)/.004,9); 127 if(r > 0.999 && r <= 0.9997) return 11.83 << 124 if(r > 0.999 && r <= 0.9997) return 11.83792-1.8952*((r-.999)/.0007)+50.30901*std::pow((r-.999)/.0007,2)-239.56978*std::pow((r-.999)/.0007,3)+514.90747*std::pow((r-.999)/.0007,4)-508.73672*std::pow((r-.999)/.0007,5)+191.09637*std::pow((r-.999)/.0007,6); 128 if(r > 0.9997) return 20.; 125 if(r > 0.9997) return 20.; 129 } 126 } 130 /* 127 /* 131 Madland-Nix Spectrum 128 Madland-Nix Spectrum 132 */ 129 */ 133 if(option == 1) { 130 if(option == 1) { 134 if(r <= 1.001065092e-03) return 1.9463138 << 131 if(r <= 1.001065092e-03) return 1.946313876*std::pow(r,0.6667261950); 135 else if(r > 1.001065092e-03 && r <= 1.001 << 132 else if(r > 1.001065092e-03 && r <= 1.001389105e-02) return 2.00504119*std::pow(r,0.6709990736); 136 else if(r > 1.001389105e-02 && r <= 5.022 << 133 else if(r > 1.001389105e-02 && r <= 5.022359145e-02) return 2.107978578*std::pow(r,0.7077041191); 137 else if(r > 5.022359145e-02 && r <= 1.000 << 134 else if(r > 5.022359145e-02 && r <= 1.000989427e-01) return 2.280517358*std::pow(r,0.7077041191); 138 else if(r > 1.000989427e-01 && r <= 1.500 << 135 else if(r > 1.000989427e-01 && r <= 1.500872491e-01) return 2.444108408*std::pow(r,0.73764526215); 139 else if(r > 1.500872491e-01 && r <= 2.002 << 136 else if(r > 1.500872491e-01 && r <= 2.002079974e-01) return 2.621855634*std::pow(r,0.7745779546); 140 else if(r > 2.002079974e-01 && r <= 2.252 << 137 else if(r > 2.002079974e-01 && r <= 2.25221648e-01) return 2.753099265*std::pow(r,0.8044994010); 141 else if(r > 2.25221648e-01 && r <= 2.5015 << 138 else if(r > 2.25221648e-01 && r <= 2.501564538e-01) return 2.834010751*std::pow(r,0.8239187384); 142 else if(r > 2.501564538e-01 && r <= 2.752 << 139 else if(r > 2.501564538e-01 && r <= 2.752546770e-01) return 2.911676280*std::pow(r,0.8434235719); 143 else if(r > 2.752546770e-01 && r <= 3.000 << 140 else if(r > 2.752546770e-01 && r <= 3.000964724e-01) return 2.988430135*std::pow(r,0.8635883266); 144 else if(r > 3.000964724e-01 && r <= 3.500 << 141 else if(r > 3.000964724e-01 && r <= 3.500470095e-01) return 3.099471293*std::pow(r,0.8942289512); 145 else if(r > 3.500470095e-01 && r <= 4.001 << 142 else if(r > 3.500470095e-01 && r <= 4.001118970e-01) return 3.244686176*std::pow(r,0.9378302608); 146 else if(r > 4.001118970e-01 && r <= 5.000 << 143 else if(r > 4.001118970e-01 && r <= 5.000461778e-01) return 3.543403932*std::pow(r,1.0411008510); 147 else if(r > 5.000461778e-01 && r <= 5.501 << 144 else if(r > 5.000461778e-01 && r <= 5.501318506e-01) return 3.708358099*std::pow(r,1.1068317830); 148 else if(r > 5.501318506e-01 && r <= 6.000 << 145 else if(r > 5.501318506e-01 && r <= 6.000655433e-01) return 3.889805304*std::pow(r,1.1868908770); 149 else if(r > 6.000655433e-01 && r <= 6.500 << 146 else if(r > 6.000655433e-01 && r <= 6.500147305e-01) return 4.092497225*std::pow(r,1.2865658570); 150 else if(r > 6.500147305e-01 && r <= 7.000 << 147 else if(r > 6.500147305e-01 && r <= 7.000271284e-01) return 4.322906068*std::pow(r,1.4140909190); 151 else if(r > 7.000271284e-01 && r <= 7.501 << 148 else if(r > 7.000271284e-01 && r <= 7.501159110e-01) return 4.589909069*std::pow(r,1.5828217210); 152 else if(r > 7.501159110e-01 && r <= 8.000 << 149 else if(r > 7.501159110e-01 && r <= 8.000662513e-01) return 4.906598744*std::pow(r,1.8162034790); 153 else if(r > 8.000662513e-01 && r <= 8.500 << 150 else if(r > 8.000662513e-01 && r <= 8.500772033e-01) return 5.297053797*std::pow(r,2.1626825870); 154 else if(r > 8.500772033e-01 && r <= 8.750 << 151 else if(r > 8.500772033e-01 && r <= 8.750123088e-01) return 5.650277904*std::pow(r,2.5517142900); 155 else if(r > 8.750123088e-01 && r <= 9.000 << 152 else if(r > 8.750123088e-01 && r <= 9.000106866e-01) return 5.947741976*std::pow(r,2.9383159800); 156 else if(r > 9.000106866e-01 && r <= 9.250 << 153 else if(r > 9.000106866e-01 && r <= 9.250286977e-01) return 6.317014169*std::pow(r,3.5155713570); 157 else if(r > 9.250286977e-01 && r <= 9.350 << 154 else if(r > 9.250286977e-01 && r <= 9.350074655e-01) return 6.625757778*std::pow(r,4.1118364020); 158 else if(r > 9.350074655e-01 && r <= 9.400 << 155 else if(r > 9.350074655e-01 && r <= 9.400070002e-01) return 6.784126941*std::pow(r,4.4594479870); 159 else if(r > 9.400070002e-01 && r <= 9.500 << 156 else if(r > 9.400070002e-01 && r <= 9.500026229e-01) return 6.969180156*std::pow(r,4.9019105900); 160 else if(r > 9.500026229e-01 && r <= 9.600 << 157 else if(r > 9.500026229e-01 && r <= 9.600065896e-01) return 7.254643542*std::pow(r,5.6894827520); 161 else if(r > 9.600065896e-01 && r <= 9.700 << 158 else if(r > 9.600065896e-01 && r <= 9.700165577e-01) return 7.613500497*std::pow(r,6.8841593900); 162 else if(r > 9.700165577e-01 && r <= 9.750 << 159 else if(r > 9.700165577e-01 && r <= 9.750157135e-01) return 7.944100103*std::pow(r,8.2544400860); 163 else if(r > 9.750157135e-01 && r <= 9.800 << 160 else if(r > 9.750157135e-01 && r <= 9.800101585e-01) return 8.228439642*std::pow(r,9.6531190300); 164 else if(r > 9.800101585e-01 && r <= 9.850 << 161 else if(r > 9.800101585e-01 && r <= 9.850018119e-01) return 8.586524083*std::pow(r,11.783756400); 165 else if(r > 9.850018119e-01 && r <= 9.875 << 162 else if(r > 9.850018119e-01 && r <= 9.875072929e-01) return 8.917364901*std::pow(r,14.240137310); 166 else if(r > 9.875072929e-01 && r <= 9.900 << 163 else if(r > 9.875072929e-01 && r <= 9.900006975e-01) return 9.202675761*std::pow(r,16.76089029); 167 else if(r > 9.900006975e-01 && r <= 9.925 << 164 else if(r > 9.900006975e-01 && r <= 9.925048152e-01) return 9.562781386*std::pow(r,20.61962568); 168 else if(r > 9.925048152e-01 && r <= 9.935 << 165 else if(r > 9.925048152e-01 && r <= 9.935030103e-01) return 9.867915664*std::pow(r,24.69147261); 169 else if(r > 9.935030103e-01 && r <= 9.945 << 166 else if(r > 9.935030103e-01 && r <= 9.945000177e-01) return 10.08727342*std::pow(r,28.07701487); 170 else if(r > 9.945000177e-01 && r <= 9.950 << 167 else if(r > 9.945000177e-01 && r <= 9.950025127e-01) return 10.27382614*std::pow(r,31.36001051); 171 else if(r > 9.950025127e-01 && r <= 9.955 << 168 else if(r > 9.950025127e-01 && r <= 9.955029368e-01) return 10.41724243*std::pow(r,34.13127669); 172 else if(r > 9.955029368e-01 && r <= 9.960 << 169 else if(r > 9.955029368e-01 && r <= 9.960005970e-01) return 10.57636221*std::pow(r,37.50088614); 173 else if(r > 9.960005970e-01 && r <= 9.965 << 170 else if(r > 9.960005970e-01 && r <= 9.965016080e-01) return 10.75639015*std::pow(r,41.72354164); 174 else if(r > 9.965016080e-01 && r <= 9.970 << 171 else if(r > 9.965016080e-01 && r <= 9.970001795e-01) return 10.96366661*std::pow(r,47.18729543); 175 else if(r > 9.970001795e-01 && r <= 9.975 << 172 else if(r > 9.970001795e-01 && r <= 9.975004375e-01) return 11.20771170*std::pow(r,54.54899604); 176 else if(r > 9.975004375e-01 && r <= 9.978 << 173 else if(r > 9.975004375e-01 && r <= 9.978504408e-01) return 11.45202216*std::pow(r,63.11906699); 177 else if(r > 9.978504408e-01 && r <= 9.989 174 else if(r > 9.978504408e-01 && r <= 9.989524675e-01) 178 return 2.72756636666e5-5.47258138432e5* << 175 return 2.72756636666e5-5.47258138432e5*r+2.74514044871e5*std::pow(r,2); 179 else if(r > 9.989524675e-01 && r <= 9.994 176 else if(r > 9.989524675e-01 && r <= 9.994929298e-01) 180 return 1.14946879661e6-2.30252188973e6* << 177 return 1.14946879661e6-2.30252188973e6*r+1.15306661788e6*std::pow(r,2); 181 else if(r > 9.994929298e-01 && r <= 9.997 178 else if(r > 9.994929298e-01 && r <= 9.997558922e-01) 182 return 4.90621526236e6-9.81982943883e6* << 179 return 4.90621526236e6-9.81982943883e6*r+4.91362868673e6*std::pow(r,2); 183 else if(r > 9.997558922e-01 && r <= 9.998 180 else if(r > 9.997558922e-01 && r <= 9.998830120e-01) 184 return 2.11365688795184e7-4.22884732250 << 181 return 2.11365688795184e7-4.22884732250404e7*r+2.11519198434219e7*std::pow(r,2); 185 else if(r > 9.998830120e-01 && r <= 9.999 182 else if(r > 9.998830120e-01 && r <= 9.999441620e-01) 186 return 9.18987945911229e7-1.83829506875 << 183 return 9.18987945911229e7-1.83829506875257e8*r+9.19307287711182e7*std::pow(r,2); 187 else if(r > 9.999441620e-01 && r <= 9.999 184 else if(r > 9.999441620e-01 && r <= 9.999734440e-01) 188 return 4.02781481130433e8-8.05629656768 << 185 return 4.02781481130433e8-8.05629656768407e8*r+4.02848193115356e8*std::pow(r,2); 189 else if(r > 9.999734440e-01 && r <= 9.999 186 else if(r > 9.999734440e-01 && r <= 9.999874120e-01) 190 return 1.77804635135775e9-3.55623257045 << 187 return 1.77804635135775e9-3.55623257045546e9*r+1.77818623756641e9*std::pow(r,2); 191 else if(r > 9.999874120e-01 && r <= 9.999 188 else if(r > 9.999874120e-01 && r <= 9.999940510e-01) 192 return 7.90099032702915e9-1.58022749659 << 189 return 7.90099032702915e9-1.58022749659903e10*r+7.90128465842187e9*std::pow(r,2); 193 else if(r > 9.999940510e-01 && r <= 9.999 190 else if(r > 9.999940510e-01 && r <= 9.999971960e-01) 194 return 3.53223507413091e10-7.0645322716 << 191 return 3.53223507413091e10-7.06453227162775e10*r+3.53229719954219e10*std::pow(r,2); 195 else if(r > 9.999971960e-01 && r <= 9.999 192 else if(r > 9.999971960e-01 && r <= 9.999986820e-01) 196 return 1.58786475903785e11-3.1757426684 << 193 return 1.58786475903785e11-3.17574266841213e11*r+1.58787790958875e11*std::pow(r,2); 197 else if(r > 9.999986820e-01 && r <= 9.999 194 else if(r > 9.999986820e-01 && r <= 9.999993820e-01) 198 return 7.17433904438156e11-1.4348705997 << 195 return 7.17433904438156e11-1.43487059972047e12*r+7.17436695304750e11*std::pow(r,2); 199 else if(r > 9.999993820e-01 && r <= 9.999 196 else if(r > 9.999993820e-01 && r <= 9.999997110e-01) 200 return 3.257374123945330e12-6.514754184 << 197 return 3.257374123945330e12-6.514754184993900e12*r+3.257380061072000e12*std::pow(r,2); 201 else if(r > 9.999997110e-01 && r <= 9.999 198 else if(r > 9.999997110e-01 && r <= 9.999998650e-01) 202 return 1.48641255466171e13-2.9728263753 << 199 return 1.48641255466171e13-2.97282637539286e13*r+1.48641382073360e13*std::pow(r,2); 203 else if(r > 9.999998650e-01 && r <= 9.999 200 else if(r > 9.999998650e-01 && r <= 9.999999370e-01) 204 return 6.82056055248876e13-1.3641123811 << 201 return 6.82056055248876e13-1.36411238119518e14*r+6.82056325946560e13*std::pow(r,2); 205 else if(r > 9.999999370e-01 && r <= 1.000 202 else if(r > 9.999999370e-01 && r <= 1.000000000e00) 206 return 3.14919363013517e14-6.2983878407 << 203 return 3.14919363013517e14-6.29838784079090e14*r+3.14919421065600e14*std::pow(r,2); 207 } 204 } 208 /* 205 /* 209 Frohner Watt Spectrum 206 Frohner Watt Spectrum 210 */ 207 */ 211 if (option == 2) { 208 if (option == 2) { 212 a=1.175; 209 a=1.175; 213 b=1.040; 210 b=1.040; 214 211 215 G4int icounter=0; << 216 G4int icounter_max=1024; << 217 do { 212 do { 218 gpar = std::sqrt(Pow->powA(1+0.125*a*b,2 << 213 gpar = std::sqrt(std::pow(1+0.125*a*b,2.)-1)+(1+0.125*a*b); 219 g2=-G4Log(fisslibrng()); << 214 g2=-std::log(fisslibrng()); 220 ferg=a*gpar*g2; 215 ferg=a*gpar*g2; 221 << 216 } while (std::pow((1-gpar)*(1+g2)-std::log(fisslibrng()),2.) > b*ferg); 222 icounter++; << 223 if ( icounter > icounter_max ) { << 224 G4cout << "Loop-counter exceeded the thresh << 225 break; << 226 } << 227 << 228 } while (Pow->powA((1-gpar)*(1+g2)-G4Log(f << 229 // Loop checking, 11.03.2015, T. Koi << 230 return ferg; 217 return ferg; 231 } 218 } 232 219 233 // 220 // 234 // Fall through 221 // Fall through 235 // 222 // 236 223 237 G4cout << " SmpNEngCf252: unrecognized optio 224 G4cout << " SmpNEngCf252: unrecognized option = " << option << G4endl; 238 return -1.0; 225 return -1.0; 239 } 226 } 240 227