Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/lowenergy/src/G4RayleighAngularGenerator.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/electromagnetic/lowenergy/src/G4RayleighAngularGenerator.cc (Version 11.3.0) and /processes/electromagnetic/lowenergy/src/G4RayleighAngularGenerator.cc (Version 11.2)


  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 // -------------------------------------------     27 // -------------------------------------------------------------------
 28 //                                                 28 //
 29 // GEANT4 Class file                               29 // GEANT4 Class file
 30 //                                                 30 //
 31 // File name:     G4RayleighAngularGenerator       31 // File name:     G4RayleighAngularGenerator
 32 //                                                 32 //
 33 // Author:        V. Ivanchenko using design o     33 // Author:        V. Ivanchenko using design of existing 
 34 //                interface                        34 //                interface 
 35 //                                                 35 // 
 36 // Creation date: 31 May 2012                      36 // Creation date: 31 May 2012
 37 //                                                 37 //
 38 // Modifications:                                  38 // Modifications: 
 39 //                                                 39 //
 40 // Class Description: Class are tabulated data     40 // Class Description: Class are tabulated data according modified formula
 41 //                    modified fit formulas fr     41 //                    modified fit formulas from Dermott E. Cullen, 
 42 //                    Nucl. Instrum. Meth. Phy     42 //                    Nucl. Instrum. Meth. Phys. Res. B v.101, (4),499-510. 
 43 //                                                 43 //                    
 44 //                                                 44 //
 45 // Class for Rayleigh scattering generation        45 // Class for Rayleigh scattering generation
 46 //                                                 46 //
 47 // Class Description: End                          47 // Class Description: End 
 48 // -------------------------------------------     48 // -------------------------------------------------------------------
 49 //                                                 49 //
 50 //                                                 50 //    
 51                                                    51 
 52 #include "G4RayleighAngularGenerator.hh"           52 #include "G4RayleighAngularGenerator.hh"
 53 #include "G4PhysicalConstants.hh"                  53 #include "G4PhysicalConstants.hh"
 54 #include "G4SystemOfUnits.hh"                      54 #include "G4SystemOfUnits.hh"
 55 #include "Randomize.hh"                            55 #include "Randomize.hh"
 56 #include "G4Log.hh"                                56 #include "G4Log.hh"
 57 #include "G4Exp.hh"                                57 #include "G4Exp.hh"
 58                                                    58 
 59 using namespace std;                               59 using namespace std;
 60                                                    60 
 61 //....oooOO0OOooo........oooOO0OOooo........oo     61 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 62                                                    62 
 63 G4RayleighAngularGenerator::G4RayleighAngularG     63 G4RayleighAngularGenerator::G4RayleighAngularGenerator()
 64   : G4VEmAngularDistribution("CullenGenerator"     64   : G4VEmAngularDistribution("CullenGenerator")
 65 {                                                  65 {
 66   G4double x = cm/(h_Planck*c_light);              66   G4double x = cm/(h_Planck*c_light);
 67   fFactor = 0.5*x*x;                               67   fFactor = 0.5*x*x;
 68 }                                                  68 }
 69                                                    69 
 70 //....oooOO0OOooo........oooOO0OOooo........oo     70 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 71                                                    71 
 72 G4RayleighAngularGenerator::~G4RayleighAngular     72 G4RayleighAngularGenerator::~G4RayleighAngularGenerator() 
 73 {}                                                 73 {}
 74                                                    74 
 75 //....oooOO0OOooo........oooOO0OOooo........oo     75 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
 76                                                    76 
 77 G4ThreeVector&                                     77 G4ThreeVector& 
 78 G4RayleighAngularGenerator::SampleDirection(co     78 G4RayleighAngularGenerator::SampleDirection(const G4DynamicParticle* dp,
 79               G4double, G4int Z,                   79               G4double, G4int Z,
 80               const G4Material*)                   80               const G4Material*)
 81 {                                                  81 {
 82   G4double ekin = dp->GetKineticEnergy();          82   G4double ekin = dp->GetKineticEnergy();
 83   G4double xx = fFactor*ekin*ekin;                 83   G4double xx = fFactor*ekin*ekin;
 84                                                    84 
 85   G4double n0 = PP6[Z] - 1.0;                      85   G4double n0 = PP6[Z] - 1.0;
 86   G4double n1 = PP7[Z] - 1.0;                      86   G4double n1 = PP7[Z] - 1.0;
 87   G4double n2 = PP8[Z] - 1.0;                      87   G4double n2 = PP8[Z] - 1.0;
 88   G4double b0 = PP3[Z];                            88   G4double b0 = PP3[Z];
 89   G4double b1 = PP4[Z];                            89   G4double b1 = PP4[Z];
 90   G4double b2 = PP5[Z];                            90   G4double b2 = PP5[Z];
 91                                                    91 
 92   static const G4double numlim = 0.02;             92   static const G4double numlim = 0.02;
 93   G4double x  = 2.*xx*b0;                          93   G4double x  = 2.*xx*b0;
 94   G4double w0 = (x < numlim) ? n0*x*(1.0 - 0.5     94   G4double w0 = (x < numlim) ? n0*x*(1.0 - 0.5*(n0 - 1.0)*x*(1.0 - (n0 - 2.0)*x/3.))
 95     : 1.0 - G4Exp(-n0*G4Log(1.0 + x));             95     : 1.0 - G4Exp(-n0*G4Log(1.0 + x)); 
 96                                                    96 
 97   x  = 2.*xx*b1;                                   97   x  = 2.*xx*b1;
 98   G4double w1 = (x < numlim) ? n1*x*(1.0 - 0.5     98   G4double w1 = (x < numlim) ? n1*x*(1.0 - 0.5*(n1 - 1.0)*x*(1.0 - (n1 - 2.0)*x/3.))
 99     : 1.0 - G4Exp(-n1*G4Log(1.0 + x));             99     : 1.0 - G4Exp(-n1*G4Log(1.0 + x));
100                                                   100  
101   x  = 2.*xx*b2;                                  101   x  = 2.*xx*b2;
102   G4double w2 = (x < numlim) ? n2*x*(1.0 - 0.5    102   G4double w2 = (x < numlim) ? n2*x*(1.0 - 0.5*(n2 - 1.0)*x*(1.0 - (n2 - 2.0)*x/3.))
103     : 1.0 - G4Exp(-n2*G4Log(1.0 + x));            103     : 1.0 - G4Exp(-n2*G4Log(1.0 + x));
104                                                   104 
105   G4double x0= w0*PP0[Z]/(b0*n0);                 105   G4double x0= w0*PP0[Z]/(b0*n0);
106   G4double x1= w1*PP1[Z]/(b1*n1);                 106   G4double x1= w1*PP1[Z]/(b1*n1);
107   G4double x2= w2*PP2[Z]/(b2*n2);                 107   G4double x2= w2*PP2[Z]/(b2*n2);
108                                                   108 
109   G4double cost;                                  109   G4double cost;
110   do {                                            110   do {
111     G4double w = w0;                              111     G4double w = w0;
112     G4double n = n0;                              112     G4double n = n0;
113     G4double b = b0;                              113     G4double b = b0;
114                                                   114   
115     x = G4UniformRand()*(x0 + x1 + x2);           115     x = G4UniformRand()*(x0 + x1 + x2);
116     if(x > x0) {                                  116     if(x > x0) {
117       x -= x0;                                    117       x -= x0;
118       if(x <= x1 ) {                              118       if(x <= x1 ) {
119   w = w1;                                         119   w = w1;
120   n = n1;                                         120   n = n1;
121   b = b1;                                         121   b = b1;
122       } else {                                    122       } else { 
123   w = w2;                                         123   w = w2;
124   n = n2;                                         124   n = n2;
125   b = b2;                                         125   b = b2;
126       }                                           126       }
127     }                                             127     }
128     n = 1.0/n;                                    128     n = 1.0/n;
129                                                   129 
130     // sampling of angle                          130     // sampling of angle
131     G4double y = w*G4UniformRand();               131     G4double y = w*G4UniformRand();
132     if(y < numlim) { x = y*n*( 1. + 0.5*(n + 1    132     if(y < numlim) { x = y*n*( 1. + 0.5*(n + 1.)*y*(1. - (n + 2.)*y/3.)); }   
133     else           { x = G4Exp(-n*G4Log(1. - y    133     else           { x = G4Exp(-n*G4Log(1. - y)) - 1.0; }
134     cost = 1.0 - x/(b*xx);                        134     cost = 1.0 - x/(b*xx);
135   } while (2*G4UniformRand() > 1.0 + cost*cost    135   } while (2*G4UniformRand() > 1.0 + cost*cost || cost < -1.0);
136                                                   136 
137   G4double phi  = twopi*G4UniformRand();          137   G4double phi  = twopi*G4UniformRand();
138   G4double sint = sqrt((1. - cost)*(1.0 + cost    138   G4double sint = sqrt((1. - cost)*(1.0 + cost));
139   fLocalDirection.set(sint*cos(phi),sint*sin(p    139   fLocalDirection.set(sint*cos(phi),sint*sin(phi),cost);
140   fLocalDirection.rotateUz(dp->GetMomentumDire    140   fLocalDirection.rotateUz(dp->GetMomentumDirection());
141                                                   141 
142   return fLocalDirection;                         142   return fLocalDirection;
143 }                                                 143 }
144                                                   144 
145 //....oooOO0OOooo........oooOO0OOooo........oo    145 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
146 const G4double                                    146 const G4double
147   G4RayleighAngularGenerator::PP0[101] = {0,      147   G4RayleighAngularGenerator::PP0[101] = {0,
148   -2.477067493e-06, 3.308728278e+00, 5.2145900    148   -2.477067493e-06, 3.308728278e+00, 5.214590000e+00, 1.018853220e+01, 3.668594783e+00, 1.540100708e+01, 3.709326016e+00, 3.694224007e+00, 3.545302543e+00, 3.487912341e+00,  // 1-10
149   3.407539119e+00, 3.387258718e+00, 3.23054486    149   3.407539119e+00, 3.387258718e+00, 3.230544865e+00, 3.013493175e+00, 2.572039815e+00, 1.792301548e+00, 1.701680300e+00, 1.601363893e+02, 2.968330000e+02, 3.065649816e+02,  // 11-20
150   3.731860000e+02, 4.201934230e+02, 4.61292033    150   3.731860000e+02, 4.201934230e+02, 4.612920338e+02, 4.861184287e+02, 3.101874240e+02, 3.351026594e+02, 6.367362521e+02, 3.888087526e+02, 7.588301541e+02, 8.158625388e+02,  // 21-30
151   4.773566612e+02, 5.084376201e+02, 5.41367729    151   4.773566612e+02, 5.084376201e+02, 5.413677298e+02, 5.744903249e+02, 3.743351693e+00, 1.009910000e+01, 6.816358014e+02, 7.187067112e+02, 7.580649444e+02, 4.414330698e+00,  // 31-40
152   2.972874756e+00, 2.740289935e+00, 2.50748731    152   2.972874756e+00, 2.740289935e+00, 2.507487315e+00, 9.657410000e+02, 1.011090000e+03, 2.130702941e+00, 6.533143308e+00, 1.037000000e+03, 2.288698564e+00, 4.244459075e+00,  // 41-50
153   6.127527681e+01, 3.792700000e+00, 4.79811088    153   6.127527681e+01, 3.792700000e+00, 4.798110886e+00, 1.312500008e+03, 1.889593891e+00, 2.404540000e+03, 3.352713210e+01, 3.721985093e+01, 1.800704938e+02, 1.752112119e+03,  // 51-60
154   1.194981340e+02, 2.167522747e+02, 3.36459000    154   1.194981340e+02, 2.167522747e+02, 3.364590000e+03, 6.311743615e+01, 2.506979318e+02, 8.928490874e+01, 2.021000018e+03, 1.288577408e+02, 3.286469325e+03, 1.437863346e+02,  // 61-70
155   1.431016078e+02, 1.359161828e+02, 3.67045607    155   1.431016078e+02, 1.359161828e+02, 3.670456078e+02, 3.934040000e+02, 3.175509489e+02, 3.262959885e+03, 3.021668154e+03, 3.252098480e+02, 3.477962301e+02, 3.363519614e+02,  // 71-80
156   3.340399767e+02, 3.011038509e+03, 3.48549794    156   3.340399767e+02, 3.011038509e+03, 3.485497941e+02, 3.657731951e+02, 3.251994160e+03, 3.987097887e+02, 3.891269496e+03, 4.223467334e+02, 4.009941534e+02, 1.380789588e+00,  // 81-90
157   2.791527615e+00, 3.755804160e+03, 4.86370584    157   2.791527615e+00, 3.755804160e+03, 4.863705847e+02, 5.464276392e+02, 7.089644571e+02, 7.445117785e+02, 2.037086948e+00, 1.065528514e+03, 1.133135197e+00, 3.269427358e+03 // 91-100
158 };                                                158 };
159                                                   159 
160 const G4double                                    160 const G4double
161   G4RayleighAngularGenerator::PP1[101] = {0,      161   G4RayleighAngularGenerator::PP1[101] = {0,
162   1.000002477e+00, 6.912717221e-01, 3.77240000    162   1.000002477e+00, 6.912717221e-01, 3.772400000e+00, 3.673669324e+00, 1.199955472e+01, 3.658311128e+00, 2.130780048e+01, 2.833297837e+01, 3.748184285e+01, 4.656971845e+01,  // 1-10
163   5.759246095e+01, 6.861274506e+01, 8.37613986    163   5.759246095e+01, 6.861274506e+01, 8.376139862e+01, 9.799999987e+01, 1.104279602e+02, 1.279999999e+02, 1.439999998e+02, 1.620000000e+02, 6.155750000e+01, 9.069690514e+01,  // 11-20
164   6.540840000e+01, 6.120116992e+01, 6.54048763    164   6.540840000e+01, 6.120116992e+01, 6.540487635e+01, 8.701154587e+01, 3.120000000e+02, 3.380000000e+02, 8.971041364e+01, 3.920000000e+02, 7.927032750e+01, 8.129623999e+01,  // 21-30
165   4.800000000e+02, 5.120000000e+02, 5.44000000    165   4.800000000e+02, 5.120000000e+02, 5.440000000e+02, 5.780000000e+02, 6.119999952e+02, 6.479930000e+02, 6.839999993e+02, 7.219999975e+02, 7.600000000e+02, 7.999965590e+02,  // 31-40
166   8.399999990e+02, 8.819999639e+02, 9.23999352    166   8.399999990e+02, 8.819999639e+02, 9.239993520e+02, 9.680000000e+02, 1.012000000e+03, 1.055869297e+03, 1.102904035e+03, 1.150000007e+02, 1.199999994e+03, 1.249999690e+03,  // 41-50
167   1.300000000e+03, 1.352000000e+03, 1.40024221    167   1.300000000e+03, 1.352000000e+03, 1.400242211e+03, 1.455000001e+02, 1.511110411e+03, 7.298520000e+02, 1.624000000e+03, 1.644780150e+03, 1.739999988e+03, 1.800000000e+03,  // 51-60
168   1.859999972e+03, 1.705247726e+03, 6.03151000    168   1.859999972e+03, 1.705247726e+03, 6.031510000e+02, 2.047999979e+03, 2.099526330e+03, 2.088715091e+03, 2.240000003e+02, 2.183146437e+03, 2.380000102e+02, 2.449999497e+03,  // 61-70
169   2.519999640e+03, 2.591999669e+03, 2.31793557    169   2.519999640e+03, 2.591999669e+03, 2.317935577e+03, 2.344600000e+03, 2.811999969e+03, 2.378704485e+03, 2.614304773e+03, 3.041994341e+03, 3.065168794e+03, 3.092144649e+03,  // 71-80
170   3.279999955e+03, 3.362000000e+03, 3.44399642    170   3.279999955e+03, 3.362000000e+03, 3.443996426e+03, 3.190843165e+03, 3.610058546e+02, 3.299292785e+03, 3.283959104e+03, 3.507767814e+03, 3.729069400e+03, 4.049999721e+03,  // 81-90
171   4.139900637e+03, 4.761958553e+02, 3.83862968    171   4.139900637e+03, 4.761958553e+02, 3.838629680e+03, 3.871572368e+03, 4.511999370e+03, 3.863489473e+03, 4.703865705e+03, 4.801999723e+03, 4.899867488e+03, 4.999989627e+03  // 91-100
172 };                                                172 };
173                                                   173 
174 const G4double                                    174 const G4double
175   G4RayleighAngularGenerator::PP2[101] = {0,      175   G4RayleighAngularGenerator::PP2[101] = {0,
176   0.000000000e+00, 0.000000000e+00, 1.30091000    176   0.000000000e+00, 0.000000000e+00, 1.300910000e-02, 2.137798478e+00, 9.331850497e+00, 1.694068179e+01, 2.398287351e+01, 3.197279763e+01, 3.997285461e+01, 4.994236921e+01,  // 1-10
177   5.999999993e+01, 7.199999622e+01, 8.20080565    177   5.999999993e+01, 7.199999622e+01, 8.200805651e+01, 9.498650695e+01, 1.120000000e+02, 1.262076986e+02, 1.432983199e+02, 1.863610653e+00, 2.609270000e+00, 2.738113251e+00,  // 11-20
178   2.405300000e+00, 2.605407111e+00, 2.30308987    178   2.405300000e+00, 2.605407111e+00, 2.303089878e+00, 2.870025399e+00, 2.812575977e+00, 2.897340596e+00, 2.553334297e+00, 3.191247422e+00, 2.899518400e+00, 2.841221189e+00,  // 21-30
179   3.643338776e+00, 3.562379948e+00, 3.63227021    179   3.643338776e+00, 3.562379948e+00, 3.632270214e+00, 3.509675162e+00, 6.092566531e+02, 6.379080000e+02, 3.364199322e+00, 3.293291322e+00, 2.935055634e+00, 7.955891103e+02,  // 31-40
180   8.380271263e+02, 8.792597462e+02, 9.22493160    180   8.380271263e+02, 8.792597462e+02, 9.224931607e+02, 2.258920000e+00, 1.909930000e+00, 1.058000000e+03, 1.099562822e+03, 1.151999999e+03, 1.198711308e+03, 1.245755851e+03,  // 41-50
181   1.239724724e+03, 1.348210000e+03, 1.40395967    181   1.239724724e+03, 1.348210000e+03, 1.403959678e+03, 1.457999992e+03, 1.511999996e+03, 1.608510000e+00, 1.591472868e+03, 1.681999999e+03, 1.560929519e+03, 4.788788135e+01,  // 51-60
182   1.741501894e+03, 1.922000000e+03, 1.25916000    182   1.741501894e+03, 1.922000000e+03, 1.259160000e+00, 1.984882585e+03, 1.874775739e+03, 2.178000000e+03, 2.243999981e+03, 2.311995822e+03, 1.236530665e+03, 2.306214168e+03,  // 61-70
183   2.377898752e+03, 2.456084148e+03, 2.64401881    183   2.377898752e+03, 2.456084148e+03, 2.644018816e+03, 2.738000000e+03, 2.495449082e+03, 1.343356300e+02, 2.930270735e+02, 2.716795811e+03, 2.828034975e+03, 2.971503390e+03,  // 71-80
184   2.946960068e+03, 3.509614912e+02, 3.09645378    184   2.946960068e+03, 3.509614912e+02, 3.096453780e+03, 3.499383640e+03, 3.611999985e+03, 3.697997426e+03, 3.937713997e+02, 3.813885452e+03, 3.790936446e+03, 4.048619490e+03,  // 81-90
185   4.138307836e+03, 4.231999985e+03, 4.32399973    185   4.138307836e+03, 4.231999985e+03, 4.323999735e+03, 4.417999993e+03, 3.804036173e+03, 4.607998748e+03, 4.703097208e+03, 3.736471763e+03, 4.899999376e+03, 1.730583016e+03 // 91-100
186 };                                                186 };
187                                                   187 
188 const G4double                                    188 const G4double
189   G4RayleighAngularGenerator::PP3[101] = {0,      189   G4RayleighAngularGenerator::PP3[101] = {0,
190   1.325913011e-16, 4.871957764e-16, 1.95042000    190   1.325913011e-16, 4.871957764e-16, 1.950420000e-15, 3.995936773e-16, 4.732524874e-17, 5.469297930e-16, 2.375713373e-17, 1.810463731e-17, 1.336380641e-17, 1.052686533e-17,  // 1-10
191   8.030444002e-18, 6.678303405e-18, 5.35823468    191   8.030444002e-18, 6.678303405e-18, 5.358234684e-18, 4.335725896e-18, 3.306051079e-18, 1.819679449e-18, 1.228045928e-18, 2.430163362e-16, 1.869430000e-15, 9.951691390e-16,  // 11-20
192   1.805410000e-15, 1.568852030e-15, 1.46426465    192   1.805410000e-15, 1.568852030e-15, 1.464264654e-15, 4.939313750e-16, 2.361373681e-16, 2.319629775e-16, 4.429138015e-16, 2.283559073e-16, 3.210934122e-16, 2.876037822e-16,  // 21-30
193   2.121922892e-16, 2.064234936e-16, 1.99647988    193   2.121922892e-16, 2.064234936e-16, 1.996479886e-16, 1.946742248e-16, 8.778017543e-19, 3.460900000e-18, 1.809840754e-16, 1.783125511e-16, 1.722338339e-16, 9.822789565e-19,  // 31-40
194   4.605105770e-19, 3.816125471e-19, 3.01753747    194   4.605105770e-19, 3.816125471e-19, 3.017537476e-19, 1.666200000e-16, 1.688410000e-16, 1.839402998e-19, 1.246431543e-18, 9.807308372e-17, 1.932399654e-19, 6.865448303e-19,  // 41-50
195   9.418934098e-18, 6.540360000e-19, 6.72335260    195   9.418934098e-18, 6.540360000e-19, 6.723352605e-19, 1.147797684e-16, 7.975389174e-20, 1.232720000e-15, 5.621737854e-18, 6.015501574e-18, 1.770592320e-17, 1.646956996e-16,  // 51-60
196   1.285032193e-17, 1.897941915e-17, 8.38225000    196   1.285032193e-17, 1.897941915e-17, 8.382250000e-16, 8.047052107e-18, 1.953322654e-17, 1.048054550e-17, 1.547617945e-15, 1.315449339e-17, 2.966877317e-16, 1.381146328e-17,  // 61-70
197   1.351358940e-17, 1.262062535e-17, 2.23834297    197   1.351358940e-17, 1.262062535e-17, 2.238342977e-17, 2.364690000e-17, 1.901461934e-17, 2.019852016e-16, 1.258732966e-16, 1.866062124e-17, 1.933265996e-17, 1.869942002e-17,  // 71-80
198   1.842791671e-17, 1.006061314e-16, 1.84533117    198   1.842791671e-17, 1.006061314e-16, 1.845331171e-17, 1.903270841e-17, 9.716982760e-17, 2.023698895e-17, 1.689153339e-15, 2.047894466e-17, 1.932138801e-17, 1.971060876e-20,  // 81-90
199   1.861376691e-19, 8.994366946e-17, 2.16885552    199   1.861376691e-19, 8.994366946e-17, 2.168855529e-17, 2.359136120e-17, 2.975661335e-17, 3.035334920e-17, 1.119247839e-19, 4.012940590e-17, 1.467159462e-20, 9.769616225e-17  // 91-100
200 };                                                200 };
201                                                   201 
202 const G4double                                    202 const G4double
203   G4RayleighAngularGenerator::PP4[101] = {0,      203   G4RayleighAngularGenerator::PP4[101] = {0,
204   1.105926652e-15, 2.260014406e-16, 1.56836000    204   1.105926652e-15, 2.260014406e-16, 1.568360000e-16, 7.604704395e-17, 2.874727277e-16, 3.180531750e-17, 3.632331994e-16, 2.720099679e-16, 1.197719851e-16, 1.079438057e-16,  // 1-10
205   2.381852183e-15, 3.734413372e-15, 8.39186756    205   2.381852183e-15, 3.734413372e-15, 8.391867563e-17, 4.824902206e-16, 1.501401964e-16, 3.852331215e-16, 3.990595815e-16, 3.293279270e-16, 1.384700000e-17, 3.625981107e-17,  // 11-20
206   1.379630000e-17, 9.139141296e-18, 1.87240878    206   1.379630000e-17, 9.139141296e-18, 1.872408780e-17, 2.203851185e-17, 2.682848134e-16, 2.769206296e-16, 2.418950951e-17, 2.841108885e-16, 1.400094487e-17, 1.387082935e-17,  // 21-30
207   5.210034592e-16, 7.614492538e-16, 8.94817886    207   5.210034592e-16, 7.614492538e-16, 8.948178869e-16, 9.788323391e-16, 8.671211693e-16, 8.778680000e-16, 1.077256234e-15, 1.679640775e-15, 1.420854572e-15, 7.623342657e-16,  // 31-40
208   6.465293663e-16, 3.854995461e-16, 4.89499585    208   6.465293663e-16, 3.854995461e-16, 4.894995857e-16, 2.432900000e-16, 5.828990000e-16, 1.609458606e-16, 2.173584371e-16, 1.795526101e-17, 9.530729189e-16, 2.344176851e-16,  // 41-50
209   3.105865310e-16, 4.197600000e-16, 1.32632143    209   3.105865310e-16, 4.197600000e-16, 1.326321431e-16, 1.773261410e-17, 1.494954852e-16, 6.910460000e-17, 9.139538226e-16, 1.600844678e-16, 7.627976232e-16, 6.798418289e-16,  // 51-60
210   7.097022036e-16, 1.115122840e-16, 4.61021000    210   7.097022036e-16, 1.115122840e-16, 4.610210000e-17, 7.337639645e-16, 3.348557496e-16, 1.736562533e-16, 1.915871639e-17, 1.931338908e-16, 1.974415886e-17, 2.054336404e-16,  // 61-70
211   2.003109343e-16, 1.934498511e-16, 1.31900805    211   2.003109343e-16, 1.934498511e-16, 1.319008056e-15, 9.450540000e-16, 1.087303394e-16, 1.665148262e-15, 1.202328448e-15, 1.128331221e-15, 8.531572269e-16, 7.408838005e-16,  // 71-80
212   1.158662950e-15, 1.374180788e-15, 8.56667776    212   1.158662950e-15, 1.374180788e-15, 8.566677765e-16, 9.492940536e-17, 1.870350513e-17, 9.491622217e-17, 8.928257029e-17, 9.336061303e-17, 9.334736660e-17, 4.790157134e-16,  // 81-90
213   1.305399034e-16, 2.169990868e-17, 8.37279953    213   1.305399034e-16, 2.169990868e-17, 8.372799536e-17, 8.658930267e-17, 8.911500996e-16, 8.860103256e-17, 4.406306122e-16, 6.993638266e-16, 1.349886337e-16, 3.034949291e-16  // 91-100
214 };                                                214 };
215                                                   215 
216 const G4double                                    216 const G4double
217   G4RayleighAngularGenerator::PP5[101] ={0,       217   G4RayleighAngularGenerator::PP5[101] ={0,
218  6.894128600e-17, 2.232031723e-17, 2.477820000    218  6.894128600e-17, 2.232031723e-17, 2.477820000e-17, 2.177967522e-15, 1.284829196e-15, 1.823111356e-16, 1.555489343e-16, 1.335924448e-16, 2.114259423e-16, 1.667587557e-16,  // 1-10
219  5.490626359e-17, 6.721220587e-17, 2.797861959    219  5.490626359e-17, 6.721220587e-17, 2.797861959e-15, 1.006989227e-16, 4.970209967e-16, 2.167639187e-16, 2.319436556e-16, 1.141095767e-18, 1.660590000e-18, 1.909325187e-18,  // 11-20
220  1.137340000e-18, 1.172666277e-18, 9.208052526    220  1.137340000e-18, 1.172666277e-18, 9.208052526e-19, 1.423664003e-18, 9.502898022e-19, 9.157542056e-19, 1.055368898e-18, 9.370568491e-19, 1.041778157e-18, 9.638088116e-19,  // 21-30
221  1.000486545e-18, 8.890635605e-19, 8.866911360    221  1.000486545e-18, 8.890635605e-19, 8.866911360e-19, 8.345076503e-19, 1.886536486e-16, 1.813120000e-16, 6.659892285e-19, 6.086335346e-19, 4.868786350e-19, 1.636754844e-16,  // 31-40
222  1.673069643e-16, 1.638573610e-16, 1.618391268    222  1.673069643e-16, 1.638573610e-16, 1.618391268e-16, 2.686910000e-19, 1.813800000e-19, 2.102345989e-16, 1.318039263e-16, 2.077093130e-16, 1.588911975e-16, 1.515458297e-16,  // 41-50
223  1.080904532e-16, 1.490120000e-16, 2.463071192    223  1.080904532e-16, 1.490120000e-16, 2.463071192e-16, 5.939133658e-16, 3.046264790e-16, 1.142460000e-19, 1.562245161e-16, 9.001027117e-16, 1.078667444e-16, 7.294347496e-18,  // 51-60
224  1.358154769e-16, 8.509795172e-16, 4.722000000    224  1.358154769e-16, 8.509795172e-16, 4.722000000e-20, 1.653557513e-16, 9.741638336e-17, 8.121141361e-16, 2.060180430e-16, 1.293242400e-15, 2.817685189e-15, 1.295140057e-15,  // 61-70
225  1.325219469e-15, 1.361391001e-15, 1.166226381    225  1.325219469e-15, 1.361391001e-15, 1.166226381e-16, 1.078650000e-16, 8.154952090e-16, 1.184682586e-17, 1.781757642e-17, 1.042830884e-16, 9.653409394e-17, 9.620084329e-17,  // 71-80
226  9.927188930e-17, 1.933919795e-17, 8.642866554    226  9.927188930e-17, 1.933919795e-17, 8.642866554e-17, 1.300494398e-15, 1.573438944e-15, 1.595960704e-15, 1.963662451e-17, 1.824165751e-15, 1.536213562e-15, 1.230473199e-16,  // 81-90
227  4.609653396e-16, 1.503608663e-15, 9.130139990    227  4.609653396e-16, 1.503608663e-15, 9.130139990e-16, 8.950731342e-16, 8.843355368e-17, 9.314765075e-16, 1.311786759e-16, 9.206849025e-17, 3.169463543e-16, 2.154753688e-15  // 91-100
228 };                                                228 };
229                                                   229 
230 const G4double                                    230 const G4double
231   G4RayleighAngularGenerator::PP6[101] = {0,      231   G4RayleighAngularGenerator::PP6[101] = {0,
232   5.245179284e+00, 3.941069622e+00, 7.59547000    232   5.245179284e+00, 3.941069622e+00, 7.595470000e+00, 1.556100268e+01, 3.958715820e+00, 1.006439332e+01, 3.947506567e+00, 3.911947451e+00, 3.960123395e+00, 3.995405309e+00,  // 1-10
233   4.165369684e+00, 4.154784462e+00, 4.24310617    233   4.165369684e+00, 4.154784462e+00, 4.243106173e+00, 4.326072224e+00, 4.520737868e+00, 5.804915543e+00, 7.148125826e+00, 1.979899376e+00, 1.619050000e+00, 3.020461557e+00,  // 11-20
234   1.570400000e+00, 1.595930653e+00, 1.59229579    234   1.570400000e+00, 1.595930653e+00, 1.592295792e+00, 3.539697537e+00, 1.823123604e+00, 1.823008934e+00, 3.108054801e+00, 1.802053625e+00, 3.315832610e+00, 3.438022820e+00,  // 21-30
235   1.788357076e+00, 1.779735777e+00, 1.78269447    235   1.788357076e+00, 1.779735777e+00, 1.782694477e+00, 1.778454849e+00, 4.288820945e+00, 2.573830000e+00, 1.754405892e+00, 1.749703489e+00, 1.739317589e+00, 3.536923800e+00,  // 31-40
236   4.992480078e+00, 5.353762609e+00, 5.98387288    236   4.992480078e+00, 5.353762609e+00, 5.983872882e+00, 1.659260000e+00, 1.637810000e+00, 7.594207497e+00, 2.760872072e+00, 2.996427458e+00, 6.765238189e+00, 3.358446915e+00,  // 41-50
237   1.895332668e+00, 3.235160000e+00, 3.11741287    237   1.895332668e+00, 3.235160000e+00, 3.117412878e+00, 2.561242590e+00, 1.080139229e+01, 1.513050000e+00, 1.944567866e+00, 1.922906186e+00, 1.732857547e+00, 1.666739664e+00,  // 51-60
238   1.735584396e+00, 1.700970330e+00, 1.49394000    238   1.735584396e+00, 1.700970330e+00, 1.493940000e+00, 1.789491004e+00, 1.668966729e+00, 1.722315051e+00, 1.564155879e+00, 1.679770510e+00, 1.660734791e+00, 1.650941092e+00,  // 61-70
239   1.646594633e+00, 1.646361209e+00, 1.59689950    239   1.646594633e+00, 1.646361209e+00, 1.596899505e+00, 1.575670000e+00, 1.595800331e+00, 1.598706510e+00, 2.267574396e+00, 1.571022960e+00, 1.556511213e+00, 1.547150547e+00,  // 71-80
240   1.539905529e+00, 2.445886590e+00, 1.52166658    240   1.539905529e+00, 2.445886590e+00, 1.521666588e+00, 1.514607927e+00, 2.418992922e+00, 1.489341220e+00, 1.445770175e+00, 1.477753418e+00, 1.473313627e+00, 1.034799940e+01,  // 81-90
241   2.720221569e+00, 2.423181552e+00, 1.43380003    241   2.720221569e+00, 2.423181552e+00, 1.433800031e+00, 1.424989075e+00, 1.398959178e+00, 1.397503726e+00, 2.862849596e+00, 1.377034589e+00, 9.782799214e+00, 1.348300032e+00  // 91-100
242 };                                                242 };
243                                                   243 
244 const G4double                                    244 const G4double
245   G4RayleighAngularGenerator::PP7[101] ={0,       245   G4RayleighAngularGenerator::PP7[101] ={0,
246  3.999571467e+00, 3.991128282e+00, 3.855930000    246  3.999571467e+00, 3.991128282e+00, 3.855930000e+00, 3.954881255e+00, 1.209804865e+01, 3.984648146e+00, 1.159847718e+01, 1.208416029e+01, 7.793410191e+00, 7.050783546e+00,  // 1-10
247  1.860829199e+00, 1.805395915e+00, 5.601066041    247  1.860829199e+00, 1.805395915e+00, 5.601066041e+00, 1.285317248e+01, 2.982331588e+00, 1.387872806e+01, 1.234603360e+01, 1.341537351e+01, 9.537270000e+00, 4.399859528e+00,  // 11-20
248  7.887250000e+00, 1.010638153e+01, 5.125426065    248  7.887250000e+00, 1.010638153e+01, 5.125426065e+00, 4.529968522e+00, 1.295225813e+01, 1.125545587e+01, 3.469375224e+00, 9.019427119e+00, 4.422801993e+00, 4.231377923e+00,  // 21-30
249  4.487670198e+00, 3.377601937e+00, 3.060634263    249  4.487670198e+00, 3.377601937e+00, 3.060634263e+00, 2.916013798e+00, 3.277148894e+00, 3.204930000e+00, 2.941802865e+00, 2.233026370e+00, 2.626492823e+00, 4.442039033e+00,  // 31-40
250  4.924387077e+00, 7.722486735e+00, 6.373463850    250  4.924387077e+00, 7.722486735e+00, 6.373463850e+00, 1.126070000e+01, 4.865950000e+00, 1.666437783e+00, 1.165792401e+01, 1.832865314e+00, 3.197863589e+00, 1.108841018e+01,  // 41-50
251  8.586125523e+00, 6.676730000e+00, 1.759586815    251  8.586125523e+00, 6.676730000e+00, 1.759586815e+00, 1.779094293e+00, 1.606067697e+00, 1.716220000e+00, 3.714794374e+00, 1.684962847e+00, 3.694058142e+00, 3.883036642e+00,  // 51-60
252  3.616573408e+00, 2.616627730e+00, 1.724970000    252  3.616573408e+00, 2.616627730e+00, 1.724970000e+00, 3.214294756e+00, 6.048180604e+00, 1.644134456e+00, 1.645297046e+00, 1.638457907e+00, 1.632603379e+00, 1.628448343e+00,  // 61-70
253  1.632630475e+00, 1.635873458e+00, 1.825704957    253  1.632630475e+00, 1.635873458e+00, 1.825704957e+00, 2.491660000e+00, 2.578788354e+00, 1.564697536e+00, 1.957756845e+00, 1.753512815e+00, 2.248102578e+00, 2.608650253e+00,  // 71-80
254  1.775440582e+00, 1.577663847e+00, 2.371177051    254  1.775440582e+00, 1.577663847e+00, 2.371177051e+00, 2.470000483e+00, 1.508411013e+00, 2.464240407e+00, 2.506389292e+00, 2.470932595e+00, 2.409396196e+00, 4.479899308e+00,  // 81-90
255  1.455793655e+00, 1.441149845e+00, 2.479382371    255  1.455793655e+00, 1.441149845e+00, 2.479382371e+00, 2.453619326e+00, 2.383185233e+00, 2.503014659e+00, 4.272318275e+00, 2.713400801e+00, 1.391715512e+00, 2.623357264e+00  // 91-100
256 };                                                256 };
257                                                   257 
258 const G4double                                    258 const G4double
259   G4RayleighAngularGenerator::PP8[101] = {0,      259   G4RayleighAngularGenerator::PP8[101] = {0,
260   3.999988492e+00, 3.007894874e+00, 5.94686000    260   3.999988492e+00, 3.007894874e+00, 5.946860000e+00, 7.152304101e+00, 6.130363514e+00, 1.208178632e+01, 1.037802325e+01, 9.199988173e+00, 1.172397112e+01, 1.207012659e+01,  // 1-10
261   1.115856859e+01, 7.827803195e+00, 2.64112611    261   1.115856859e+01, 7.827803195e+00, 2.641126114e+00, 4.312456794e+00, 1.198258924e+01, 2.176176802e+00, 2.039327000e+00, 7.141859323e+00, 5.280700000e+00, 4.469270053e+00,  // 11-20
262   5.878090000e+00, 5.532784283e+00, 5.96333790    262   5.878090000e+00, 5.532784283e+00, 5.963337902e+00, 4.314887550e+00, 5.841459409e+00, 5.679735328e+00, 4.361061890e+00, 5.202026076e+00, 4.135817334e+00, 4.133917331e+00,  // 21-30
263   4.551995537e+00, 4.677756013e+00, 4.52827956    263   4.551995537e+00, 4.677756013e+00, 4.528279561e+00, 4.498802330e+00, 1.774563576e+00, 1.862200000e+00, 4.622134764e+00, 4.695173427e+00, 5.128574495e+00, 1.782470135e+00,  // 31-40
264   1.727732750e+00, 1.724150271e+00, 1.70951822    264   1.727732750e+00, 1.724150271e+00, 1.709518222e+00, 6.334160000e+00, 7.926650000e+00, 1.159184448e+01, 1.895174961e+00, 1.154752444e+01, 1.645989249e+00, 1.687530363e+00,  // 41-50
265   2.409664359e+00, 1.654010000e+00, 1.13468614    265   2.409664359e+00, 1.654010000e+00, 1.134686144e+01, 4.793719850e+00, 9.632614374e+00, 7.137710000e+00, 1.705278976e+00, 3.589745289e+00, 2.650211489e+00, 1.847594729e+00,  // 51-60
266   2.057911711e+00, 2.980049185e+00, 1.08600000    266   2.057911711e+00, 2.980049185e+00, 1.086000000e+01, 1.654657393e+00, 2.823690929e+00, 2.581116822e+00, 1.824902805e+00, 1.610400116e+00, 1.584768888e+00, 1.561632819e+00,  // 61-70
267   1.536232590e+00, 1.520253937e+00, 2.70110718    267   1.536232590e+00, 1.520253937e+00, 2.701107185e+00, 2.786000000e+00, 2.677490471e+00, 1.613510248e+00, 1.574877874e+00, 2.478321094e+00, 2.578973774e+00, 2.530183017e+00,  // 71-80
268   2.454130254e+00, 1.522182263e+00, 2.58554126    268   2.454130254e+00, 1.522182263e+00, 2.585541261e+00, 1.743698112e+00, 1.507618128e+00, 1.517673206e+00, 1.487198678e+00, 1.482431696e+00, 1.808266084e+00, 1.468787657e+00,  // 81-90
269   4.518186694e+00, 1.690796964e+00, 2.45897436    269   4.518186694e+00, 1.690796964e+00, 2.458974369e+00, 2.416442577e+00, 2.505591266e+00, 2.315596171e+00, 1.421452131e+00, 2.563262017e+00, 5.323940741e+00, 2.366288037e+00  // 91-100
270 };                                                270 };
271 //....oooOO0OOooo........oooOO0OOooo........oo    271 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
272                                                   272