Geant4 Cross Reference

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


  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 "G4INCLNKbToLpiChannel.hh"                38 #include "G4INCLNKbToLpiChannel.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   NKbToLpiChannel::NKbToLpiChannel(Particle *p     49   NKbToLpiChannel::NKbToLpiChannel(Particle *p1, Particle *p2)
 50     : particle1(p1), particle2(p2)                 50     : particle1(p1), particle2(p2)
 51     {}                                             51     {}
 52                                                    52   
 53   NKbToLpiChannel::~NKbToLpiChannel(){}            53   NKbToLpiChannel::~NKbToLpiChannel(){}
 54                                                    54   
 55   void NKbToLpiChannel::fillFinalState(FinalSt     55   void NKbToLpiChannel::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     const G4int iso = ParticleTable::getIsospi     68     const G4int iso = ParticleTable::getIsospin(nucleon->getType()) + ParticleTable::getIsospin(kaon->getType());
 69                                                    69     
 70                                                    70     
 71     ThreeVector mom_pion = KaonMomentum(kaon,n     71     ThreeVector mom_pion = KaonMomentum(kaon,nucleon); // based on K- p -> Lambda pi0
 72                                                    72     
 73     kaon->setType(ParticleTable::getPionType(i     73     kaon->setType(ParticleTable::getPionType(iso));
 74     nucleon->setType(Lambda);                      74     nucleon->setType(Lambda);
 75                                                    75     
 76     G4double norm = KinematicsUtils::momentumI     76     G4double norm = KinematicsUtils::momentumInCM(kaon,nucleon);
 77                                                    77 
 78     kaon->setMomentum(mom_pion*norm);              78     kaon->setMomentum(mom_pion*norm);
 79     nucleon->setMomentum(-mom_pion*norm);          79     nucleon->setMomentum(-mom_pion*norm);
 80                                                    80     
 81     kaon->adjustEnergyFromMomentum();              81     kaon->adjustEnergyFromMomentum();
 82     nucleon->adjustEnergyFromMomentum();           82     nucleon->adjustEnergyFromMomentum();
 83                                                    83     
 84     fs->addModifiedParticle(nucleon);              84     fs->addModifiedParticle(nucleon);
 85     fs->addModifiedParticle(kaon);                 85     fs->addModifiedParticle(kaon);
 86                                                    86         
 87   }                                                87   }
 88                                                    88   
 89   ThreeVector NKbToLpiChannel::KaonMomentum(Pa     89   ThreeVector NKbToLpiChannel::KaonMomentum(Particle const * const kaon, Particle const * const nucleon){
 90                                                    90     
 91     const G4double pLab = KinematicsUtils::mom     91     const G4double pLab = KinematicsUtils::momentumInLab(kaon,nucleon);
 92                                                    92     
 93     if(pLab < 435.) return Random::normVector(     93     if(pLab < 435.) return Random::normVector(); // isotropic
 94                                                    94     
 95     G4double cos_theta = 1.;                       95     G4double cos_theta = 1.;
 96     G4double sin_theta = 0.;                       96     G4double sin_theta = 0.;
 97     const G4double cos_phi = std::cos(Random::     97     const G4double cos_phi = std::cos(Random::shoot()*Math::twoPi);
 98     const G4double sin_phi = std::sqrt(1-cos_p     98     const G4double sin_phi = std::sqrt(1-cos_phi*cos_phi);
 99                                                    99     
100     const G4double x = kaon->getMomentum().get    100     const G4double x = kaon->getMomentum().getX();
101     const G4double y = kaon->getMomentum().get    101     const G4double y = kaon->getMomentum().getY();
102     const G4double z = kaon->getMomentum().get    102     const G4double z = kaon->getMomentum().getZ();
103                                                   103     
104     const G4double r = std::sqrt(x*x+y*y+z*z);    104     const G4double r = std::sqrt(x*x+y*y+z*z);
105     const G4double rho = std::sqrt(x*x+y*y);      105     const G4double rho = std::sqrt(x*x+y*y);
106                                                   106     
107     if(pLab >= 1845.){                            107     if(pLab >= 1845.){
108       const G4double b = 12. * pLab/2375.; //     108       const G4double b = 12. * pLab/2375.; // correspond to the forward slope description at 2375 MeV/c in K- p elastic
109       cos_theta = std::log(Random::shoot()*(st    109       cos_theta = std::log(Random::shoot()*(std::exp(b)-std::exp(-b))+std::exp(-b))/b;
110       sin_theta = std::sqrt(1-cos_theta*cos_th    110       sin_theta = std::sqrt(1-cos_theta*cos_theta);
111                                                   111       
112     }                                             112     }
113     else{                                         113     else{
114       const G4double Legendre_coef[283][8] = {    114       const G4double Legendre_coef[283][8] = {
115         {435,1.29381,0.87668,0.24531,0.00844,-    115         {435,1.29381,0.87668,0.24531,0.00844,-0.0067,4e-05,0},
116         {440,1.28561,0.87491,0.24024,0.00529,-    116         {440,1.28561,0.87491,0.24024,0.00529,-0.00609,3e-05,0},
117         {445,1.27743,0.87315,0.23522,0.00212,-    117         {445,1.27743,0.87315,0.23522,0.00212,-0.00547,3e-05,0},
118         {450,1.26928,0.87139,0.2303,-0.00105,-    118         {450,1.26928,0.87139,0.2303,-0.00105,-0.00485,2e-05,0},
119         {455,1.2612,0.86965,0.22553,-0.00424,-    119         {455,1.2612,0.86965,0.22553,-0.00424,-0.0042,1e-05,0},
120         {460,1.25317,0.86792,0.22099,-0.00745,    120         {460,1.25317,0.86792,0.22099,-0.00745,-0.00354,0,0},
121         {465,1.24512,0.86623,0.21678,-0.01069,    121         {465,1.24512,0.86623,0.21678,-0.01069,-0.00284,0,0},
122         {470,1.23692,0.86461,0.21304,-0.01397,    122         {470,1.23692,0.86461,0.21304,-0.01397,-0.00211,-1e-05,0},
123         {475,1.22848,0.86311,0.20991,-0.01729,    123         {475,1.22848,0.86311,0.20991,-0.01729,-0.00132,-2e-05,0},
124         {480,1.21967,0.86172,0.20749,-0.02066,    124         {480,1.21967,0.86172,0.20749,-0.02066,-0.00048,-3e-05,0},
125         {485,1.21035,0.86044,0.20577,-0.02407,    125         {485,1.21035,0.86044,0.20577,-0.02407,0.00044,-3e-05,0},
126         {490,1.2004,0.85923,0.20473,-0.02748,0    126         {490,1.2004,0.85923,0.20473,-0.02748,0.00143,-4e-05,0},
127         {495,1.18967,0.85804,0.20434,-0.03087,    127         {495,1.18967,0.85804,0.20434,-0.03087,0.00251,-5e-05,0},
128         {500,1.17802,0.85684,0.20455,-0.03423,    128         {500,1.17802,0.85684,0.20455,-0.03423,0.00369,-6e-05,0},
129         {505,1.16533,0.8556,0.20535,-0.03753,0    129         {505,1.16533,0.8556,0.20535,-0.03753,0.00497,-7e-05,0},
130         {510,1.15145,0.85427,0.20669,-0.04075,    130         {510,1.15145,0.85427,0.20669,-0.04075,0.00637,-8e-05,0},
131         {515,1.13624,0.85282,0.20855,-0.04386,    131         {515,1.13624,0.85282,0.20855,-0.04386,0.0079,-9e-05,0},
132         {520,1.11972,0.85121,0.21086,-0.0468,0    132         {520,1.11972,0.85121,0.21086,-0.0468,0.00955,-1e-04,0},
133         {525,1.10208,0.84953,0.21379,-0.04947,    133         {525,1.10208,0.84953,0.21379,-0.04947,0.01133,-0.00011,0},
134         {530,1.0835,0.84789,0.21759,-0.05178,0    134         {530,1.0835,0.84789,0.21759,-0.05178,0.01323,-0.00012,0},
135         {535,1.06417,0.84639,0.2225,-0.05361,0    135         {535,1.06417,0.84639,0.2225,-0.05361,0.01525,-0.00013,0},
136         {540,1.04423,0.8451,0.22862,-0.05493,0    136         {540,1.04423,0.8451,0.22862,-0.05493,0.01738,-0.00014,0},
137         {545,1.02374,0.844,0.23576,-0.05583,0.    137         {545,1.02374,0.844,0.23576,-0.05583,0.0196,-0.00015,0},
138         {550,1.00274,0.84308,0.2437,-0.05642,0    138         {550,1.00274,0.84308,0.2437,-0.05642,0.02189,-0.00016,0},
139         {555,0.98125,0.8423,0.25219,-0.05681,0    139         {555,0.98125,0.8423,0.25219,-0.05681,0.02423,-0.00017,0},
140         {560,0.95932,0.84165,0.26101,-0.0571,0    140         {560,0.95932,0.84165,0.26101,-0.0571,0.02659,-0.00017,0},
141         {565,0.93696,0.84108,0.26988,-0.05743,    141         {565,0.93696,0.84108,0.26988,-0.05743,0.02895,-0.00018,0},
142         {570,0.91408,0.84053,0.27837,-0.05801,    142         {570,0.91408,0.84053,0.27837,-0.05801,0.03126,-0.00018,0},
143         {575,0.89056,0.83994,0.28602,-0.05907,    143         {575,0.89056,0.83994,0.28602,-0.05907,0.03345,-0.00018,0},
144         {580,0.86629,0.8393,0.29249,-0.06069,0    144         {580,0.86629,0.8393,0.29249,-0.06069,0.03543,-0.00017,0},
145         {585,0.84122,0.83869,0.29765,-0.06277,    145         {585,0.84122,0.83869,0.29765,-0.06277,0.0371,-0.00016,0},
146         {590,0.81531,0.83818,0.30154,-0.06516,    146         {590,0.81531,0.83818,0.30154,-0.06516,0.03842,-0.00015,0},
147         {595,0.78853,0.83781,0.30425,-0.06771,    147         {595,0.78853,0.83781,0.30425,-0.06771,0.03943,-0.00012,0},
148         {600,0.76086,0.83762,0.30587,-0.07025,    148         {600,0.76086,0.83762,0.30587,-0.07025,0.04015,-9e-05,1e-05},
149         {605,0.73242,0.83777,0.30661,-0.07259,    149         {605,0.73242,0.83777,0.30661,-0.07259,0.0406,-6e-05,1e-05},
150         {610,0.7034,0.8385,0.30673,-0.07453,0.    150         {610,0.7034,0.8385,0.30673,-0.07453,0.04081,-1e-05,1e-05},
151         {615,0.67402,0.84003,0.3065,-0.07588,0    151         {615,0.67402,0.84003,0.3065,-0.07588,0.0408,5e-05,1e-05},
152         {620,0.6445,0.8426,0.30618,-0.07642,0.    152         {620,0.6445,0.8426,0.30618,-0.07642,0.0406,0.00012,1e-05},
153         {625,0.61503,0.84637,0.30581,-0.07599,    153         {625,0.61503,0.84637,0.30581,-0.07599,0.04021,2e-04,2e-05},
154         {630,0.5858,0.85147,0.30525,-0.07444,0    154         {630,0.5858,0.85147,0.30525,-0.07444,0.03962,3e-04,2e-05},
155         {635,0.557,0.85801,0.30443,-0.07169,0.    155         {635,0.557,0.85801,0.30443,-0.07169,0.03881,0.00041,2e-05},
156         {640,0.5289,0.86611,0.30346,-0.06786,0    156         {640,0.5289,0.86611,0.30346,-0.06786,0.03772,0.00053,3e-05},
157         {645,0.50176,0.87586,0.30245,-0.06312,    157         {645,0.50176,0.87586,0.30245,-0.06312,0.03626,0.00068,3e-05},
158         {650,0.47582,0.8874,0.30153,-0.05762,0    158         {650,0.47582,0.8874,0.30153,-0.05762,0.03438,0.00084,3e-05},
159         {655,0.45135,0.90083,0.30082,-0.05148,    159         {655,0.45135,0.90083,0.30082,-0.05148,0.03201,0.00101,4e-05},
160         {660,0.42865,0.91629,0.30054,-0.0447,0    160         {660,0.42865,0.91629,0.30054,-0.0447,0.0292,0.0012,4e-05},
161         {665,0.40794,0.93393,0.30079,-0.03707,    161         {665,0.40794,0.93393,0.30079,-0.03707,0.02606,0.00141,4e-05},
162         {670,0.38927,0.95387,0.30149,-0.0283,0    162         {670,0.38927,0.95387,0.30149,-0.0283,0.02276,0.00163,5e-05},
163         {675,0.37268,0.97623,0.30251,-0.01806,    163         {675,0.37268,0.97623,0.30251,-0.01806,0.01946,0.00187,5e-05},
164         {680,0.35818,1.0011,0.30373,-0.00607,0    164         {680,0.35818,1.0011,0.30373,-0.00607,0.01635,0.0021,5e-05},
165         {685,0.34574,1.02858,0.30527,0.00796,0    165         {685,0.34574,1.02858,0.30527,0.00796,0.0136,0.00234,5e-05},
166         {690,0.33527,1.05871,0.30741,0.02426,0    166         {690,0.33527,1.05871,0.30741,0.02426,0.01138,0.00257,5e-05},
167         {695,0.32658,1.09138,0.31026,0.04292,0    167         {695,0.32658,1.09138,0.31026,0.04292,0.00982,0.0028,5e-05},
168         {700,0.31939,1.12634,0.31382,0.06382,0    168         {700,0.31939,1.12634,0.31382,0.06382,0.00895,0.003,5e-05},
169         {705,0.31344,1.16334,0.31815,0.08676,0    169         {705,0.31344,1.16334,0.31815,0.08676,0.00879,0.00317,4e-05},
170         {710,0.3086,1.20215,0.32345,0.11138,0.    170         {710,0.3086,1.20215,0.32345,0.11138,0.00935,0.00328,4e-05},
171         {715,0.30471,1.24255,0.32994,0.13731,0    171         {715,0.30471,1.24255,0.32994,0.13731,0.01061,0.00334,3e-05},
172         {720,0.30161,1.28419,0.33773,0.16421,0    172         {720,0.30161,1.28419,0.33773,0.16421,0.01265,0.00332,2e-05},
173         {725,0.29909,1.32659,0.34682,0.19187,0    173         {725,0.29909,1.32659,0.34682,0.19187,0.01564,0.0032,0},
174         {730,0.29695,1.36945,0.35725,0.22005,0    174         {730,0.29695,1.36945,0.35725,0.22005,0.01956,0.00296,-2e-05},
175         {735,0.29502,1.41255,0.36915,0.24854,0    175         {735,0.29502,1.41255,0.36915,0.24854,0.0243,0.00258,-4e-05},
176         {740,0.29311,1.45571,0.38262,0.27709,0    176         {740,0.29311,1.45571,0.38262,0.27709,0.02974,0.00202,-7e-05},
177         {745,0.29109,1.49871,0.39781,0.3055,0.    177         {745,0.29109,1.49871,0.39781,0.3055,0.03575,0.00127,-0.00011},
178         {750,0.28898,1.54138,0.41503,0.33366,0    178         {750,0.28898,1.54138,0.41503,0.33366,0.0422,0.00029,-0.00015},
179         {755,0.28683,1.58345,0.43457,0.36147,0    179         {755,0.28683,1.58345,0.43457,0.36147,0.04894,-0.00094,-0.00019},
180         {760,0.28451,1.6243,0.45625,0.38871,0.    180         {760,0.28451,1.6243,0.45625,0.38871,0.05591,-0.00244,-0.00025},
181         {765,0.28175,1.66337,0.47979,0.41518,0    181         {765,0.28175,1.66337,0.47979,0.41518,0.06308,-0.00425,-0.00031},
182         {770,0.27835,1.70025,0.50482,0.44067,0    182         {770,0.27835,1.70025,0.50482,0.44067,0.07042,-0.00639,-0.00037},
183         {775,0.27417,1.73456,0.53095,0.46502,0    183         {775,0.27417,1.73456,0.53095,0.46502,0.07785,-0.00889,-0.00044},
184         {780,0.26902,1.76599,0.55773,0.48808,0    184         {780,0.26902,1.76599,0.55773,0.48808,0.08531,-0.01176,-0.00052},
185         {785,0.26276,1.79435,0.58464,0.50969,0    185         {785,0.26276,1.79435,0.58464,0.50969,0.09264,-0.01503,-6e-04},
186         {790,0.2552,1.81947,0.61114,0.52972,0.    186         {790,0.2552,1.81947,0.61114,0.52972,0.09971,-0.0187,-0.00068},
187         {795,0.24617,1.84117,0.6367,0.54802,0.    187         {795,0.24617,1.84117,0.6367,0.54802,0.10638,-0.02279,-0.00077},
188         {800,0.23554,1.85933,0.66076,0.56451,0    188         {800,0.23554,1.85933,0.66076,0.56451,0.11244,-0.0273,-0.00086},
189         {805,0.22322,1.87397,0.68275,0.57917,0    189         {805,0.22322,1.87397,0.68275,0.57917,0.11765,-0.03222,-0.00095},
190         {810,0.20914,1.8851,0.70209,0.592,0.12    190         {810,0.20914,1.8851,0.70209,0.592,0.12173,-0.03752,-0.00104},
191         {815,0.1932,1.89272,0.7182,0.60299,0.1    191         {815,0.1932,1.89272,0.7182,0.60299,0.12443,-0.04319,-0.00113},
192         {820,0.17533,1.89686,0.73052,0.61214,0    192         {820,0.17533,1.89686,0.73052,0.61214,0.1255,-0.04922,-0.00121},
193         {825,0.15565,1.89756,0.73887,0.61947,0    193         {825,0.15565,1.89756,0.73887,0.61947,0.12491,-0.05557,-0.00128},
194         {830,0.13439,1.89493,0.74336,0.62504,0    194         {830,0.13439,1.89493,0.74336,0.62504,0.12283,-0.06219,-0.00134},
195         {835,0.11178,1.88905,0.74408,0.62889,0    195         {835,0.11178,1.88905,0.74408,0.62889,0.11942,-0.06905,-0.00139},
196         {840,0.08807,1.88001,0.74115,0.63106,0    196         {840,0.08807,1.88001,0.74115,0.63106,0.11484,-0.07609,-0.00143},
197         {845,0.0635,1.86791,0.73467,0.63161,0.    197         {845,0.0635,1.86791,0.73467,0.63161,0.10925,-0.08327,-0.00144},
198         {850,0.03831,1.85283,0.72475,0.63058,0    198         {850,0.03831,1.85283,0.72475,0.63058,0.10282,-0.09055,-0.00144},
199         {855,0.01278,1.83488,0.7116,0.62802,0.    199         {855,0.01278,1.83488,0.7116,0.62802,0.09574,-0.09784,-0.00142},
200         {860,-0.01274,1.81419,0.69565,0.624,0.    200         {860,-0.01274,1.81419,0.69565,0.624,0.0883,-0.105,-0.00136},
201         {865,-0.03789,1.79087,0.67736,0.61858,    201         {865,-0.03789,1.79087,0.67736,0.61858,0.08079,-0.11186,-0.00127},
202         {870,-0.06232,1.76507,0.65719,0.61182,    202         {870,-0.06232,1.76507,0.65719,0.61182,0.07351,-0.11824,-0.00115},
203         {875,-0.08566,1.73691,0.63561,0.60379,    203         {875,-0.08566,1.73691,0.63561,0.60379,0.06676,-0.12399,-0.00099},
204         {880,-0.10755,1.70652,0.61308,0.59454,    204         {880,-0.10755,1.70652,0.61308,0.59454,0.06082,-0.12894,-0.00077},
205         {885,-0.12763,1.67402,0.59005,0.58414,    205         {885,-0.12763,1.67402,0.59005,0.58414,0.05598,-0.13293,-0.00051},
206         {890,-0.1458,1.63947,0.56679,0.57245,0    206         {890,-0.1458,1.63947,0.56679,0.57245,0.05242,-0.13584,-0.00019},
207         {895,-0.16195,1.60305,0.54339,0.5594,0    207         {895,-0.16195,1.60305,0.54339,0.5594,0.05012,-0.13773,0.00019},
208         {900,-0.17602,1.56493,0.51984,0.54502,    208         {900,-0.17602,1.56493,0.51984,0.54502,0.04902,-0.13871,0.00064},
209         {905,-0.18798,1.52525,0.4961,0.52929,0    209         {905,-0.18798,1.52525,0.4961,0.52929,0.049,-0.13888,0.00117},
210         {910,-0.19778,1.48414,0.47216,0.51223,    210         {910,-0.19778,1.48414,0.47216,0.51223,0.04998,-0.13838,0.00177},
211         {915,-0.20538,1.44176,0.44798,0.49384,    211         {915,-0.20538,1.44176,0.44798,0.49384,0.05185,-0.13732,0.00247},
212         {920,-0.21074,1.39824,0.42355,0.47412,    212         {920,-0.21074,1.39824,0.42355,0.47412,0.05451,-0.13581,0.00325},
213         {925,-0.21388,1.35383,0.39886,0.45319,    213         {925,-0.21388,1.35383,0.39886,0.45319,0.05787,-0.13396,0.00414},
214         {930,-0.21484,1.30892,0.37401,0.4313,0    214         {930,-0.21484,1.30892,0.37401,0.4313,0.06178,-0.13183,0.00512},
215         {935,-0.21369,1.2639,0.34905,0.40872,0    215         {935,-0.21369,1.2639,0.34905,0.40872,0.06613,-0.1295,0.0062},
216         {940,-0.2105,1.21913,0.32406,0.38569,0    216         {940,-0.2105,1.21913,0.32406,0.38569,0.07078,-0.12704,0.00739},
217         {945,-0.20536,1.17491,0.29905,0.36232,    217         {945,-0.20536,1.17491,0.29905,0.36232,0.07556,-0.12458,0.00869},
218         {950,-0.19836,1.13145,0.27401,0.33866,    218         {950,-0.19836,1.13145,0.27401,0.33866,0.08027,-0.12224,0.01009},
219         {955,-0.18958,1.08898,0.24895,0.31474,    219         {955,-0.18958,1.08898,0.24895,0.31474,0.08473,-0.12018,0.01158},
220         {960,-0.17912,1.04775,0.22386,0.2906,0    220         {960,-0.17912,1.04775,0.22386,0.2906,0.08874,-0.11852,0.01318},
221         {965,-0.16707,1.00794,0.19872,0.26627,    221         {965,-0.16707,1.00794,0.19872,0.26627,0.09217,-0.11741,0.01487},
222         {970,-0.15345,0.96965,0.17358,0.24171,    222         {970,-0.15345,0.96965,0.17358,0.24171,0.09504,-0.11702,0.01662},
223         {975,-0.1383,0.93292,0.14845,0.21687,0    223         {975,-0.1383,0.93292,0.14845,0.21687,0.09744,-0.1175,0.01841},
224         {980,-0.12165,0.89782,0.12337,0.19178,    224         {980,-0.12165,0.89782,0.12337,0.19178,0.09944,-0.11883,0.0202},
225         {985,-0.10352,0.86439,0.09835,0.16649,    225         {985,-0.10352,0.86439,0.09835,0.16649,0.10108,-0.12091,0.02197},
226         {990,-0.08393,0.83266,0.07345,0.14106,    226         {990,-0.08393,0.83266,0.07345,0.14106,0.1024,-0.12362,0.02367},
227         {995,-0.06289,0.80271,0.04868,0.11554,    227         {995,-0.06289,0.80271,0.04868,0.11554,0.10346,-0.12687,0.02527},
228         {1000,-0.04044,0.77456,0.02407,0.09,0.    228         {1000,-0.04044,0.77456,0.02407,0.09,0.10431,-0.13055,0.02675},
229         {1005,-0.0166,0.74824,-3e-04,0.06448,0    229         {1005,-0.0166,0.74824,-3e-04,0.06448,0.10496,-0.13453,0.02801},
230         {1010,0.00852,0.72368,-0.02409,0.03902    230         {1010,0.00852,0.72368,-0.02409,0.03902,0.1053,-0.13858,0.02872},
231         {1015,0.03479,0.70081,-0.0472,0.01366,    231         {1015,0.03479,0.70081,-0.0472,0.01366,0.10528,-0.14262,0.02878},
232         {1020,0.06212,0.67958,-0.06962,-0.0115    232         {1020,0.06212,0.67958,-0.06962,-0.01158,0.10492,-0.14664,0.02821},
233         {1025,0.0904,0.65992,-0.09133,-0.03664    233         {1025,0.0904,0.65992,-0.09133,-0.03664,0.10421,-0.15064,0.02703},
234         {1030,0.11951,0.64179,-0.11234,-0.0615    234         {1030,0.11951,0.64179,-0.11234,-0.0615,0.10315,-0.15461,0.02526},
235         {1035,0.14935,0.62513,-0.13261,-0.0861    235         {1035,0.14935,0.62513,-0.13261,-0.08611,0.10174,-0.15854,0.02291},
236         {1040,0.1798,0.60989,-0.15215,-0.11044    236         {1040,0.1798,0.60989,-0.15215,-0.11044,0.09999,-0.16241,0.02},
237         {1045,0.21078,0.59602,-0.17094,-0.1344    237         {1045,0.21078,0.59602,-0.17094,-0.13445,0.0979,-0.16622,0.01656},
238         {1050,0.24215,0.58346,-0.18897,-0.1581    238         {1050,0.24215,0.58346,-0.18897,-0.15811,0.09547,-0.16996,0.01259},
239         {1055,0.27383,0.57216,-0.20623,-0.1813    239         {1055,0.27383,0.57216,-0.20623,-0.18137,0.0927,-0.17363,0.00812},
240         {1060,0.30569,0.56207,-0.2227,-0.20421    240         {1060,0.30569,0.56207,-0.2227,-0.20421,0.08959,-0.1772,0.00316},
241         {1065,0.33764,0.55313,-0.23838,-0.2265    241         {1065,0.33764,0.55313,-0.23838,-0.22657,0.08615,-0.18068,-0.00227},
242         {1070,0.36956,0.54529,-0.25326,-0.2484    242         {1070,0.36956,0.54529,-0.25326,-0.24843,0.08237,-0.18405,-0.00815},
243         {1075,0.40134,0.53849,-0.26732,-0.2697    243         {1075,0.40134,0.53849,-0.26732,-0.26974,0.07826,-0.1873,-0.01447},
244         {1080,0.43288,0.53269,-0.28055,-0.2904    244         {1080,0.43288,0.53269,-0.28055,-0.29047,0.07382,-0.19043,-0.02119},
245         {1085,0.46407,0.52783,-0.29295,-0.3105    245         {1085,0.46407,0.52783,-0.29295,-0.31059,0.06905,-0.19342,-0.02832},
246         {1090,0.49481,0.52386,-0.30452,-0.3300    246         {1090,0.49481,0.52386,-0.30452,-0.33004,0.06396,-0.19627,-0.03582},
247         {1095,0.52503,0.52073,-0.31538,-0.3488    247         {1095,0.52503,0.52073,-0.31538,-0.34881,0.05856,-0.1989,-0.04359},
248         {1100,0.55465,0.51841,-0.3257,-0.36683    248         {1100,0.55465,0.51841,-0.3257,-0.36683,0.05286,-0.20125,-0.05154},
249         {1105,0.58361,0.51686,-0.3356,-0.38409    249         {1105,0.58361,0.51686,-0.3356,-0.38409,0.0469,-0.20327,-0.05957},
250         {1110,0.61184,0.51604,-0.34525,-0.4005    250         {1110,0.61184,0.51604,-0.34525,-0.40052,0.04068,-0.20488,-0.06757},
251         {1115,0.63927,0.5159,-0.35478,-0.4161,    251         {1115,0.63927,0.5159,-0.35478,-0.4161,0.03422,-0.20602,-0.07545},
252         {1120,0.66583,0.51641,-0.36435,-0.4307    252         {1120,0.66583,0.51641,-0.36435,-0.43079,0.02755,-0.20662,-0.08311},
253         {1125,0.69146,0.51753,-0.37411,-0.4445    253         {1125,0.69146,0.51753,-0.37411,-0.44454,0.02068,-0.20662,-0.09043},
254         {1130,0.71609,0.51922,-0.38418,-0.4573    254         {1130,0.71609,0.51922,-0.38418,-0.45732,0.01364,-0.20594,-0.09736},
255         {1135,0.73967,0.5214,-0.3946,-0.46913,    255         {1135,0.73967,0.5214,-0.3946,-0.46913,0.00649,-0.20451,-0.10389},
256         {1140,0.76215,0.52403,-0.40542,-0.4799    256         {1140,0.76215,0.52403,-0.40542,-0.47994,-0.00069,-0.20222,-0.11009},
257         {1145,0.78348,0.52703,-0.41665,-0.4897    257         {1145,0.78348,0.52703,-0.41665,-0.48977,-0.00782,-0.19898,-0.11598},
258         {1150,0.80362,0.53033,-0.42833,-0.4985    258         {1150,0.80362,0.53033,-0.42833,-0.49859,-0.01484,-0.19469,-0.1216},
259         {1155,0.82251,0.53388,-0.44048,-0.5064    259         {1155,0.82251,0.53388,-0.44048,-0.50642,-0.02166,-0.18927,-0.12701},
260         {1160,0.8401,0.53761,-0.45313,-0.51323    260         {1160,0.8401,0.53761,-0.45313,-0.51323,-0.02821,-0.18261,-0.13223},
261         {1165,0.85635,0.54144,-0.46631,-0.5190    261         {1165,0.85635,0.54144,-0.46631,-0.51903,-0.03442,-0.17462,-0.13732},
262         {1170,0.87122,0.54533,-0.48004,-0.5238    262         {1170,0.87122,0.54533,-0.48004,-0.52382,-0.04023,-0.16525,-0.14231},
263         {1175,0.88472,0.54924,-0.49427,-0.5276    263         {1175,0.88472,0.54924,-0.49427,-0.52765,-0.0457,-0.15454,-0.1472},
264         {1180,0.89689,0.55314,-0.50896,-0.5306    264         {1180,0.89689,0.55314,-0.50896,-0.5306,-0.0509,-0.1426,-0.15202},
265         {1185,0.90774,0.55701,-0.52406,-0.5327    265         {1185,0.90774,0.55701,-0.52406,-0.53273,-0.05591,-0.12951,-0.15675},
266         {1190,0.91731,0.56082,-0.53952,-0.5341    266         {1190,0.91731,0.56082,-0.53952,-0.53411,-0.06079,-0.11537,-0.16142},
267         {1195,0.92561,0.56455,-0.55528,-0.5348    267         {1195,0.92561,0.56455,-0.55528,-0.53481,-0.06563,-0.10027,-0.16601},
268         {1200,0.93269,0.56816,-0.57129,-0.5348    268         {1200,0.93269,0.56816,-0.57129,-0.53488,-0.07049,-0.08429,-0.17056},
269         {1205,0.93856,0.57163,-0.58751,-0.5344    269         {1205,0.93856,0.57163,-0.58751,-0.53441,-0.07546,-0.06754,-0.17505},
270         {1210,0.94325,0.57494,-0.60389,-0.5334    270         {1210,0.94325,0.57494,-0.60389,-0.53345,-0.0806,-0.0501,-0.17949},
271         {1215,0.94679,0.57806,-0.62037,-0.5320    271         {1215,0.94679,0.57806,-0.62037,-0.53208,-0.086,-0.03207,-0.1839},
272         {1220,0.94921,0.58096,-0.6369,-0.53036    272         {1220,0.94921,0.58096,-0.6369,-0.53036,-0.09172,-0.01354,-0.18827},
273         {1225,0.95052,0.58361,-0.65343,-0.5283    273         {1225,0.95052,0.58361,-0.65343,-0.52836,-0.09784,0.00541,-0.19262},
274         {1230,0.95077,0.58599,-0.66992,-0.5261    274         {1230,0.95077,0.58599,-0.66992,-0.52614,-0.10444,0.02468,-0.19694},
275         {1235,0.94997,0.58808,-0.68631,-0.5237    275         {1235,0.94997,0.58808,-0.68631,-0.52378,-0.11159,0.04417,-0.20126},
276         {1240,0.94816,0.58984,-0.70255,-0.5213    276         {1240,0.94816,0.58984,-0.70255,-0.52133,-0.11936,0.06379,-0.20557},
277         {1245,0.94535,0.59125,-0.71859,-0.5188    277         {1245,0.94535,0.59125,-0.71859,-0.51888,-0.12783,0.08346,-0.20987},
278         {1250,0.94157,0.59229,-0.73437,-0.5164    278         {1250,0.94157,0.59229,-0.73437,-0.51648,-0.13706,0.10305,-0.21416},
279         {1255,0.93683,0.59293,-0.74976,-0.5141    279         {1255,0.93683,0.59293,-0.74976,-0.51419,-0.1471,0.12231,-0.21828},
280         {1260,0.93113,0.59315,-0.76463,-0.5120    280         {1260,0.93113,0.59315,-0.76463,-0.51207,-0.15797,0.14096,-0.22206},
281         {1265,0.92447,0.59294,-0.77883,-0.5101    281         {1265,0.92447,0.59294,-0.77883,-0.51019,-0.1697,0.15872,-0.22534},
282         {1270,0.91689,0.59232,-0.79218,-0.5084    282         {1270,0.91689,0.59232,-0.79218,-0.50845,-0.18223,0.17547,-0.22804},
283         {1275,0.90848,0.5914,-0.80445,-0.5066,    283         {1275,0.90848,0.5914,-0.80445,-0.5066,-0.19545,0.19131,-0.23018},
284         {1280,0.89933,0.59026,-0.81539,-0.5043    284         {1280,0.89933,0.59026,-0.81539,-0.50438,-0.20919,0.20634,-0.2318},
285         {1285,0.88952,0.58902,-0.82477,-0.5015    285         {1285,0.88952,0.58902,-0.82477,-0.50151,-0.22331,0.22066,-0.23293},
286         {1290,0.87914,0.58776,-0.83234,-0.4977    286         {1290,0.87914,0.58776,-0.83234,-0.49778,-0.23768,0.23437,-0.23361},
287         {1295,0.86827,0.58655,-0.83797,-0.4930    287         {1295,0.86827,0.58655,-0.83797,-0.49307,-0.25217,0.24756,-0.23388},
288         {1300,0.85696,0.58546,-0.84148,-0.4873    288         {1300,0.85696,0.58546,-0.84148,-0.48733,-0.26668,0.26028,-0.23375},
289         {1305,0.8453,0.58454,-0.84274,-0.4805,    289         {1305,0.8453,0.58454,-0.84274,-0.4805,-0.2811,0.27262,-0.23327},
290         {1310,0.83334,0.58385,-0.84159,-0.4725    290         {1310,0.83334,0.58385,-0.84159,-0.47251,-0.29532,0.28466,-0.23245},
291         {1315,0.82116,0.58345,-0.8379,-0.46331    291         {1315,0.82116,0.58345,-0.8379,-0.46331,-0.30922,0.29645,-0.23134},
292         {1320,0.80881,0.58341,-0.8315,-0.45284    292         {1320,0.80881,0.58341,-0.8315,-0.45284,-0.32269,0.30807,-0.22995},
293         {1325,0.79636,0.58376,-0.82231,-0.4410    293         {1325,0.79636,0.58376,-0.82231,-0.44106,-0.33567,0.31957,-0.22833},
294         {1330,0.78383,0.58452,-0.81043,-0.4280    294         {1330,0.78383,0.58452,-0.81043,-0.42806,-0.34819,0.33087,-0.22653},
295         {1335,0.77121,0.58565,-0.79603,-0.4139    295         {1335,0.77121,0.58565,-0.79603,-0.41395,-0.36036,0.34185,-0.22459},
296         {1340,0.75852,0.58715,-0.77928,-0.3988    296         {1340,0.75852,0.58715,-0.77928,-0.39886,-0.37227,0.3524,-0.22258},
297         {1345,0.74577,0.589,-0.76033,-0.38289,    297         {1345,0.74577,0.589,-0.76033,-0.38289,-0.38399,0.36242,-0.22055},
298         {1350,0.73295,0.59118,-0.73935,-0.3661    298         {1350,0.73295,0.59118,-0.73935,-0.36617,-0.39563,0.37178,-0.21857},
299         {1355,0.72008,0.59368,-0.71651,-0.3488    299         {1355,0.72008,0.59368,-0.71651,-0.3488,-0.40726,0.38039,-0.21667},
300         {1360,0.70715,0.59646,-0.69194,-0.3309    300         {1360,0.70715,0.59646,-0.69194,-0.3309,-0.41893,0.38818,-0.2149},
301         {1365,0.6941,0.59943,-0.66566,-0.31253    301         {1365,0.6941,0.59943,-0.66566,-0.31253,-0.43043,0.39531,-0.21314},
302         {1370,0.68084,0.60248,-0.63764,-0.2937    302         {1370,0.68084,0.60248,-0.63764,-0.29373,-0.44151,0.40198,-0.21126},
303         {1375,0.66737,0.60553,-0.60795,-0.2745    303         {1375,0.66737,0.60553,-0.60795,-0.27456,-0.45201,0.40833,-0.20918},
304         {1380,0.65371,0.60856,-0.57672,-0.2550    304         {1380,0.65371,0.60856,-0.57672,-0.25501,-0.46189,0.41438,-0.2069},
305         {1385,0.63991,0.61158,-0.5441,-0.2351,    305         {1385,0.63991,0.61158,-0.5441,-0.2351,-0.47112,0.42015,-0.20442},
306         {1390,0.62603,0.61456,-0.51023,-0.2148    306         {1390,0.62603,0.61456,-0.51023,-0.21484,-0.47966,0.42567,-0.20173},
307         {1395,0.6121,0.6175,-0.47525,-0.19424,    307         {1395,0.6121,0.6175,-0.47525,-0.19424,-0.48749,0.43095,-0.19884},
308         {1400,0.59816,0.62039,-0.43932,-0.1733    308         {1400,0.59816,0.62039,-0.43932,-0.17332,-0.49457,0.43601,-0.19575},
309         {1405,0.58428,0.62321,-0.40257,-0.1520    309         {1405,0.58428,0.62321,-0.40257,-0.15208,-0.50088,0.44087,-0.19246},
310         {1410,0.57048,0.62596,-0.36515,-0.1305    310         {1410,0.57048,0.62596,-0.36515,-0.13053,-0.50637,0.44556,-0.18897},
311         {1415,0.55682,0.62862,-0.32721,-0.1087    311         {1415,0.55682,0.62862,-0.32721,-0.1087,-0.51102,0.4501,-0.18528},
312         {1420,0.54335,0.63118,-0.28889,-0.0865    312         {1420,0.54335,0.63118,-0.28889,-0.08658,-0.5148,0.4545,-0.18139},
313         {1425,0.5301,0.63363,-0.25033,-0.06419    313         {1425,0.5301,0.63363,-0.25033,-0.06419,-0.51767,0.45878,-0.1773},
314         {1430,0.51712,0.63597,-0.21167,-0.0415    314         {1430,0.51712,0.63597,-0.21167,-0.04154,-0.5196,0.46298,-0.173},
315         {1435,0.50446,0.63817,-0.17307,-0.0186    315         {1435,0.50446,0.63817,-0.17307,-0.01864,-0.52057,0.4671,-0.16851},
316         {1440,0.49217,0.64024,-0.13467,0.0045,    316         {1440,0.49217,0.64024,-0.13467,0.0045,-0.52053,0.47116,-0.16382},
317         {1445,0.48028,0.64215,-0.09661,0.02786    317         {1445,0.48028,0.64215,-0.09661,0.02786,-0.51946,0.4752,-0.15892},
318         {1450,0.46885,0.64391,-0.05904,0.05144    318         {1450,0.46885,0.64391,-0.05904,0.05144,-0.51733,0.47922,-0.15383},
319         {1455,0.45792,0.64548,-0.02209,0.07522    319         {1455,0.45792,0.64548,-0.02209,0.07522,-0.51411,0.48325,-0.14854},
320         {1460,0.44754,0.64688,0.01408,0.09919,    320         {1460,0.44754,0.64688,0.01408,0.09919,-0.50975,0.48732,-0.14305},
321         {1465,0.43774,0.64808,0.04933,0.12335,    321         {1465,0.43774,0.64808,0.04933,0.12335,-0.50424,0.49143,-0.13736},
322         {1470,0.42855,0.64906,0.08361,0.14764,    322         {1470,0.42855,0.64906,0.08361,0.14764,-0.49758,0.49559,-0.13154},
323         {1475,0.41997,0.6498,0.11691,0.17201,-    323         {1475,0.41997,0.6498,0.11691,0.17201,-0.4898,0.49979,-0.12566},
324         {1480,0.41199,0.65025,0.14924,0.19638,    324         {1480,0.41199,0.65025,0.14924,0.19638,-0.48094,0.50402,-0.11983},
325         {1485,0.4046,0.65039,0.1806,0.2207,-0.    325         {1485,0.4046,0.65039,0.1806,0.2207,-0.47103,0.50827,-0.11413},
326         {1490,0.39781,0.65018,0.211,0.2449,-0.    326         {1490,0.39781,0.65018,0.211,0.2449,-0.4601,0.51253,-0.10866},
327         {1495,0.39161,0.6496,0.24043,0.26892,-    327         {1495,0.39161,0.6496,0.24043,0.26892,-0.44819,0.51679,-0.10352},
328         {1500,0.38599,0.64862,0.26889,0.29269,    328         {1500,0.38599,0.64862,0.26889,0.29269,-0.43534,0.52104,-0.09879},
329         {1505,0.38096,0.64719,0.2964,0.31615,-    329         {1505,0.38096,0.64719,0.2964,0.31615,-0.42158,0.52526,-0.09457},
330         {1510,0.37651,0.6453,0.32295,0.33923,-    330         {1510,0.37651,0.6453,0.32295,0.33923,-0.40693,0.52944,-0.09095},
331         {1515,0.37264,0.6429,0.34854,0.36186,-    331         {1515,0.37264,0.6429,0.34854,0.36186,-0.39144,0.53359,-0.08803},
332         {1520,0.36933,0.63998,0.37315,0.38401,    332         {1520,0.36933,0.63998,0.37315,0.38401,-0.37512,0.53773,-0.08583},
333         {1525,0.36653,0.63654,0.39667,0.40564,    333         {1525,0.36653,0.63654,0.39667,0.40564,-0.35794,0.54203,-0.08422},
334         {1530,0.3642,0.63257,0.41901,0.42676,-    334         {1530,0.3642,0.63257,0.41901,0.42676,-0.33984,0.54668,-0.08304},
335         {1535,0.36228,0.62809,0.44005,0.44733,    335         {1535,0.36228,0.62809,0.44005,0.44733,-0.3208,0.55185,-0.08216},
336         {1540,0.36072,0.62309,0.45968,0.46736,    336         {1540,0.36072,0.62309,0.45968,0.46736,-0.30076,0.55773,-0.08141},
337         {1545,0.35948,0.61757,0.47781,0.48683,    337         {1545,0.35948,0.61757,0.47781,0.48683,-0.27969,0.5645,-0.08065},
338         {1550,0.35851,0.61154,0.49434,0.50572,    338         {1550,0.35851,0.61154,0.49434,0.50572,-0.25756,0.57231,-0.07974},
339         {1555,0.35781,0.60502,0.50929,0.52405,    339         {1555,0.35781,0.60502,0.50929,0.52405,-0.23439,0.58116,-0.07861},
340         {1560,0.35738,0.59804,0.52273,0.54186,    340         {1560,0.35738,0.59804,0.52273,0.54186,-0.21023,0.59098,-0.07724},
341         {1565,0.35725,0.59063,0.53473,0.55915,    341         {1565,0.35725,0.59063,0.53473,0.55915,-0.18514,0.60169,-0.07558},
342         {1570,0.35742,0.58282,0.54538,0.57597,    342         {1570,0.35742,0.58282,0.54538,0.57597,-0.15918,0.61322,-0.07362},
343         {1575,0.35792,0.57463,0.55473,0.59234,    343         {1575,0.35792,0.57463,0.55473,0.59234,-0.13239,0.62549,-0.07132},
344         {1580,0.35874,0.5661,0.56287,0.60828,-    344         {1580,0.35874,0.5661,0.56287,0.60828,-0.10484,0.63843,-0.06864},
345         {1585,0.35991,0.55725,0.56986,0.62383,    345         {1585,0.35991,0.55725,0.56986,0.62383,-0.07657,0.65196,-0.06557},
346         {1590,0.36144,0.54811,0.57578,0.63899,    346         {1590,0.36144,0.54811,0.57578,0.63899,-0.04764,0.66601,-0.06206},
347         {1595,0.36335,0.53871,0.5807,0.65382,-    347         {1595,0.36335,0.53871,0.5807,0.65382,-0.0181,0.6805,-0.05809},
348         {1600,0.36564,0.52909,0.5847,0.66832,0    348         {1600,0.36564,0.52909,0.5847,0.66832,0.01199,0.69536,-0.05363},
349         {1605,0.36833,0.51926,0.58783,0.68253,    349         {1605,0.36833,0.51926,0.58783,0.68253,0.04258,0.7105,-0.04864},
350         {1610,0.37143,0.50926,0.59019,0.69647,    350         {1610,0.37143,0.50926,0.59019,0.69647,0.07361,0.72586,-0.0431},
351         {1615,0.37496,0.49911,0.59183,0.71017,    351         {1615,0.37496,0.49911,0.59183,0.71017,0.10503,0.74137,-0.03697},
352         {1620,0.37894,0.48885,0.59284,0.72365,    352         {1620,0.37894,0.48885,0.59284,0.72365,0.13679,0.75693,-0.03023},
353         {1625,0.38336,0.47851,0.59329,0.73695,    353         {1625,0.38336,0.47851,0.59329,0.73695,0.16883,0.77249,-0.02284},
354         {1630,0.38826,0.46811,0.59324,0.75008,    354         {1630,0.38826,0.46811,0.59324,0.75008,0.2011,0.78797,-0.01477},
355         {1635,0.39363,0.45767,0.59277,0.76308,    355         {1635,0.39363,0.45767,0.59277,0.76308,0.23354,0.80328,-0.00599},
356         {1640,0.39951,0.44724,0.59195,0.77597,    356         {1640,0.39951,0.44724,0.59195,0.77597,0.26611,0.81836,0.00352},
357         {1645,0.40588,0.43684,0.59086,0.78878,    357         {1645,0.40588,0.43684,0.59086,0.78878,0.29874,0.83312,0.01381},
358         {1650,0.41278,0.4265,0.58956,0.80153,0    358         {1650,0.41278,0.4265,0.58956,0.80153,0.33138,0.84751,0.0249},
359         {1655,0.42022,0.41624,0.58813,0.81425,    359         {1655,0.42022,0.41624,0.58813,0.81425,0.36397,0.86143,0.03681},
360         {1660,0.4282,0.40614,0.58665,0.82695,0    360         {1660,0.4282,0.40614,0.58665,0.82695,0.39646,0.87483,0.04954},
361         {1665,0.43672,0.39632,0.58517,0.83966,    361         {1665,0.43672,0.39632,0.58517,0.83966,0.42876,0.88768,0.06298},
362         {1670,0.44579,0.38689,0.58378,0.85238,    362         {1670,0.44579,0.38689,0.58378,0.85238,0.46079,0.89994,0.07703},
363         {1675,0.45542,0.37799,0.58253,0.86511,    363         {1675,0.45542,0.37799,0.58253,0.86511,0.49245,0.91158,0.09161},
364         {1680,0.46559,0.36972,0.5815,0.87787,0    364         {1680,0.46559,0.36972,0.5815,0.87787,0.52367,0.92256,0.1066},
365         {1685,0.47631,0.36223,0.58075,0.89067,    365         {1685,0.47631,0.36223,0.58075,0.89067,0.55437,0.93285,0.12193},
366         {1690,0.48759,0.35562,0.58036,0.90351,    366         {1690,0.48759,0.35562,0.58036,0.90351,0.58446,0.94242,0.13748},
367         {1695,0.49943,0.35002,0.58039,0.91642,    367         {1695,0.49943,0.35002,0.58039,0.91642,0.61386,0.95122,0.15316},
368         {1700,0.51182,0.34555,0.58092,0.92938,    368         {1700,0.51182,0.34555,0.58092,0.92938,0.64248,0.95923,0.16887},
369         {1705,0.52478,0.34234,0.58201,0.94243,    369         {1705,0.52478,0.34234,0.58201,0.94243,0.67025,0.96642,0.18453},
370         {1710,0.5383,0.34049,0.58374,0.95556,0    370         {1710,0.5383,0.34049,0.58374,0.95556,0.69713,0.97277,0.20007},
371         {1715,0.55239,0.34002,0.58616,0.96883,    371         {1715,0.55239,0.34002,0.58616,0.96883,0.72336,0.97841,0.21569},
372         {1720,0.56707,0.34092,0.58936,0.98229,    372         {1720,0.56707,0.34092,0.58936,0.98229,0.74924,0.98349,0.23159},
373         {1725,0.58235,0.34319,0.59342,0.99599,    373         {1725,0.58235,0.34319,0.59342,0.99599,0.77504,0.98814,0.24802},
374         {1730,0.59825,0.34683,0.59839,1.00998,    374         {1730,0.59825,0.34683,0.59839,1.00998,0.80106,0.99252,0.26518},
375         {1735,0.61478,0.35185,0.60435,1.02432,    375         {1735,0.61478,0.35185,0.60435,1.02432,0.82759,0.99678,0.28332},
376         {1740,0.63195,0.35823,0.61138,1.03905,    376         {1740,0.63195,0.35823,0.61138,1.03905,0.85493,1.00106,0.30266},
377         {1745,0.64977,0.36598,0.61954,1.05422,    377         {1745,0.64977,0.36598,0.61954,1.05422,0.88333,1.00549,0.32339},
378         {1750,0.66822,0.37504,0.6288,1.06985,0    378         {1750,0.66822,0.37504,0.6288,1.06985,0.91282,1.01013,0.34556},
379         {1755,0.68725,0.38533,0.6391,1.08592,0    379         {1755,0.68725,0.38533,0.6391,1.08592,0.94333,1.01496,0.36913},
380         {1760,0.70685,0.39679,0.65037,1.10245,    380         {1760,0.70685,0.39679,0.65037,1.10245,0.9748,1.01998,0.39406},
381         {1765,0.72695,0.40934,0.66257,1.11943,    381         {1765,0.72695,0.40934,0.66257,1.11943,1.00714,1.02519,0.42031},
382         {1770,0.74754,0.42291,0.67563,1.13684,    382         {1770,0.74754,0.42291,0.67563,1.13684,1.0403,1.03058,0.44784},
383         {1775,0.76857,0.43743,0.68947,1.15471,    383         {1775,0.76857,0.43743,0.68947,1.15471,1.07419,1.03615,0.47661},
384         {1780,0.79,0.45282,0.70406,1.17301,1.1    384         {1780,0.79,0.45282,0.70406,1.17301,1.10875,1.04191,0.50658},
385         {1785,0.81179,0.46902,0.71931,1.19174,    385         {1785,0.81179,0.46902,0.71931,1.19174,1.14391,1.04784,0.53771},
386         {1790,0.83392,0.48594,0.73518,1.21092,    386         {1790,0.83392,0.48594,0.73518,1.21092,1.17959,1.05394,0.56997},
387         {1795,0.85634,0.50352,0.75159,1.23052,    387         {1795,0.85634,0.50352,0.75159,1.23052,1.21573,1.06022,0.60332},
388         {1800,0.87901,0.52169,0.76849,1.25055,    388         {1800,0.87901,0.52169,0.76849,1.25055,1.25225,1.06666,0.63771},
389         {1805,0.9019,0.54038,0.78582,1.27101,1    389         {1805,0.9019,0.54038,0.78582,1.27101,1.28908,1.07326,0.6731},
390         {1810,0.92496,0.5595,0.80351,1.2919,1.    390         {1810,0.92496,0.5595,0.80351,1.2919,1.32615,1.08003,0.70946},
391         {1815,0.94817,0.57899,0.82151,1.31321,    391         {1815,0.94817,0.57899,0.82151,1.31321,1.36339,1.08695,0.74675},
392         {1820,0.97149,0.59878,0.83975,1.33493,    392         {1820,0.97149,0.59878,0.83975,1.33493,1.40073,1.09403,0.78493},
393         {1825,0.99487,0.61879,0.85816,1.35707,    393         {1825,0.99487,0.61879,0.85816,1.35707,1.4381,1.10125,0.82396},
394         {1830,1.01828,0.63895,0.8767,1.37963,1    394         {1830,1.01828,0.63895,0.8767,1.37963,1.47543,1.10863,0.86381},
395         {1835,1.04168,0.65919,0.89529,1.4026,1    395         {1835,1.04168,0.65919,0.89529,1.4026,1.51264,1.11616,0.90442},
396         {1840,1.06504,0.67943,0.91388,1.42598,    396         {1840,1.06504,0.67943,0.91388,1.42598,1.54966,1.12382,0.94576},
397         {1845,1.08832,0.69962,0.93241,1.44973,    397         {1845,1.08832,0.69962,0.93241,1.44973,1.58645,1.13162,0.98775}};
398                                                   398       
399       const G4int coef_ener = G4int((pLab-Lege    399       const G4int coef_ener = G4int((pLab-Legendre_coef[0][0])/5);
400       const G4double sup_ener = pLab/5. - coef    400       const G4double sup_ener = pLab/5. - coef_ener -Legendre_coef[0][0]/5;
401                                                   401       
402 // assert(pLab >= Legendre_coef[coef_ener][0]     402 // assert(pLab >= Legendre_coef[coef_ener][0] && pLab < Legendre_coef[coef_ener+1][0]);
403                                                   403       
404       // Legendre coefficient normalized          404       // Legendre coefficient normalized
405       const G4double A0 = 1.;                     405       const G4double A0 = 1.;
406       const G4double A1 = (1-sup_ener)*Legendr    406       const G4double A1 = (1-sup_ener)*Legendre_coef[coef_ener][1] + sup_ener*Legendre_coef[coef_ener+1][1];
407       const G4double A2 = (1-sup_ener)*Legendr    407       const G4double A2 = (1-sup_ener)*Legendre_coef[coef_ener][2] + sup_ener*Legendre_coef[coef_ener+1][2];
408       const G4double A3 = (1-sup_ener)*Legendr    408       const G4double A3 = (1-sup_ener)*Legendre_coef[coef_ener][3] + sup_ener*Legendre_coef[coef_ener+1][3];
409       const G4double A4 = (1-sup_ener)*Legendr    409       const G4double A4 = (1-sup_ener)*Legendre_coef[coef_ener][4] + sup_ener*Legendre_coef[coef_ener+1][4];
410       const G4double A5 = (1-sup_ener)*Legendr    410       const G4double A5 = (1-sup_ener)*Legendre_coef[coef_ener][5] + sup_ener*Legendre_coef[coef_ener+1][5];
411       const G4double A6 = (1-sup_ener)*Legendr    411       const G4double A6 = (1-sup_ener)*Legendre_coef[coef_ener][6] + sup_ener*Legendre_coef[coef_ener+1][6];
412       const G4double A7 = (1-sup_ener)*Legendr    412       const G4double A7 = (1-sup_ener)*Legendre_coef[coef_ener][7] + sup_ener*Legendre_coef[coef_ener+1][7];
413                                                   413       
414       // Theoritical max if all Ai > 0 (often     414       // Theoritical max if all Ai > 0 (often the case)
415       const G4double A = std::fabs(A0) + std::    415       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);
416                                                   416       
417       G4bool success = false;                     417       G4bool success = false;
418       G4int maxloop = 0;                          418       G4int maxloop = 0;
419                                                   419       
420       while(!success && maxloop < 1000){          420       while(!success && maxloop < 1000){
421                                                   421         
422         cos_theta = Random::shoot()*2-1.; // n    422         cos_theta = Random::shoot()*2-1.; // not optimized
423                                                   423         
424         // Legendre Polynomial                    424         // Legendre Polynomial
425         G4double P0 = A0;                         425         G4double P0 = A0;
426         G4double P1 = A1*cos_theta;               426         G4double P1 = A1*cos_theta;
427         G4double P2 = A2/2.*(3*std::pow(cos_th    427         G4double P2 = A2/2.*(3*std::pow(cos_theta,2)-1);
428         G4double P3 = A3/2.*(5*std::pow(cos_th    428         G4double P3 = A3/2.*(5*std::pow(cos_theta,3)-3*cos_theta);
429         G4double P4 = A4/8.*(35*std::pow(cos_t    429         G4double P4 = A4/8.*(35*std::pow(cos_theta,4)-30*std::pow(cos_theta,2)+3);
430         G4double P5 = A5/8.*(63*std::pow(cos_t    430         G4double P5 = A5/8.*(63*std::pow(cos_theta,5)-70*std::pow(cos_theta,3)+15*cos_theta);
431         G4double P6 = A6/16.*(231*std::pow(cos    431         G4double P6 = A6/16.*(231*std::pow(cos_theta,6)-315*std::pow(cos_theta,4)+105*std::pow(cos_theta,2)-5);
432         G4double P7 = A7/16.*(429*std::pow(cos    432         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);
433                                                   433         
434         G4double P = (P0 + P1 + P2 + P3 + P4 +    434         G4double P = (P0 + P1 + P2 + P3 + P4 + P5 + P6 + P7)/2; // /2 for the normalisation
435                                                   435         
436         if(Random::shoot()*A < P) success = tr    436         if(Random::shoot()*A < P) success = true;
437         maxloop +=1 ;                             437         maxloop +=1 ;
438         if(maxloop==1000) cos_theta = std::log    438         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 
439       }                                           439       }
440       sin_theta = std::sqrt(1-cos_theta*cos_th    440       sin_theta = std::sqrt(1-cos_theta*cos_theta);
441     }                                             441     }
442                                                   442     
443     if(rho == 0) return ThreeVector(sin_theta*    443     if(rho == 0) return ThreeVector(sin_theta*cos_phi,sin_theta*sin_phi,cos_theta);
444     // Rotation in the direction of the incide    444     // Rotation in the direction of the incident kaon
445     const G4double px = x/r*cos_theta - y/rho*    445     const G4double px = x/r*cos_theta - y/rho*sin_theta*cos_phi + z/r*x/rho*sin_theta*sin_phi;
446     const G4double py = y/r*cos_theta + x/rho*    446     const G4double py = y/r*cos_theta + x/rho*sin_theta*cos_phi + z/r*y/rho*sin_theta*sin_phi;
447     const G4double pz = z/r*cos_theta - rho/r*    447     const G4double pz = z/r*cos_theta - rho/r*sin_theta*sin_phi;
448                                                   448     
449     return ThreeVector(px,py,pz);                 449     return ThreeVector(px,py,pz);
450   }                                               450   }
451                                                   451 
452 }                                                 452 }
453                                                   453