Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // INCL++ intra-nuclear cascade model 27 // Alain Boudard, CEA-Saclay, France 28 // Joseph Cugnon, University of Liege, Belgium 29 // Jean-Christophe David, CEA-Saclay, France 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H 31 // Sylvie Leray, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 33 // 34 #define INCLXX_IN_GEANT4_MODE 1 35 36 #include "globals.hh" 37 38 #include "G4INCLNKbToLpiChannel.hh" 39 #include "G4INCLKinematicsUtils.hh" 40 #include "G4INCLBinaryCollisionAvatar.hh" 41 #include "G4INCLRandom.hh" 42 #include "G4INCLGlobals.hh" 43 #include "G4INCLLogger.hh" 44 #include <algorithm> 45 #include "G4INCLPhaseSpaceGenerator.hh" 46 47 namespace G4INCL { 48 49 NKbToLpiChannel::NKbToLpiChannel(Particle *p 50 : particle1(p1), particle2(p2) 51 {} 52 53 NKbToLpiChannel::~NKbToLpiChannel(){} 54 55 void NKbToLpiChannel::fillFinalState(FinalSt 56 57 Particle *nucleon; 58 Particle *kaon; 59 60 if(particle1->isNucleon()){ 61 nucleon = particle1; 62 kaon = particle2; 63 } 64 else{ 65 nucleon = particle2; 66 kaon = particle1; 67 } 68 const G4int iso = ParticleTable::getIsospi 69 70 71 ThreeVector mom_pion = KaonMomentum(kaon,n 72 73 kaon->setType(ParticleTable::getPionType(i 74 nucleon->setType(Lambda); 75 76 G4double norm = KinematicsUtils::momentumI 77 78 kaon->setMomentum(mom_pion*norm); 79 nucleon->setMomentum(-mom_pion*norm); 80 81 kaon->adjustEnergyFromMomentum(); 82 nucleon->adjustEnergyFromMomentum(); 83 84 fs->addModifiedParticle(nucleon); 85 fs->addModifiedParticle(kaon); 86 87 } 88 89 ThreeVector NKbToLpiChannel::KaonMomentum(Pa 90 91 const G4double pLab = KinematicsUtils::mom 92 93 if(pLab < 435.) return Random::normVector( 94 95 G4double cos_theta = 1.; 96 G4double sin_theta = 0.; 97 const G4double cos_phi = std::cos(Random:: 98 const G4double sin_phi = std::sqrt(1-cos_p 99 100 const G4double x = kaon->getMomentum().get 101 const G4double y = kaon->getMomentum().get 102 const G4double z = kaon->getMomentum().get 103 104 const G4double r = std::sqrt(x*x+y*y+z*z); 105 const G4double rho = std::sqrt(x*x+y*y); 106 107 if(pLab >= 1845.){ 108 const G4double b = 12. * pLab/2375.; // 109 cos_theta = std::log(Random::shoot()*(st 110 sin_theta = std::sqrt(1-cos_theta*cos_th 111 112 } 113 else{ 114 const G4double Legendre_coef[283][8] = { 115 {435,1.29381,0.87668,0.24531,0.00844,- 116 {440,1.28561,0.87491,0.24024,0.00529,- 117 {445,1.27743,0.87315,0.23522,0.00212,- 118 {450,1.26928,0.87139,0.2303,-0.00105,- 119 {455,1.2612,0.86965,0.22553,-0.00424,- 120 {460,1.25317,0.86792,0.22099,-0.00745, 121 {465,1.24512,0.86623,0.21678,-0.01069, 122 {470,1.23692,0.86461,0.21304,-0.01397, 123 {475,1.22848,0.86311,0.20991,-0.01729, 124 {480,1.21967,0.86172,0.20749,-0.02066, 125 {485,1.21035,0.86044,0.20577,-0.02407, 126 {490,1.2004,0.85923,0.20473,-0.02748,0 127 {495,1.18967,0.85804,0.20434,-0.03087, 128 {500,1.17802,0.85684,0.20455,-0.03423, 129 {505,1.16533,0.8556,0.20535,-0.03753,0 130 {510,1.15145,0.85427,0.20669,-0.04075, 131 {515,1.13624,0.85282,0.20855,-0.04386, 132 {520,1.11972,0.85121,0.21086,-0.0468,0 133 {525,1.10208,0.84953,0.21379,-0.04947, 134 {530,1.0835,0.84789,0.21759,-0.05178,0 135 {535,1.06417,0.84639,0.2225,-0.05361,0 136 {540,1.04423,0.8451,0.22862,-0.05493,0 137 {545,1.02374,0.844,0.23576,-0.05583,0. 138 {550,1.00274,0.84308,0.2437,-0.05642,0 139 {555,0.98125,0.8423,0.25219,-0.05681,0 140 {560,0.95932,0.84165,0.26101,-0.0571,0 141 {565,0.93696,0.84108,0.26988,-0.05743, 142 {570,0.91408,0.84053,0.27837,-0.05801, 143 {575,0.89056,0.83994,0.28602,-0.05907, 144 {580,0.86629,0.8393,0.29249,-0.06069,0 145 {585,0.84122,0.83869,0.29765,-0.06277, 146 {590,0.81531,0.83818,0.30154,-0.06516, 147 {595,0.78853,0.83781,0.30425,-0.06771, 148 {600,0.76086,0.83762,0.30587,-0.07025, 149 {605,0.73242,0.83777,0.30661,-0.07259, 150 {610,0.7034,0.8385,0.30673,-0.07453,0. 151 {615,0.67402,0.84003,0.3065,-0.07588,0 152 {620,0.6445,0.8426,0.30618,-0.07642,0. 153 {625,0.61503,0.84637,0.30581,-0.07599, 154 {630,0.5858,0.85147,0.30525,-0.07444,0 155 {635,0.557,0.85801,0.30443,-0.07169,0. 156 {640,0.5289,0.86611,0.30346,-0.06786,0 157 {645,0.50176,0.87586,0.30245,-0.06312, 158 {650,0.47582,0.8874,0.30153,-0.05762,0 159 {655,0.45135,0.90083,0.30082,-0.05148, 160 {660,0.42865,0.91629,0.30054,-0.0447,0 161 {665,0.40794,0.93393,0.30079,-0.03707, 162 {670,0.38927,0.95387,0.30149,-0.0283,0 163 {675,0.37268,0.97623,0.30251,-0.01806, 164 {680,0.35818,1.0011,0.30373,-0.00607,0 165 {685,0.34574,1.02858,0.30527,0.00796,0 166 {690,0.33527,1.05871,0.30741,0.02426,0 167 {695,0.32658,1.09138,0.31026,0.04292,0 168 {700,0.31939,1.12634,0.31382,0.06382,0 169 {705,0.31344,1.16334,0.31815,0.08676,0 170 {710,0.3086,1.20215,0.32345,0.11138,0. 171 {715,0.30471,1.24255,0.32994,0.13731,0 172 {720,0.30161,1.28419,0.33773,0.16421,0 173 {725,0.29909,1.32659,0.34682,0.19187,0 174 {730,0.29695,1.36945,0.35725,0.22005,0 175 {735,0.29502,1.41255,0.36915,0.24854,0 176 {740,0.29311,1.45571,0.38262,0.27709,0 177 {745,0.29109,1.49871,0.39781,0.3055,0. 178 {750,0.28898,1.54138,0.41503,0.33366,0 179 {755,0.28683,1.58345,0.43457,0.36147,0 180 {760,0.28451,1.6243,0.45625,0.38871,0. 181 {765,0.28175,1.66337,0.47979,0.41518,0 182 {770,0.27835,1.70025,0.50482,0.44067,0 183 {775,0.27417,1.73456,0.53095,0.46502,0 184 {780,0.26902,1.76599,0.55773,0.48808,0 185 {785,0.26276,1.79435,0.58464,0.50969,0 186 {790,0.2552,1.81947,0.61114,0.52972,0. 187 {795,0.24617,1.84117,0.6367,0.54802,0. 188 {800,0.23554,1.85933,0.66076,0.56451,0 189 {805,0.22322,1.87397,0.68275,0.57917,0 190 {810,0.20914,1.8851,0.70209,0.592,0.12 191 {815,0.1932,1.89272,0.7182,0.60299,0.1 192 {820,0.17533,1.89686,0.73052,0.61214,0 193 {825,0.15565,1.89756,0.73887,0.61947,0 194 {830,0.13439,1.89493,0.74336,0.62504,0 195 {835,0.11178,1.88905,0.74408,0.62889,0 196 {840,0.08807,1.88001,0.74115,0.63106,0 197 {845,0.0635,1.86791,0.73467,0.63161,0. 198 {850,0.03831,1.85283,0.72475,0.63058,0 199 {855,0.01278,1.83488,0.7116,0.62802,0. 200 {860,-0.01274,1.81419,0.69565,0.624,0. 201 {865,-0.03789,1.79087,0.67736,0.61858, 202 {870,-0.06232,1.76507,0.65719,0.61182, 203 {875,-0.08566,1.73691,0.63561,0.60379, 204 {880,-0.10755,1.70652,0.61308,0.59454, 205 {885,-0.12763,1.67402,0.59005,0.58414, 206 {890,-0.1458,1.63947,0.56679,0.57245,0 207 {895,-0.16195,1.60305,0.54339,0.5594,0 208 {900,-0.17602,1.56493,0.51984,0.54502, 209 {905,-0.18798,1.52525,0.4961,0.52929,0 210 {910,-0.19778,1.48414,0.47216,0.51223, 211 {915,-0.20538,1.44176,0.44798,0.49384, 212 {920,-0.21074,1.39824,0.42355,0.47412, 213 {925,-0.21388,1.35383,0.39886,0.45319, 214 {930,-0.21484,1.30892,0.37401,0.4313,0 215 {935,-0.21369,1.2639,0.34905,0.40872,0 216 {940,-0.2105,1.21913,0.32406,0.38569,0 217 {945,-0.20536,1.17491,0.29905,0.36232, 218 {950,-0.19836,1.13145,0.27401,0.33866, 219 {955,-0.18958,1.08898,0.24895,0.31474, 220 {960,-0.17912,1.04775,0.22386,0.2906,0 221 {965,-0.16707,1.00794,0.19872,0.26627, 222 {970,-0.15345,0.96965,0.17358,0.24171, 223 {975,-0.1383,0.93292,0.14845,0.21687,0 224 {980,-0.12165,0.89782,0.12337,0.19178, 225 {985,-0.10352,0.86439,0.09835,0.16649, 226 {990,-0.08393,0.83266,0.07345,0.14106, 227 {995,-0.06289,0.80271,0.04868,0.11554, 228 {1000,-0.04044,0.77456,0.02407,0.09,0. 229 {1005,-0.0166,0.74824,-3e-04,0.06448,0 230 {1010,0.00852,0.72368,-0.02409,0.03902 231 {1015,0.03479,0.70081,-0.0472,0.01366, 232 {1020,0.06212,0.67958,-0.06962,-0.0115 233 {1025,0.0904,0.65992,-0.09133,-0.03664 234 {1030,0.11951,0.64179,-0.11234,-0.0615 235 {1035,0.14935,0.62513,-0.13261,-0.0861 236 {1040,0.1798,0.60989,-0.15215,-0.11044 237 {1045,0.21078,0.59602,-0.17094,-0.1344 238 {1050,0.24215,0.58346,-0.18897,-0.1581 239 {1055,0.27383,0.57216,-0.20623,-0.1813 240 {1060,0.30569,0.56207,-0.2227,-0.20421 241 {1065,0.33764,0.55313,-0.23838,-0.2265 242 {1070,0.36956,0.54529,-0.25326,-0.2484 243 {1075,0.40134,0.53849,-0.26732,-0.2697 244 {1080,0.43288,0.53269,-0.28055,-0.2904 245 {1085,0.46407,0.52783,-0.29295,-0.3105 246 {1090,0.49481,0.52386,-0.30452,-0.3300 247 {1095,0.52503,0.52073,-0.31538,-0.3488 248 {1100,0.55465,0.51841,-0.3257,-0.36683 249 {1105,0.58361,0.51686,-0.3356,-0.38409 250 {1110,0.61184,0.51604,-0.34525,-0.4005 251 {1115,0.63927,0.5159,-0.35478,-0.4161, 252 {1120,0.66583,0.51641,-0.36435,-0.4307 253 {1125,0.69146,0.51753,-0.37411,-0.4445 254 {1130,0.71609,0.51922,-0.38418,-0.4573 255 {1135,0.73967,0.5214,-0.3946,-0.46913, 256 {1140,0.76215,0.52403,-0.40542,-0.4799 257 {1145,0.78348,0.52703,-0.41665,-0.4897 258 {1150,0.80362,0.53033,-0.42833,-0.4985 259 {1155,0.82251,0.53388,-0.44048,-0.5064 260 {1160,0.8401,0.53761,-0.45313,-0.51323 261 {1165,0.85635,0.54144,-0.46631,-0.5190 262 {1170,0.87122,0.54533,-0.48004,-0.5238 263 {1175,0.88472,0.54924,-0.49427,-0.5276 264 {1180,0.89689,0.55314,-0.50896,-0.5306 265 {1185,0.90774,0.55701,-0.52406,-0.5327 266 {1190,0.91731,0.56082,-0.53952,-0.5341 267 {1195,0.92561,0.56455,-0.55528,-0.5348 268 {1200,0.93269,0.56816,-0.57129,-0.5348 269 {1205,0.93856,0.57163,-0.58751,-0.5344 270 {1210,0.94325,0.57494,-0.60389,-0.5334 271 {1215,0.94679,0.57806,-0.62037,-0.5320 272 {1220,0.94921,0.58096,-0.6369,-0.53036 273 {1225,0.95052,0.58361,-0.65343,-0.5283 274 {1230,0.95077,0.58599,-0.66992,-0.5261 275 {1235,0.94997,0.58808,-0.68631,-0.5237 276 {1240,0.94816,0.58984,-0.70255,-0.5213 277 {1245,0.94535,0.59125,-0.71859,-0.5188 278 {1250,0.94157,0.59229,-0.73437,-0.5164 279 {1255,0.93683,0.59293,-0.74976,-0.5141 280 {1260,0.93113,0.59315,-0.76463,-0.5120 281 {1265,0.92447,0.59294,-0.77883,-0.5101 282 {1270,0.91689,0.59232,-0.79218,-0.5084 283 {1275,0.90848,0.5914,-0.80445,-0.5066, 284 {1280,0.89933,0.59026,-0.81539,-0.5043 285 {1285,0.88952,0.58902,-0.82477,-0.5015 286 {1290,0.87914,0.58776,-0.83234,-0.4977 287 {1295,0.86827,0.58655,-0.83797,-0.4930 288 {1300,0.85696,0.58546,-0.84148,-0.4873 289 {1305,0.8453,0.58454,-0.84274,-0.4805, 290 {1310,0.83334,0.58385,-0.84159,-0.4725 291 {1315,0.82116,0.58345,-0.8379,-0.46331 292 {1320,0.80881,0.58341,-0.8315,-0.45284 293 {1325,0.79636,0.58376,-0.82231,-0.4410 294 {1330,0.78383,0.58452,-0.81043,-0.4280 295 {1335,0.77121,0.58565,-0.79603,-0.4139 296 {1340,0.75852,0.58715,-0.77928,-0.3988 297 {1345,0.74577,0.589,-0.76033,-0.38289, 298 {1350,0.73295,0.59118,-0.73935,-0.3661 299 {1355,0.72008,0.59368,-0.71651,-0.3488 300 {1360,0.70715,0.59646,-0.69194,-0.3309 301 {1365,0.6941,0.59943,-0.66566,-0.31253 302 {1370,0.68084,0.60248,-0.63764,-0.2937 303 {1375,0.66737,0.60553,-0.60795,-0.2745 304 {1380,0.65371,0.60856,-0.57672,-0.2550 305 {1385,0.63991,0.61158,-0.5441,-0.2351, 306 {1390,0.62603,0.61456,-0.51023,-0.2148 307 {1395,0.6121,0.6175,-0.47525,-0.19424, 308 {1400,0.59816,0.62039,-0.43932,-0.1733 309 {1405,0.58428,0.62321,-0.40257,-0.1520 310 {1410,0.57048,0.62596,-0.36515,-0.1305 311 {1415,0.55682,0.62862,-0.32721,-0.1087 312 {1420,0.54335,0.63118,-0.28889,-0.0865 313 {1425,0.5301,0.63363,-0.25033,-0.06419 314 {1430,0.51712,0.63597,-0.21167,-0.0415 315 {1435,0.50446,0.63817,-0.17307,-0.0186 316 {1440,0.49217,0.64024,-0.13467,0.0045, 317 {1445,0.48028,0.64215,-0.09661,0.02786 318 {1450,0.46885,0.64391,-0.05904,0.05144 319 {1455,0.45792,0.64548,-0.02209,0.07522 320 {1460,0.44754,0.64688,0.01408,0.09919, 321 {1465,0.43774,0.64808,0.04933,0.12335, 322 {1470,0.42855,0.64906,0.08361,0.14764, 323 {1475,0.41997,0.6498,0.11691,0.17201,- 324 {1480,0.41199,0.65025,0.14924,0.19638, 325 {1485,0.4046,0.65039,0.1806,0.2207,-0. 326 {1490,0.39781,0.65018,0.211,0.2449,-0. 327 {1495,0.39161,0.6496,0.24043,0.26892,- 328 {1500,0.38599,0.64862,0.26889,0.29269, 329 {1505,0.38096,0.64719,0.2964,0.31615,- 330 {1510,0.37651,0.6453,0.32295,0.33923,- 331 {1515,0.37264,0.6429,0.34854,0.36186,- 332 {1520,0.36933,0.63998,0.37315,0.38401, 333 {1525,0.36653,0.63654,0.39667,0.40564, 334 {1530,0.3642,0.63257,0.41901,0.42676,- 335 {1535,0.36228,0.62809,0.44005,0.44733, 336 {1540,0.36072,0.62309,0.45968,0.46736, 337 {1545,0.35948,0.61757,0.47781,0.48683, 338 {1550,0.35851,0.61154,0.49434,0.50572, 339 {1555,0.35781,0.60502,0.50929,0.52405, 340 {1560,0.35738,0.59804,0.52273,0.54186, 341 {1565,0.35725,0.59063,0.53473,0.55915, 342 {1570,0.35742,0.58282,0.54538,0.57597, 343 {1575,0.35792,0.57463,0.55473,0.59234, 344 {1580,0.35874,0.5661,0.56287,0.60828,- 345 {1585,0.35991,0.55725,0.56986,0.62383, 346 {1590,0.36144,0.54811,0.57578,0.63899, 347 {1595,0.36335,0.53871,0.5807,0.65382,- 348 {1600,0.36564,0.52909,0.5847,0.66832,0 349 {1605,0.36833,0.51926,0.58783,0.68253, 350 {1610,0.37143,0.50926,0.59019,0.69647, 351 {1615,0.37496,0.49911,0.59183,0.71017, 352 {1620,0.37894,0.48885,0.59284,0.72365, 353 {1625,0.38336,0.47851,0.59329,0.73695, 354 {1630,0.38826,0.46811,0.59324,0.75008, 355 {1635,0.39363,0.45767,0.59277,0.76308, 356 {1640,0.39951,0.44724,0.59195,0.77597, 357 {1645,0.40588,0.43684,0.59086,0.78878, 358 {1650,0.41278,0.4265,0.58956,0.80153,0 359 {1655,0.42022,0.41624,0.58813,0.81425, 360 {1660,0.4282,0.40614,0.58665,0.82695,0 361 {1665,0.43672,0.39632,0.58517,0.83966, 362 {1670,0.44579,0.38689,0.58378,0.85238, 363 {1675,0.45542,0.37799,0.58253,0.86511, 364 {1680,0.46559,0.36972,0.5815,0.87787,0 365 {1685,0.47631,0.36223,0.58075,0.89067, 366 {1690,0.48759,0.35562,0.58036,0.90351, 367 {1695,0.49943,0.35002,0.58039,0.91642, 368 {1700,0.51182,0.34555,0.58092,0.92938, 369 {1705,0.52478,0.34234,0.58201,0.94243, 370 {1710,0.5383,0.34049,0.58374,0.95556,0 371 {1715,0.55239,0.34002,0.58616,0.96883, 372 {1720,0.56707,0.34092,0.58936,0.98229, 373 {1725,0.58235,0.34319,0.59342,0.99599, 374 {1730,0.59825,0.34683,0.59839,1.00998, 375 {1735,0.61478,0.35185,0.60435,1.02432, 376 {1740,0.63195,0.35823,0.61138,1.03905, 377 {1745,0.64977,0.36598,0.61954,1.05422, 378 {1750,0.66822,0.37504,0.6288,1.06985,0 379 {1755,0.68725,0.38533,0.6391,1.08592,0 380 {1760,0.70685,0.39679,0.65037,1.10245, 381 {1765,0.72695,0.40934,0.66257,1.11943, 382 {1770,0.74754,0.42291,0.67563,1.13684, 383 {1775,0.76857,0.43743,0.68947,1.15471, 384 {1780,0.79,0.45282,0.70406,1.17301,1.1 385 {1785,0.81179,0.46902,0.71931,1.19174, 386 {1790,0.83392,0.48594,0.73518,1.21092, 387 {1795,0.85634,0.50352,0.75159,1.23052, 388 {1800,0.87901,0.52169,0.76849,1.25055, 389 {1805,0.9019,0.54038,0.78582,1.27101,1 390 {1810,0.92496,0.5595,0.80351,1.2919,1. 391 {1815,0.94817,0.57899,0.82151,1.31321, 392 {1820,0.97149,0.59878,0.83975,1.33493, 393 {1825,0.99487,0.61879,0.85816,1.35707, 394 {1830,1.01828,0.63895,0.8767,1.37963,1 395 {1835,1.04168,0.65919,0.89529,1.4026,1 396 {1840,1.06504,0.67943,0.91388,1.42598, 397 {1845,1.08832,0.69962,0.93241,1.44973, 398 399 const G4int coef_ener = G4int((pLab-Lege 400 const G4double sup_ener = pLab/5. - coef 401 402 // assert(pLab >= Legendre_coef[coef_ener][0] 403 404 // Legendre coefficient normalized 405 const G4double A0 = 1.; 406 const G4double A1 = (1-sup_ener)*Legendr 407 const G4double A2 = (1-sup_ener)*Legendr 408 const G4double A3 = (1-sup_ener)*Legendr 409 const G4double A4 = (1-sup_ener)*Legendr 410 const G4double A5 = (1-sup_ener)*Legendr 411 const G4double A6 = (1-sup_ener)*Legendr 412 const G4double A7 = (1-sup_ener)*Legendr 413 414 // Theoritical max if all Ai > 0 (often 415 const G4double A = std::fabs(A0) + std:: 416 417 G4bool success = false; 418 G4int maxloop = 0; 419 420 while(!success && maxloop < 1000){ 421 422 cos_theta = Random::shoot()*2-1.; // n 423 424 // Legendre Polynomial 425 G4double P0 = A0; 426 G4double P1 = A1*cos_theta; 427 G4double P2 = A2/2.*(3*std::pow(cos_th 428 G4double P3 = A3/2.*(5*std::pow(cos_th 429 G4double P4 = A4/8.*(35*std::pow(cos_t 430 G4double P5 = A5/8.*(63*std::pow(cos_t 431 G4double P6 = A6/16.*(231*std::pow(cos 432 G4double P7 = A7/16.*(429*std::pow(cos 433 434 G4double P = (P0 + P1 + P2 + P3 + P4 + 435 436 if(Random::shoot()*A < P) success = tr 437 maxloop +=1 ; 438 if(maxloop==1000) cos_theta = std::log 439 } 440 sin_theta = std::sqrt(1-cos_theta*cos_th 441 } 442 443 if(rho == 0) return ThreeVector(sin_theta* 444 // Rotation in the direction of the incide 445 const G4double px = x/r*cos_theta - y/rho* 446 const G4double py = y/r*cos_theta + x/rho* 447 const G4double pz = z/r*cos_theta - rho/r* 448 449 return ThreeVector(px,py,pz); 450 } 451 452 } 453