Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNKbToNKbChannel.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/hadronic/models/inclxx/incl_physics/src/G4INCLNKbToNKbChannel.cc (Version 11.3.0) and /processes/hadronic/models/inclxx/incl_physics/src/G4INCLNKbToNKbChannel.cc (Version 10.7.p2)


  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 // INCL++ intra-nuclear cascade model              26 // INCL++ intra-nuclear cascade model
 27 // Alain Boudard, CEA-Saclay, France               27 // Alain Boudard, CEA-Saclay, France
 28 // Joseph Cugnon, University of Liege, Belgium     28 // Joseph Cugnon, University of Liege, Belgium
 29 // Jean-Christophe David, CEA-Saclay, France       29 // Jean-Christophe David, CEA-Saclay, France
 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H     30 // Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
 31 // Sylvie Leray, CEA-Saclay, France                31 // Sylvie Leray, CEA-Saclay, France
 32 // Davide Mancusi, CEA-Saclay, France              32 // Davide Mancusi, CEA-Saclay, France
 33 //                                                 33 //
 34 #define INCLXX_IN_GEANT4_MODE 1                    34 #define INCLXX_IN_GEANT4_MODE 1
 35                                                    35 
 36 #include "globals.hh"                              36 #include "globals.hh"
 37                                                    37 
 38 #include "G4INCLNKbToNKbChannel.hh"                38 #include "G4INCLNKbToNKbChannel.hh"
 39 #include "G4INCLKinematicsUtils.hh"                39 #include "G4INCLKinematicsUtils.hh"
 40 #include "G4INCLBinaryCollisionAvatar.hh"          40 #include "G4INCLBinaryCollisionAvatar.hh"
 41 #include "G4INCLRandom.hh"                         41 #include "G4INCLRandom.hh"
 42 #include "G4INCLGlobals.hh"                        42 #include "G4INCLGlobals.hh"
 43 #include "G4INCLLogger.hh"                         43 #include "G4INCLLogger.hh"
 44 #include <algorithm>                               44 #include <algorithm>
 45 #include "G4INCLPhaseSpaceGenerator.hh"            45 #include "G4INCLPhaseSpaceGenerator.hh"
 46                                                    46 
 47 namespace G4INCL {                                 47 namespace G4INCL {
 48                                                    48   
 49   NKbToNKbChannel::NKbToNKbChannel(Particle *p     49   NKbToNKbChannel::NKbToNKbChannel(Particle *p1, Particle *p2)
 50     : particle1(p1), particle2(p2)                 50     : particle1(p1), particle2(p2)
 51     {}                                             51     {}
 52                                                    52   
 53   NKbToNKbChannel::~NKbToNKbChannel(){}            53   NKbToNKbChannel::~NKbToNKbChannel(){}
 54                                                    54   
 55   void NKbToNKbChannel::fillFinalState(FinalSt     55   void NKbToNKbChannel::fillFinalState(FinalState *fs) {
 56                                                    56     
 57     Particle *nucleon;                             57     Particle *nucleon;
 58     Particle *kaon;                                58     Particle *kaon;
 59                                                    59     
 60     if(particle1->isNucleon()){                    60     if(particle1->isNucleon()){
 61       nucleon = particle1;                         61       nucleon = particle1;
 62       kaon = particle2;                            62       kaon = particle2;
 63     }                                              63     }
 64     else{                                          64     else{
 65       nucleon = particle2;                         65       nucleon = particle2;
 66       kaon = particle1;                            66       kaon = particle1;
 67     }                                              67     }
 68                                                    68     
 69 // assert((ParticleTable::getIsospin(nucleon->     69 // assert((ParticleTable::getIsospin(nucleon->getType()) + ParticleTable::getIsospin(kaon->getType())) == 0);
 70                                                    70     
 71     ThreeVector mom_kaon = KaonMomentum(kaon,n     71     ThreeVector mom_kaon = KaonMomentum(kaon,nucleon);
 72                                                    72     
 73     if(kaon->getType() == KZeroBar){               73     if(kaon->getType() == KZeroBar){
 74       nucleon->setType(Proton);                    74       nucleon->setType(Proton);
 75       kaon->setType(KMinus);                       75       kaon->setType(KMinus);
 76     }                                              76     }
 77     else{                                          77     else{
 78       nucleon->setType(Neutron);                   78       nucleon->setType(Neutron);
 79       kaon->setType(KZeroBar);                     79       kaon->setType(KZeroBar);
 80     }                                              80     }
 81                                                    81     
 82     G4double norm = KinematicsUtils::momentumI     82     G4double norm = KinematicsUtils::momentumInCM(kaon,nucleon);
 83                                                    83 
 84     kaon->setMomentum(mom_kaon*norm);              84     kaon->setMomentum(mom_kaon*norm);
 85     nucleon->setMomentum(-mom_kaon*norm);          85     nucleon->setMomentum(-mom_kaon*norm);
 86                                                    86     
 87     kaon->adjustEnergyFromMomentum();              87     kaon->adjustEnergyFromMomentum();
 88     nucleon->adjustEnergyFromMomentum();           88     nucleon->adjustEnergyFromMomentum();
 89                                                    89     
 90                                                    90     
 91     fs->addModifiedParticle(nucleon);              91     fs->addModifiedParticle(nucleon);
 92     fs->addModifiedParticle(kaon);                 92     fs->addModifiedParticle(kaon);
 93                                                    93         
 94   }                                                94   }
 95                                                    95   
 96   ThreeVector NKbToNKbChannel::KaonMomentum(Pa     96   ThreeVector NKbToNKbChannel::KaonMomentum(Particle const * const kaon, Particle const * const nucleon){
 97                                                    97     
 98     const G4double pLab = KinematicsUtils::mom     98     const G4double pLab = KinematicsUtils::momentumInLab(kaon,nucleon);
 99                                                    99     
100     if(pLab < 235.) return Random::normVector(    100     if(pLab < 235.) return Random::normVector(); // isotropic
101                                                   101     
102     G4double cos_theta = 1.;                      102     G4double cos_theta = 1.;
103     G4double sin_theta = 0.;                      103     G4double sin_theta = 0.;
104     const G4double cos_phi = std::cos(Random::    104     const G4double cos_phi = std::cos(Random::shoot()*Math::twoPi);
105     const G4double sin_phi = std::sqrt(1-cos_p    105     const G4double sin_phi = std::sqrt(1-cos_phi*cos_phi);
106                                                   106     
107     const G4double x = kaon->getMomentum().get    107     const G4double x = kaon->getMomentum().getX();
108     const G4double y = kaon->getMomentum().get    108     const G4double y = kaon->getMomentum().getY();
109     const G4double z = kaon->getMomentum().get    109     const G4double z = kaon->getMomentum().getZ();
110                                                   110     
111     const G4double r = std::sqrt(x*x+y*y+z*z);    111     const G4double r = std::sqrt(x*x+y*y+z*z);
112     const G4double rho = std::sqrt(x*x+y*y);      112     const G4double rho = std::sqrt(x*x+y*y);
113                                                   113     
114     if(pLab >= 1355.){                            114     if(pLab >= 1355.){
115       const G4double b = 12. * pLab/2375.; //     115       const G4double b = 12. * pLab/2375.; // correspond to the forward slope description at 2375 MeV/c in K- p elastic
116       cos_theta = std::log(Random::shoot()*(st    116       cos_theta = std::log(Random::shoot()*(std::exp(b)-std::exp(-b))+std::exp(-b))/b;
117       sin_theta = std::sqrt(1-cos_theta*cos_th    117       sin_theta = std::sqrt(1-cos_theta*cos_theta);
118                                                   118       
119     }                                             119     }
120     else{                                         120     else{
121       const G4double Legendre_coef[225][9] = {    121       const G4double Legendre_coef[225][9] = {
122         {235,-0.30755,0,-0.04859,-0.01348,-9e-    122         {235,-0.30755,0,-0.04859,-0.01348,-9e-05,5e-05,0,0},
123         {240,-0.3041,0,-0.03549,-0.01096,-8e-0    123         {240,-0.3041,0,-0.03549,-0.01096,-8e-05,5e-05,0,0},
124         {245,-0.30451,0,-0.02232,-0.00843,-8e-    124         {245,-0.30451,0,-0.02232,-0.00843,-8e-05,4e-05,0,0},
125         {250,-0.31028,0,-0.00899,-0.00585,-7e-    125         {250,-0.31028,0,-0.00899,-0.00585,-7e-05,4e-05,0,0},
126         {255,-0.32259,0,0.00462,-0.00319,-6e-0    126         {255,-0.32259,0,0.00462,-0.00319,-6e-05,4e-05,0,0},
127         {260,-0.34185,0,0.01859,-0.00041,-5e-0    127         {260,-0.34185,0,0.01859,-0.00041,-5e-05,3e-05,0,0},
128         {265,-0.36746,0,0.03305,0.00251,-4e-05    128         {265,-0.36746,0,0.03305,0.00251,-4e-05,3e-05,0,0},
129         {270,-0.39766,0,0.04809,0.00563,-3e-05    129         {270,-0.39766,0,0.04809,0.00563,-3e-05,2e-05,0,0},
130         {275,-0.42975,0,0.0638,0.00898,-2e-05,    130         {275,-0.42975,0,0.0638,0.00898,-2e-05,2e-05,0,0},
131         {280,-0.46069,1e-05,0.08023,0.0126,0,1    131         {280,-0.46069,1e-05,0.08023,0.0126,0,1e-05,0,0},
132         {285,-0.48736,5e-05,0.0973,0.0165,1e-0    132         {285,-0.48736,5e-05,0.0973,0.0165,1e-05,0,0,0},
133         {290,-0.50729,2e-04,0.11487,0.02069,4e    133         {290,-0.50729,2e-04,0.11487,0.02069,4e-05,-1e-05,0,0},
134         {295,-0.51855,0.00063,0.13282,0.02519,    134         {295,-0.51855,0.00063,0.13282,0.02519,6e-05,-3e-05,0,0},
135         {300,-0.52024,0.00134,0.15096,0.02998,    135         {300,-0.52024,0.00134,0.15096,0.02998,9e-05,-4e-05,0,0},
136         {305,-0.51207,0.00124,0.16892,0.03503,    136         {305,-0.51207,0.00124,0.16892,0.03503,0.00013,-6e-05,0,0},
137         {310,-0.49468,-0.002,0.18618,0.04031,0    137         {310,-0.49468,-0.002,0.18618,0.04031,0.00016,-9e-05,0,0},
138         {315,-0.46892,-0.00933,0.20212,0.04568    138         {315,-0.46892,-0.00933,0.20212,0.04568,0.00021,-0.00011,0,0},
139         {320,-0.43609,-0.01586,0.21604,0.05101    139         {320,-0.43609,-0.01586,0.21604,0.05101,0.00026,-0.00014,0,0},
140         {325,-0.3973,-0.01303,0.22726,0.05617,    140         {325,-0.3973,-0.01303,0.22726,0.05617,0.00031,-0.00017,0,0},
141         {330,-0.35379,0.00167,0.23511,0.06107,    141         {330,-0.35379,0.00167,0.23511,0.06107,0.00037,-0.00021,0,0},
142         {335,-0.3067,0.0219,0.23911,0.06576,0.    142         {335,-0.3067,0.0219,0.23911,0.06576,0.00044,-0.00024,0,0},
143         {340,-0.25739,0.04678,0.23878,0.07033,    143         {340,-0.25739,0.04678,0.23878,0.07033,5e-04,-0.00028,0,0},
144         {345,-0.20755,0.09094,0.23367,0.07488,    144         {345,-0.20755,0.09094,0.23367,0.07488,0.00057,-0.00032,0,0},
145         {350,-0.15908,0.17482,0.22334,0.0795,0    145         {350,-0.15908,0.17482,0.22334,0.0795,0.00064,-0.00037,0,0},
146         {355,-0.11446,0.30682,0.20753,0.08421,    146         {355,-0.11446,0.30682,0.20753,0.08421,0.00071,-0.00041,0,0},
147         {360,-0.07625,0.48075,0.1861,0.08906,0    147         {360,-0.07625,0.48075,0.1861,0.08906,0.00078,-0.00045,0,0},
148         {365,-0.04747,0.68345,0.1593,0.09421,0    148         {365,-0.04747,0.68345,0.1593,0.09421,0.00083,-0.00049,0,0},
149         {370,-0.03064,0.90388,0.1275,0.09983,0    149         {370,-0.03064,0.90388,0.1275,0.09983,0.00088,-0.00052,0,0},
150         {375,-0.02812,1.13397,0.09104,0.10608,    150         {375,-0.02812,1.13397,0.09104,0.10608,0.00091,-0.00054,0,0},
151         {380,-0.04087,1.3636,0.05039,0.11311,0    151         {380,-0.04087,1.3636,0.05039,0.11311,0.00092,-0.00056,0,0},
152         {385,-0.06879,1.57657,0.00644,0.12093,    152         {385,-0.06879,1.57657,0.00644,0.12093,9e-04,-0.00056,0,0},
153         {390,-0.10972,1.75346,-0.03978,0.1295,    153         {390,-0.10972,1.75346,-0.03978,0.1295,0.00085,-0.00054,0,0},
154         {395,-0.16022,1.87981,-0.08707,0.13859    154         {395,-0.16022,1.87981,-0.08707,0.13859,0.00076,-5e-04,0,0},
155         {400,-0.21553,1.9509,-0.1342,0.14795,0    155         {400,-0.21553,1.9509,-0.1342,0.14795,0.00063,-0.00043,0,0},
156         {405,-0.27043,1.97287,-0.17995,0.15732    156         {405,-0.27043,1.97287,-0.17995,0.15732,0.00043,-0.00034,0,0},
157         {410,-0.32009,1.95458,-0.22323,0.16643    157         {410,-0.32009,1.95458,-0.22323,0.16643,0.00017,-2e-04,0,0},
158         {415,-0.36095,1.89945,-0.26354,0.1749,    158         {415,-0.36095,1.89945,-0.26354,0.1749,-0.00016,-2e-05,0,0},
159         {420,-0.3912,1.80489,-0.30052,0.18232,    159         {420,-0.3912,1.80489,-0.30052,0.18232,-0.00058,2e-04,0,0},
160         {425,-0.4106,1.68228,-0.3338,0.18828,-    160         {425,-0.4106,1.68228,-0.3338,0.18828,-0.0011,0.00048,0,0},
161         {430,-0.42021,1.56358,-0.36315,0.19246    161         {430,-0.42021,1.56358,-0.36315,0.19246,-0.00172,0.00082,0,0},
162         {435,-0.42128,1.47378,-0.38888,0.19478    162         {435,-0.42128,1.47378,-0.38888,0.19478,-0.00244,0.00123,0,0},
163         {440,-0.415,1.42688,-0.41138,0.19524,-    163         {440,-0.415,1.42688,-0.41138,0.19524,-0.00329,0.0017,0,0},
164         {445,-0.40201,1.39998,-0.43103,0.19376    164         {445,-0.40201,1.39998,-0.43103,0.19376,-0.00425,0.00225,0,0},
165         {450,-0.38247,1.36801,-0.44826,0.19036    165         {450,-0.38247,1.36801,-0.44826,0.19036,-0.00534,0.00286,0,0},
166         {455,-0.35589,1.33185,-0.46368,0.18542    166         {455,-0.35589,1.33185,-0.46368,0.18542,-0.00653,0.00355,0,0},
167         {460,-0.3216,1.29215,-0.47787,0.17941,    167         {460,-0.3216,1.29215,-0.47787,0.17941,-0.00782,0.0043,0,0},
168         {465,-0.27917,1.2499,-0.49102,0.1727,-    168         {465,-0.27917,1.2499,-0.49102,0.1727,-0.00918,0.0051,0,0},
169         {470,-0.22973,1.20597,-0.50321,0.16567    169         {470,-0.22973,1.20597,-0.50321,0.16567,-0.0106,0.00594,0,0},
170         {475,-0.17713,1.16167,-0.5145,0.15865,    170         {475,-0.17713,1.16167,-0.5145,0.15865,-0.01204,0.00682,0,0},
171         {480,-0.12841,1.11813,-0.52493,0.15196    171         {480,-0.12841,1.11813,-0.52493,0.15196,-0.01349,0.00771,0,0},
172         {485,-0.09149,1.07666,-0.53436,0.14575    172         {485,-0.09149,1.07666,-0.53436,0.14575,-0.01489,0.0086,0,0},
173         {490,-0.07028,1.03839,-0.5426,0.14013,    173         {490,-0.07028,1.03839,-0.5426,0.14013,-0.01618,0.00944,0,0},
174         {495,-0.06296,1.00433,-0.54947,0.13518    174         {495,-0.06296,1.00433,-0.54947,0.13518,-0.0173,0.01021,0,0},
175         {500,-0.06366,0.97503,-0.55477,0.13101    175         {500,-0.06366,0.97503,-0.55477,0.13101,-0.01819,0.01087,0,0},
176         {505,-0.06664,0.95085,-0.55833,0.12773    176         {505,-0.06664,0.95085,-0.55833,0.12773,-0.0188,0.0114,0,0},
177         {510,-0.06771,0.93169,-0.55996,0.12544    177         {510,-0.06771,0.93169,-0.55996,0.12544,-0.01906,0.01175,0,0},
178         {515,-0.06476,0.91724,-0.55947,0.12423    178         {515,-0.06476,0.91724,-0.55947,0.12423,-0.01891,0.01191,0,0},
179         {520,-0.05705,0.90697,-0.55703,0.12437    179         {520,-0.05705,0.90697,-0.55703,0.12437,-0.01831,0.01186,0,0},
180         {525,-0.04488,0.90021,-0.55318,0.12594    180         {525,-0.04488,0.90021,-0.55318,0.12594,-0.01736,0.01179,0,0},
181         {530,-0.02927,0.8963,-0.54843,0.12893,    181         {530,-0.02927,0.8963,-0.54843,0.12893,-0.01624,0.01196,0,0},
182         {535,-0.01183,0.8945,-0.5433,0.13334,-    182         {535,-0.01183,0.8945,-0.5433,0.13334,-0.01512,0.0126,0,0},
183         {540,0.00596,0.89424,-0.53831,0.13906,    183         {540,0.00596,0.89424,-0.53831,0.13906,-0.01414,0.01394,0,0},
184         {545,0.02306,0.89492,-0.5339,0.1458,-0    184         {545,0.02306,0.89492,-0.5339,0.1458,-0.0134,0.01611,0,0},
185         {550,0.039,0.89617,-0.53048,0.15329,-0    185         {550,0.039,0.89617,-0.53048,0.15329,-0.01298,0.01915,0,0},
186         {555,0.05391,0.89758,-0.52847,0.16125,    186         {555,0.05391,0.89758,-0.52847,0.16125,-0.01294,0.02316,0,0},
187         {560,0.06806,0.89897,-0.52824,0.16947,    187         {560,0.06806,0.89897,-0.52824,0.16947,-0.01334,0.02816,0,0},
188         {565,0.08166,0.90012,-0.52974,0.17794,    188         {565,0.08166,0.90012,-0.52974,0.17794,-0.01416,0.03398,0,0},
189         {570,0.09478,0.90105,-0.53283,0.18651,    189         {570,0.09478,0.90105,-0.53283,0.18651,-0.01529,0.0403,0,0},
190         {575,0.10746,0.9017,-0.53736,0.19494,-    190         {575,0.10746,0.9017,-0.53736,0.19494,-0.01659,0.04682,0,0},
191         {580,0.11985,0.90216,-0.54318,0.20297,    191         {580,0.11985,0.90216,-0.54318,0.20297,-0.01795,0.05322,0,0},
192         {585,0.13218,0.90248,-0.55002,0.21039,    192         {585,0.13218,0.90248,-0.55002,0.21039,-0.01909,0.05908,0,0},
193         {590,0.14481,0.90282,-0.55752,0.21698,    193         {590,0.14481,0.90282,-0.55752,0.21698,-0.01964,0.06395,0,0},
194         {595,0.15769,0.90328,-0.56531,0.22255,    194         {595,0.15769,0.90328,-0.56531,0.22255,-0.01921,0.06734,0,0},
195         {600,0.17046,0.90397,-0.57302,0.2269,-    195         {600,0.17046,0.90397,-0.57302,0.2269,-0.01743,0.0688,0,0},
196         {605,0.18205,0.90496,-0.58026,0.23009,    196         {605,0.18205,0.90496,-0.58026,0.23009,-0.01427,0.06815,0,0},
197         {610,0.19103,0.90635,-0.58673,0.23229,    197         {610,0.19103,0.90635,-0.58673,0.23229,-0.00999,0.06549,0,0},
198         {615,0.19589,0.90814,-0.59209,0.2337,-    198         {615,0.19589,0.90814,-0.59209,0.2337,-0.00486,0.06093,0,0},
199         {620,0.19545,0.91035,-0.59603,0.2345,0    199         {620,0.19545,0.91035,-0.59603,0.2345,0.00083,0.05457,0,0},
200         {625,0.18873,0.91297,-0.59864,0.23485,    200         {625,0.18873,0.91297,-0.59864,0.23485,0.00685,0.04682,0,0},
201         {630,0.17514,0.91598,-0.60046,0.2349,0    201         {630,0.17514,0.91598,-0.60046,0.2349,0.01298,0.03844,0,0},
202         {635,0.15461,0.91935,-0.60188,0.23486,    202         {635,0.15461,0.91935,-0.60188,0.23486,0.0191,0.03017,0,0},
203         {640,0.12791,0.92305,-0.60283,0.23506,    203         {640,0.12791,0.92305,-0.60283,0.23506,0.0253,0.02263,0,0},
204         {645,0.09694,0.92707,-0.60322,0.23576,    204         {645,0.09694,0.92707,-0.60322,0.23576,0.03151,0.01633,0,0},
205         {650,0.06435,0.9314,-0.60304,0.23717,0    205         {650,0.06435,0.9314,-0.60304,0.23717,0.03758,0.01172,0,0},
206         {655,0.03278,0.93603,-0.60224,0.23951,    206         {655,0.03278,0.93603,-0.60224,0.23951,0.04331,0.00924,0,0},
207         {660,0.00403,0.94096,-0.60081,0.24298,    207         {660,0.00403,0.94096,-0.60081,0.24298,0.04854,0.00932,0,0},
208         {665,-0.02138,0.9462,-0.59882,0.24774,    208         {665,-0.02138,0.9462,-0.59882,0.24774,0.05304,0.01201,0,0},
209         {670,-0.04399,0.95174,-0.59638,0.25384    209         {670,-0.04399,0.95174,-0.59638,0.25384,0.05655,0.01685,0,0},
210         {675,-0.06489,0.95757,-0.59359,0.26128    210         {675,-0.06489,0.95757,-0.59359,0.26128,0.05879,0.02333,0,0},
211         {680,-0.08497,0.96367,-0.59053,0.27011    211         {680,-0.08497,0.96367,-0.59053,0.27011,0.05955,0.03096,-1e-05,0},
212         {685,-0.10471,0.97,-0.58712,0.2802,0.0    212         {685,-0.10471,0.97,-0.58712,0.2802,0.0589,0.03927,-1e-05,0},
213         {690,-0.12371,0.97649,-0.58315,0.29136    213         {690,-0.12371,0.97649,-0.58315,0.29136,0.05721,0.0478,-1e-05,0},
214         {695,-0.14097,0.98305,-0.57828,0.3031,    214         {695,-0.14097,0.98305,-0.57828,0.3031,0.05487,0.05603,-1e-05,0},
215         {700,-0.15469,0.98957,-0.57209,0.31472    215         {700,-0.15469,0.98957,-0.57209,0.31472,0.05231,0.06337,-1e-05,0},
216         {705,-0.16271,0.99591,-0.56443,0.3256,    216         {705,-0.16271,0.99591,-0.56443,0.3256,0.04979,0.06932,-1e-05,0},
217         {710,-0.16255,1.00194,-0.55574,0.33535    217         {710,-0.16255,1.00194,-0.55574,0.33535,0.04732,0.07359,-2e-05,0},
218         {715,-0.15199,1.00752,-0.54657,0.34363    218         {715,-0.15199,1.00752,-0.54657,0.34363,0.04488,0.07591,-2e-05,0},
219         {720,-0.12951,1.01251,-0.53743,0.3499,    219         {720,-0.12951,1.01251,-0.53743,0.3499,0.04245,0.07587,-2e-05,0},
220         {725,-0.09529,1.0168,-0.52879,0.35376,    220         {725,-0.09529,1.0168,-0.52879,0.35376,0.03995,0.07327,-2e-05,0},
221         {730,-0.05159,1.0203,-0.5212,0.35562,0    221         {730,-0.05159,1.0203,-0.5212,0.35562,0.03722,0.06853,-2e-05,0},
222         {735,-0.00245,1.02293,-0.51519,0.35595    222         {735,-0.00245,1.02293,-0.51519,0.35595,0.0341,0.06213,-2e-05,0},
223         {740,0.04772,1.02468,-0.51129,0.35522,    223         {740,0.04772,1.02468,-0.51129,0.35522,0.03044,0.05455,-2e-05,0},
224         {745,0.09584,1.02553,-0.51005,0.35387,    224         {745,0.09584,1.02553,-0.51005,0.35387,0.02597,0.04627,-2e-05,0},
225         {750,0.14086,1.02552,-0.51202,0.35229,    225         {750,0.14086,1.02552,-0.51202,0.35229,0.02027,0.03776,-1e-05,0},
226         {755,0.18338,1.02466,-0.51778,0.35084,    226         {755,0.18338,1.02466,-0.51778,0.35084,0.01302,0.02948,-1e-05,0},
227         {760,0.22444,1.023,-0.52787,0.34965,0.    227         {760,0.22444,1.023,-0.52787,0.34965,0.00409,0.02179,0,0},
228         {765,0.2645,1.0206,-0.54268,0.34874,-0    228         {765,0.2645,1.0206,-0.54268,0.34874,-0.00656,0.01494,1e-05,0},
229         {770,0.30276,1.01748,-0.56211,0.34808,    229         {770,0.30276,1.01748,-0.56211,0.34808,-0.01882,0.00896,2e-05,0},
230         {775,0.33729,1.01369,-0.58582,0.34762,    230         {775,0.33729,1.01369,-0.58582,0.34762,-0.03243,0.00376,4e-05,0},
231         {780,0.36532,1.00926,-0.61343,0.34741,    231         {780,0.36532,1.00926,-0.61343,0.34741,-0.04713,-8e-04,6e-05,0},
232         {785,0.38445,1.00421,-0.64453,0.34758,    232         {785,0.38445,1.00421,-0.64453,0.34758,-0.06254,-0.00496,8e-05,0},
233         {790,0.39323,0.99857,-0.67869,0.34828,    233         {790,0.39323,0.99857,-0.67869,0.34828,-0.07831,-0.00897,0.00011,0},
234         {795,0.39129,0.99243,-0.71549,0.34967,    234         {795,0.39129,0.99243,-0.71549,0.34967,-0.09409,-0.01306,0.00014,0},
235         {800,0.37889,0.98587,-0.75456,0.35269,    235         {800,0.37889,0.98587,-0.75456,0.35269,-0.10967,-0.01765,0.00017,0},
236         {805,0.35624,0.97903,-0.79561,0.35848,    236         {805,0.35624,0.97903,-0.79561,0.35848,-0.12507,-0.023,0.00021,0},
237         {810,0.32292,0.97211,-0.83834,0.36717,    237         {810,0.32292,0.97211,-0.83834,0.36717,-0.14022,-0.02894,0.00025,0},
238         {815,0.27791,0.96533,-0.88246,0.37885,    238         {815,0.27791,0.96533,-0.88246,0.37885,-0.15509,-0.03525,0.00029,0},
239         {820,0.22029,0.95894,-0.92768,0.39359,    239         {820,0.22029,0.95894,-0.92768,0.39359,-0.16961,-0.04173,0.00034,0},
240         {825,0.15048,0.9532,-0.9737,0.41145,-0    240         {825,0.15048,0.9532,-0.9737,0.41145,-0.18373,-0.04817,0.00039,0},
241         {830,0.07108,0.94826,-1.02023,0.43252,    241         {830,0.07108,0.94826,-1.02023,0.43252,-0.1974,-0.05435,0.00044,0},
242         {835,-0.0136,0.94426,-1.06697,0.45687,    242         {835,-0.0136,0.94426,-1.06697,0.45687,-0.21057,-0.06007,0.00049,0},
243         {840,-0.09855,0.94118,-1.11361,0.48455    243         {840,-0.09855,0.94118,-1.11361,0.48455,-0.22318,-0.06513,0.00054,0},
244         {845,-0.17951,0.9389,-1.15976,0.51525,    244         {845,-0.17951,0.9389,-1.15976,0.51525,-0.23515,-0.06938,0.00059,0},
245         {850,-0.25366,0.93727,-1.20484,0.54811    245         {850,-0.25366,0.93727,-1.20484,0.54811,-0.24638,-0.07279,0.00064,0},
246         {855,-0.31965,0.93606,-1.24827,0.58227    246         {855,-0.31965,0.93606,-1.24827,0.58227,-0.25672,-0.07535,0.00069,0},
247         {860,-0.37707,0.93506,-1.28948,0.61685    247         {860,-0.37707,0.93506,-1.28948,0.61685,-0.26608,-0.07701,0.00072,0},
248         {865,-0.42612,0.93404,-1.3279,0.651,-0    248         {865,-0.42612,0.93404,-1.3279,0.651,-0.27433,-0.07778,0.00075,0},
249         {870,-0.46711,0.93281,-1.36298,0.68418    249         {870,-0.46711,0.93281,-1.36298,0.68418,-0.28136,-0.0779,0.00077,0},
250         {875,-0.50042,0.93129,-1.39424,0.7161,    250         {875,-0.50042,0.93129,-1.39424,0.7161,-0.28708,-0.07783,0.00078,0},
251         {880,-0.52649,0.92936,-1.42118,0.74648    251         {880,-0.52649,0.92936,-1.42118,0.74648,-0.29139,-0.07803,0.00076,0},
252         {885,-0.54572,0.92699,-1.44339,0.77492    252         {885,-0.54572,0.92699,-1.44339,0.77492,-0.29417,-0.07883,0.00072,0},
253         {890,-0.55824,0.92417,-1.46054,0.801,-    253         {890,-0.55824,0.92417,-1.46054,0.801,-0.29529,-0.08047,0.00065,0},
254         {895,-0.56399,0.92098,-1.47259,0.82492    254         {895,-0.56399,0.92098,-1.47259,0.82492,-0.29497,-0.08289,0.00054,0},
255         {900,-0.56271,0.91754,-1.47975,0.84731    255         {900,-0.56271,0.91754,-1.47975,0.84731,-0.29367,-0.08579,0.00039,0},
256         {905,-0.55466,0.91396,-1.48218,0.86857    256         {905,-0.55466,0.91396,-1.48218,0.86857,-0.29166,-0.08892,0.00018,0},
257         {910,-0.54086,0.91044,-1.48007,0.88907    257         {910,-0.54086,0.91044,-1.48007,0.88907,-0.28921,-0.09206,-8e-05,0},
258         {915,-0.52332,0.90717,-1.47358,0.90921    258         {915,-0.52332,0.90717,-1.47358,0.90921,-0.28662,-0.09496,-0.00042,0},
259         {920,-0.5045,0.90438,-1.46288,0.92935,    259         {920,-0.5045,0.90438,-1.46288,0.92935,-0.28415,-0.09741,-0.00084,0},
260         {925,-0.48654,0.9023,-1.4482,0.94975,-    260         {925,-0.48654,0.9023,-1.4482,0.94975,-0.28214,-0.09924,-0.00135,0},
261         {930,-0.47053,0.90114,-1.42984,0.97058    261         {930,-0.47053,0.90114,-1.42984,0.97058,-0.281,-0.10034,-0.00195,0},
262         {935,-0.45659,0.90112,-1.40806,0.99201    262         {935,-0.45659,0.90112,-1.40806,0.99201,-0.2811,-0.10059,-0.00266,0},
263         {940,-0.44423,0.90246,-1.38314,1.01421    263         {940,-0.44423,0.90246,-1.38314,1.01421,-0.28285,-0.09988,-0.00348,0},
264         {945,-0.43287,0.90525,-1.35536,1.0371,    264         {945,-0.43287,0.90525,-1.35536,1.0371,-0.28653,-0.09816,-0.00441,0},
265         {950,-0.42193,0.90965,-1.32498,1.06041    265         {950,-0.42193,0.90965,-1.32498,1.06041,-0.29239,-0.09538,-0.00544,0},
266         {955,-0.41093,0.91577,-1.29226,1.08389    266         {955,-0.41093,0.91577,-1.29226,1.08389,-0.30066,-0.09153,-0.00659,0},
267         {960,-0.39924,0.92369,-1.25746,1.10725    267         {960,-0.39924,0.92369,-1.25746,1.10725,-0.31158,-0.08656,-0.00783,0},
268         {965,-0.38604,0.93346,-1.22095,1.13008    268         {965,-0.38604,0.93346,-1.22095,1.13008,-0.32524,-0.08039,-0.00918,0},
269         {970,-0.37027,0.94514,-1.18303,1.15197    269         {970,-0.37027,0.94514,-1.18303,1.15197,-0.34144,-0.07311,-0.01058,0},
270         {975,-0.35077,0.95876,-1.14385,1.17271    270         {975,-0.35077,0.95876,-1.14385,1.17271,-0.35991,-0.06496,-0.01199,0},
271         {980,-0.32717,0.97435,-1.10358,1.19206    271         {980,-0.32717,0.97435,-1.10358,1.19206,-0.38038,-0.05616,-0.01336,0},
272         {985,-0.3004,0.99188,-1.0624,1.20979,-    272         {985,-0.3004,0.99188,-1.0624,1.20979,-0.40261,-0.04696,-0.01464,0},
273         {990,-0.27312,1.01135,-1.02046,1.2257,    273         {990,-0.27312,1.01135,-1.02046,1.2257,-0.42632,-0.03758,-0.01578,0},
274         {995,-0.24834,1.03272,-0.97795,1.23954    274         {995,-0.24834,1.03272,-0.97795,1.23954,-0.45126,-0.02826,-0.01674,0},
275         {1000,-0.22769,1.0559,-0.93501,1.2511,    275         {1000,-0.22769,1.0559,-0.93501,1.2511,-0.47716,-0.01922,-0.01745,0},
276         {1005,-0.21032,1.0808,-0.89184,1.26017    276         {1005,-0.21032,1.0808,-0.89184,1.26017,-0.50377,-0.01069,-0.01787,0},
277         {1010,-0.19369,1.10728,-0.84866,1.2666    277         {1010,-0.19369,1.10728,-0.84866,1.26669,-0.53095,-0.00261,-0.0179,0},
278         {1015,-0.17436,1.13513,-0.80576,1.2706    278         {1015,-0.17436,1.13513,-0.80576,1.27066,-0.55859,0.00512,-0.01742,0},
279         {1020,-0.1494,1.16411,-0.7634,1.27208,    279         {1020,-0.1494,1.16411,-0.7634,1.27208,-0.58657,0.01264,-0.01633,0},
280         {1025,-0.11749,1.19391,-0.72184,1.2709    280         {1025,-0.11749,1.19391,-0.72184,1.27097,-0.61479,0.02007,-0.01451,0},
281         {1030,-0.081,1.22417,-0.68137,1.26732,    281         {1030,-0.081,1.22417,-0.68137,1.26732,-0.64314,0.02755,-0.01185,0},
282         {1035,-0.04533,1.25445,-0.64225,1.2611    282         {1035,-0.04533,1.25445,-0.64225,1.26114,-0.6715,0.0352,-0.00824,0},
283         {1040,-0.01646,1.28424,-0.60476,1.2524    283         {1040,-0.01646,1.28424,-0.60476,1.25244,-0.69977,0.04316,-0.00356,0},
284         {1045,0.00361,1.31304,-0.56915,1.24121    284         {1045,0.00361,1.31304,-0.56915,1.24121,-0.72785,0.05154,0.00231,0},
285         {1050,0.01552,1.34024,-0.53567,1.22751    285         {1050,0.01552,1.34024,-0.53567,1.22751,-0.75561,0.06047,0.0094,0},
286         {1055,0.02103,1.36529,-0.50435,1.21159    286         {1055,0.02103,1.36529,-0.50435,1.21159,-0.78295,0.07001,0.01752,0},
287         {1060,0.02215,1.38771,-0.47519,1.19376    287         {1060,0.02215,1.38771,-0.47519,1.19376,-0.80975,0.08022,0.02639,0},
288         {1065,0.02047,1.40712,-0.4482,1.1743,-    288         {1065,0.02047,1.40712,-0.4482,1.1743,-0.83589,0.09116,0.03575,0},
289         {1070,0.01735,1.4233,-0.42337,1.15353,    289         {1070,0.01735,1.4233,-0.42337,1.15353,-0.86126,0.10289,0.04532,0},
290         {1075,0.0137,1.43585,-0.40071,1.13173,    290         {1075,0.0137,1.43585,-0.40071,1.13173,-0.88574,0.11546,0.05485,0},
291         {1080,0.00983,1.44489,-0.38022,1.10922    291         {1080,0.00983,1.44489,-0.38022,1.10922,-0.90921,0.12892,0.06405,0},
292         {1085,0.00516,1.45066,-0.3619,1.08628,    292         {1085,0.00516,1.45066,-0.3619,1.08628,-0.93157,0.14335,0.07265,0},
293         {1090,-0.00091,1.45292,-0.34574,1.0632    293         {1090,-0.00091,1.45292,-0.34574,1.0632,-0.95272,0.15877,0.08044,0},
294         {1095,-0.00921,1.4522,-0.33171,1.04013    294         {1095,-0.00921,1.4522,-0.33171,1.04013,-0.97273,0.17517,0.08734,0},
295         {1100,-0.01996,1.44884,-0.31977,1.0172    295         {1100,-0.01996,1.44884,-0.31977,1.01722,-0.99171,0.19252,0.09332,-2e-05},
296         {1105,-0.03239,1.44326,-0.30987,0.9945    296         {1105,-0.03239,1.44326,-0.30987,0.99459,-1.00975,0.2108,0.09835,-4e-05},
297         {1110,-0.0447,1.43582,-0.30197,0.97238    297         {1110,-0.0447,1.43582,-0.30197,0.97238,-1.02695,0.22997,0.1024,-6e-05},
298         {1115,-0.05508,1.42673,-0.29604,0.9507    298         {1115,-0.05508,1.42673,-0.29604,0.95074,-1.0434,0.25,0.10545,-9e-05},
299         {1120,-0.06264,1.41667,-0.29202,0.9297    299         {1120,-0.06264,1.41667,-0.29202,0.92979,-1.05922,0.27085,0.10746,-0.00015},
300         {1125,-0.06741,1.40585,-0.28988,0.9096    300         {1125,-0.06741,1.40585,-0.28988,0.90967,-1.0745,0.29251,0.10841,-0.00023},
301         {1130,-0.06996,1.39476,-0.28958,0.8905    301         {1130,-0.06996,1.39476,-0.28958,0.89052,-1.08934,0.31494,0.10826,-0.00036},
302         {1135,-0.07105,1.38376,-0.29107,0.8724    302         {1135,-0.07105,1.38376,-0.29107,0.87247,-1.10383,0.3381,0.107,-0.00054},
303         {1140,-0.0711,1.3732,-0.29431,0.85567,    303         {1140,-0.0711,1.3732,-0.29431,0.85567,-1.11808,0.36197,0.10458,-0.00087},
304         {1145,-0.07085,1.36335,-0.29927,0.8402    304         {1145,-0.07085,1.36335,-0.29927,0.84024,-1.13219,0.38652,0.10099,-0.00128},
305         {1150,-0.07116,1.35452,-0.30589,0.8263    305         {1150,-0.07116,1.35452,-0.30589,0.82632,-1.14626,0.41172,0.09619,-0.00185},
306         {1155,-0.07304,1.34687,-0.31414,0.8140    306         {1155,-0.07304,1.34687,-0.31414,0.81405,-1.16038,0.43753,0.09015,-0.00263},
307         {1160,-0.07771,1.34061,-0.32397,0.8035    307         {1160,-0.07771,1.34061,-0.32397,0.80356,-1.17466,0.46393,0.08284,-0.00367},
308         {1165,-0.08664,1.3359,-0.33535,0.79499    308         {1165,-0.08664,1.3359,-0.33535,0.79499,-1.18919,0.49089,0.07424,-0.00506},
309         {1170,-0.10173,1.33284,-0.34823,0.7884    309         {1170,-0.10173,1.33284,-0.34823,0.78841,-1.20404,0.51834,0.06434,-0.00686},
310         {1175,-0.12509,1.33145,-0.36258,0.7835    310         {1175,-0.12509,1.33145,-0.36258,0.78356,-1.21914,0.54614,0.05318,-0.00925},
311         {1180,-0.15682,1.33177,-0.37838,0.7801    311         {1180,-0.15682,1.33177,-0.37838,0.78014,-1.23438,0.57409,0.04086,-0.0122},
312         {1185,-0.19464,1.33374,-0.39559,0.7778    312         {1185,-0.19464,1.33374,-0.39559,0.77782,-1.24965,0.60201,0.02744,-0.01586},
313         {1190,-0.23352,1.33727,-0.41419,0.7763    313         {1190,-0.23352,1.33727,-0.41419,0.7763,-1.26484,0.62972,0.01301,-0.02035},
314         {1195,-0.26876,1.34221,-0.43415,0.7752    314         {1195,-0.26876,1.34221,-0.43415,0.77525,-1.27985,0.65702,-0.00237,-0.02577},
315         {1200,-0.299,1.34841,-0.45544,0.77437,    315         {1200,-0.299,1.34841,-0.45544,0.77437,-1.29457,0.68375,-0.01862,-0.0322},
316         {1205,-0.32631,1.35562,-0.47804,0.7733    316         {1205,-0.32631,1.35562,-0.47804,0.77332,-1.30888,0.7097,-0.03565,-0.03976},
317         {1210,-0.35505,1.36358,-0.50188,0.7718    317         {1210,-0.35505,1.36358,-0.50188,0.77186,-1.32269,0.73474,-0.05339,-0.04851},
318         {1215,-0.38961,1.372,-0.52686,0.7699,-    318         {1215,-0.38961,1.372,-0.52686,0.7699,-1.33587,0.75888,-0.07178,-0.0585},
319         {1220,-0.43176,1.38055,-0.55282,0.7674    319         {1220,-0.43176,1.38055,-0.55282,0.76744,-1.3483,0.78219,-0.09072,-0.06977},
320         {1225,-0.47936,1.38889,-0.57962,0.7644    320         {1225,-0.47936,1.38889,-0.57962,0.76446,-1.35986,0.80471,-0.11016,-0.08229},
321         {1230,-0.52635,1.39666,-0.60711,0.7609    321         {1230,-0.52635,1.39666,-0.60711,0.76094,-1.37043,0.82652,-0.13,-0.09604},
322         {1235,-0.56649,1.40351,-0.63516,0.7568    322         {1235,-0.56649,1.40351,-0.63516,0.75687,-1.37988,0.84766,-0.15019,-0.11094},
323         {1240,-0.59709,1.40914,-0.66361,0.7522    323         {1240,-0.59709,1.40914,-0.66361,0.75222,-1.3881,0.86819,-0.17064,-0.12681},
324         {1245,-0.61879,1.41323,-0.69232,0.7469    324         {1245,-0.61879,1.41323,-0.69232,0.74699,-1.39497,0.88817,-0.19128,-0.14349},
325         {1250,-0.63452,1.41555,-0.72116,0.7411    325         {1250,-0.63452,1.41555,-0.72116,0.74115,-1.40036,0.90767,-0.21203,-0.16074},
326         {1255,-0.6472,1.4159,-0.74996,0.73469,    326         {1255,-0.6472,1.4159,-0.74996,0.73469,-1.40415,0.92673,-0.23283,-0.17827},
327         {1260,-0.65841,1.4142,-0.77859,0.7276,    327         {1260,-0.65841,1.4142,-0.77859,0.7276,-1.40622,0.94542,-0.25358,-0.19575},
328         {1265,-0.66819,1.41043,-0.80691,0.7198    328         {1265,-0.66819,1.41043,-0.80691,0.71985,-1.40646,0.96379,-0.27423,-0.21283},
329         {1270,-0.67506,1.40465,-0.83476,0.7114    329         {1270,-0.67506,1.40465,-0.83476,0.71143,-1.40474,0.9819,-0.29469,-0.22916},
330         {1275,-0.67695,1.39703,-0.86202,0.7023    330         {1275,-0.67695,1.39703,-0.86202,0.70233,-1.40093,0.99981,-0.3149,-0.24439},
331         {1280,-0.67215,1.38781,-0.88852,0.6925    331         {1280,-0.67215,1.38781,-0.88852,0.69252,-1.39492,1.01758,-0.33477,-0.25814},
332         {1285,-0.65883,1.37728,-0.91412,0.6819    332         {1285,-0.65883,1.37728,-0.91412,0.68199,-1.38659,1.03527,-0.35423,-0.27016},
333         {1290,-0.63639,1.36579,-0.93873,0.6707    333         {1290,-0.63639,1.36579,-0.93873,0.67076,-1.37587,1.05293,-0.37323,-0.28021},
334         {1295,-0.60463,1.35371,-0.96237,0.6589    334         {1295,-0.60463,1.35371,-0.96237,0.65893,-1.3629,1.07059,-0.3918,-0.28812},
335         {1300,-0.56527,1.34141,-0.98514,0.6466    335         {1300,-0.56527,1.34141,-0.98514,0.64665,-1.34787,1.08829,-0.41,-0.29382},
336         {1305,-0.52229,1.32923,-1.0071,0.63407    336         {1305,-0.52229,1.32923,-1.0071,0.63407,-1.33099,1.10606,-0.4279,-0.29727},
337         {1310,-0.4806,1.31751,-1.02834,0.62132    337         {1310,-0.4806,1.31751,-1.02834,0.62132,-1.31244,1.12394,-0.44553,-0.29853},
338         {1315,-0.44384,1.3065,-1.04893,0.60855    338         {1315,-0.44384,1.3065,-1.04893,0.60855,-1.29241,1.14195,-0.46298,-0.29776},
339         {1320,-0.41298,1.29641,-1.06896,0.5959    339         {1320,-0.41298,1.29641,-1.06896,0.5959,-1.27111,1.16013,-0.48028,-0.29505},
340         {1325,-0.38708,1.28739,-1.0885,0.58352    340         {1325,-0.38708,1.28739,-1.0885,0.58352,-1.24873,1.17852,-0.4975,-0.29066},
341         {1330,-0.36429,1.27952,-1.10764,0.5715    341         {1330,-0.36429,1.27952,-1.10764,0.57154,-1.22546,1.19714,-0.5147,-0.28485},
342         {1335,-0.34347,1.27284,-1.12645,0.5601    342         {1335,-0.34347,1.27284,-1.12645,0.56012,-1.2015,1.21602,-0.53193,-0.27787},
343         {1340,-0.32464,1.26732,-1.14501,0.5493    343         {1340,-0.32464,1.26732,-1.14501,0.54939,-1.17704,1.23521,-0.54926,-0.26998},
344         {1345,-0.30854,1.2629,-1.1634,0.5395,-    344         {1345,-0.30854,1.2629,-1.1634,0.5395,-1.15228,1.25472,-0.56673,-0.26145},
345         {1350,-0.29584,1.25949,-1.18169,0.5305    345         {1350,-0.29584,1.25949,-1.18169,0.53059,-1.1274,1.27461,-0.58441,-0.2525},
346         {1355,-0.28655,1.25697,-1.19998,0.5228    346         {1355,-0.28655,1.25697,-1.19998,0.52281,-1.10262,1.29488,-0.60235,-0.2434}};
347                                                   347       
348       const G4int coef_ener = G4int((pLab-Lege    348       const G4int coef_ener = G4int((pLab-Legendre_coef[0][0])/5);
349       const G4double sup_ener = pLab/5. - coef    349       const G4double sup_ener = pLab/5. - coef_ener -Legendre_coef[0][0]/5;
350                                                   350       
351 // assert(pLab >= Legendre_coef[coef_ener][0]     351 // assert(pLab >= Legendre_coef[coef_ener][0] && pLab < Legendre_coef[coef_ener+1][0]);
352                                                   352       
353       // Legendre coefficient normalized          353       // Legendre coefficient normalized
354       const G4double A0 = 1.;                     354       const G4double A0 = 1.;
355       const G4double A1 = (1-sup_ener)*Legendr    355       const G4double A1 = (1-sup_ener)*Legendre_coef[coef_ener][1] + sup_ener*Legendre_coef[coef_ener+1][1];
356       const G4double A2 = (1-sup_ener)*Legendr    356       const G4double A2 = (1-sup_ener)*Legendre_coef[coef_ener][2] + sup_ener*Legendre_coef[coef_ener+1][2];
357       const G4double A3 = (1-sup_ener)*Legendr    357       const G4double A3 = (1-sup_ener)*Legendre_coef[coef_ener][3] + sup_ener*Legendre_coef[coef_ener+1][3];
358       const G4double A4 = (1-sup_ener)*Legendr    358       const G4double A4 = (1-sup_ener)*Legendre_coef[coef_ener][4] + sup_ener*Legendre_coef[coef_ener+1][4];
359       const G4double A5 = (1-sup_ener)*Legendr    359       const G4double A5 = (1-sup_ener)*Legendre_coef[coef_ener][5] + sup_ener*Legendre_coef[coef_ener+1][5];
360       const G4double A6 = (1-sup_ener)*Legendr    360       const G4double A6 = (1-sup_ener)*Legendre_coef[coef_ener][6] + sup_ener*Legendre_coef[coef_ener+1][6];
361       const G4double A7 = (1-sup_ener)*Legendr    361       const G4double A7 = (1-sup_ener)*Legendre_coef[coef_ener][7] + sup_ener*Legendre_coef[coef_ener+1][7];
362       const G4double A8 = (1-sup_ener)*Legendr    362       const G4double A8 = (1-sup_ener)*Legendre_coef[coef_ener][8] + sup_ener*Legendre_coef[coef_ener+1][8];
363                                                   363       
364       // Theoritical max if all Ai > 0 (often     364       // Theoritical max if all Ai > 0 (often the case)
365       const G4double A = std::fabs(A0) + std::    365       const G4double A = std::fabs(A0) + std::fabs(A1) + std::fabs(A2) + std::fabs(A3) + std::fabs(A4) + std::fabs(A5) + std::fabs(A6) + std::fabs(A7) + std::fabs(A8);
366                                                   366       
367       G4bool success = false;                     367       G4bool success = false;
368       G4int maxloop = 0;                          368       G4int maxloop = 0;
369                                                   369       
370       while(!success && maxloop < 1000){          370       while(!success && maxloop < 1000){
371                                                   371         
372         cos_theta = Random::shoot()*2-1.; // n    372         cos_theta = Random::shoot()*2-1.; // not optimized
373                                                   373         
374         // Legendre Polynomial                    374         // Legendre Polynomial
375         G4double P0 = A0;                         375         G4double P0 = A0;
376         G4double P1 = A1*cos_theta;               376         G4double P1 = A1*cos_theta;
377         G4double P2 = A2/2.*(3*std::pow(cos_th    377         G4double P2 = A2/2.*(3*std::pow(cos_theta,2)-1);
378         G4double P3 = A3/2.*(5*std::pow(cos_th    378         G4double P3 = A3/2.*(5*std::pow(cos_theta,3)-3*cos_theta);
379         G4double P4 = A4/8.*(35*std::pow(cos_t    379         G4double P4 = A4/8.*(35*std::pow(cos_theta,4)-30*std::pow(cos_theta,2)+3);
380         G4double P5 = A5/8.*(63*std::pow(cos_t    380         G4double P5 = A5/8.*(63*std::pow(cos_theta,5)-70*std::pow(cos_theta,3)+15*cos_theta);
381         G4double P6 = A6/16.*(231*std::pow(cos    381         G4double P6 = A6/16.*(231*std::pow(cos_theta,6)-315*std::pow(cos_theta,4)+105*std::pow(cos_theta,2)-5);
382         G4double P7 = A7/16.*(429*std::pow(cos    382         G4double P7 = A7/16.*(429*std::pow(cos_theta,7)-693*std::pow(cos_theta,5)+315*std::pow(cos_theta,3)-35*cos_theta);
383         G4double P8 = A8/128.*(6435*std::pow(c    383         G4double P8 = A8/128.*(6435*std::pow(cos_theta,8)-12012*std::pow(cos_theta,6)+6930*std::pow(cos_theta,4)-1260*std::pow(cos_theta,2)+35);
384                                                   384         
385         G4double P = (P0 + P1 + P2 + P3 + P4 +    385         G4double P = (P0 + P1 + P2 + P3 + P4 + P5 + P6 + P7 + P8)/2; // /2 for the normalisation
386                                                   386         
387         if(Random::shoot()*A < P) success = tr    387         if(Random::shoot()*A < P) success = true;
388         maxloop +=1 ;                             388         maxloop +=1 ;
389         if(maxloop==1000) cos_theta = std::log    389         if(maxloop==1000) cos_theta = std::log(Random::shoot()*(std::exp(10.)-std::exp(-10.))+std::exp(-10.))/10.; // if no success in 1E4 shoot, probably angulard distribution piked very forward 
390       }                                           390       }
391       sin_theta = std::sqrt(1-cos_theta*cos_th    391       sin_theta = std::sqrt(1-cos_theta*cos_theta);
392     }                                             392     }
393                                                   393     
394     if(rho == 0) return ThreeVector(sin_theta*    394     if(rho == 0) return ThreeVector(sin_theta*cos_phi,sin_theta*sin_phi,cos_theta);
395     // Rotation in the direction of the incide    395     // Rotation in the direction of the incident kaon
396     const G4double px = x/r*cos_theta - y/rho*    396     const G4double px = x/r*cos_theta - y/rho*sin_theta*cos_phi + z/r*x/rho*sin_theta*sin_phi;
397     const G4double py = y/r*cos_theta + x/rho*    397     const G4double py = y/r*cos_theta + x/rho*sin_theta*cos_phi + z/r*y/rho*sin_theta*sin_phi;
398     const G4double pz = z/r*cos_theta - rho/r*    398     const G4double pz = z/r*cos_theta - rho/r*sin_theta*sin_phi;
399                                                   399     
400     return ThreeVector(px,py,pz);                 400     return ThreeVector(px,py,pz);
401   }                                               401   }
402 }                                                 402 }
403                                                   403