46 using namespace starlightConstants;
51 const beam& electronBeam,
52 const beam& targetBeam)
53 : _beamLorentzGamma(inputParametersInstance.beamLorentzGamma()),
54 _electronBeamLorentzGamma(inputParametersInstance.electronBeamLorentzGamma()),
55 _targetBeamLorentzGamma(inputParametersInstance.targetBeamLorentzGamma()),
56 _beamBreakupMode (inputParametersInstance.beamBreakupMode()),
57 _electronBeam (electronBeam),
58 _targetBeam (targetBeam),
59 _breakupProbabilities(0)
71 : _beamLorentzGamma(inputParametersInstance.beamLorentzGamma()),
72 _electronBeamLorentzGamma(inputParametersInstance.electronBeamLorentzGamma()),
73 _targetBeamLorentzGamma(inputParametersInstance.targetBeamLorentzGamma()),
74 _beamBreakupMode (inputParametersInstance.beamBreakupMode()),
77 inputParametersInstance.productionMode(),
78 inputParametersInstance.electronBeamLorentzGamma()),
79 _targetBeam (inputParametersInstance.targetBeamZ(),
80 inputParametersInstance.targetBeamA(),
81 inputParametersInstance.productionMode(),
82 inputParametersInstance.targetBeamLorentzGamma()),
83 _breakupProbabilities(0)
114 cout <<
"D=" << D <<
" NOT SUPPORTED IN eX COLLISIONS" << endl;
205 double b = impactparameter;
209 static int IFIRSTH = 0;
210 static double DELL=0., DELR=0., SIGNN=0., R1=0., A1=0.,
A2=0., R2=0., RHO1=0.;
211 static double RHO2=0., NZ1=0., NZ2=0., NR1=0., NR2=0.,RR1=0., RR2=0., NY=0., NX=0.;
212 static double AN1=0., AN2=0.;
213 double RSQ=0.,Z1=0.,Z2=0.,Y=0.,X=0.,XB=0.,RPU=0.,IRUP=0.,RTU=0.;
214 double IRUT=0.,
T1=0.,
T2=0.;
215 static double DEN1[20002], DEN2[20002];
216 double energy,sigmainmb;
217 if (IFIRSTH != 0)
goto L100;
228 energy=2*gamma*0.938;
231 sigmainmb = 0.2838*pow(log(energy),2)+33.73+13.67*pow(energy,-0.412)-7.77*pow(energy,-0.5626);
243 NZ1 = ((R1+5.)/DELR);
245 NZ2 = ((R2+5.)/DELR);
252 for (
int IR1 = 1; IR1 <= NR1; IR1++) {
257 for (
int IZ1 = 1; IZ1 <= NZ1; IZ1++) {
260 DEN1[IR1] = DEN1[IR1]+1./(1.+exp((sqrt(RSQ)-R1)/A1));
263 DEN1[IR1] = DEN1[IR1]*2.*DELR;
267 for (
int IR2 = 1; IR2 <= NR2; IR2++) {
272 for (
int IZ2 = 1; IZ2 <= NZ2; IZ2++) {
275 DEN2[IR2] = DEN2[IR2]+1./(1.+exp((sqrt(RSQ)-R2)/
A2));
278 DEN2[IR2] = DEN2[IR2]*2.*DELR;
285 for (
int IR1 =1; IR1 <= NR1; IR1++) {
289 for (
int IR2 =1; IR2 <= NR2; IR2++) {
301 for (
int IY = 1; IY <= NY; IY++) {
303 X = -DELL*float(NY+1);
305 for (
int IX = 1; IX <=NX; IX++) {
310 RTU = sqrt(XB*XB+Y*Y);
312 T1 = DEN2[(int)IRUT]*RHO2/AN2;
313 T2 = DEN1[(int)IRUP]*RHO1/AN1;
327 static double ee[10001], eee[162], se[10001];
330 double b = impactparameter;
350 double e1[23]= {0.,103.,106.,112.,119.,127.,132.,145.,171.,199.,230.,235.,
351 254.,280.,300.,320.,330.,333.,373.,390.,420.,426.,440.};
352 double s1[23]= {0.,12.0,11.5,12.0,12.0,12.0,15.0,17.0,28.0,33.0,
353 52.0,60.0,70.0,76.0,85.0,86.0,89.0,89.0,75.0,76.0,69.0,59.0,61.0};
354 double e2[12]={0.,2000.,3270.,4100.,4810.,6210.,6600.,
355 7790.,8400.,9510.,13600.,16400.};
356 double s2[12]={0.,.1266,.1080,.0805,.1017,.0942,.0844,.0841,.0755,.0827,
358 double e3[29]={0.,26.,28.,30.,32.,34.,36.,38.,40.,44.,46.,48.,50.,52.,55.,
359 57.,62.,64.,66.,69.,72.,74.,76.,79.,82.,86.,92.,98.,103.};
360 double s3[29]={0.,30.,21.5,22.5,18.5,17.5,15.,14.5,19.,17.5,16.,14.,
361 20.,16.5,17.5,17.,15.5,18.,15.5,15.5,15.,13.5,18.,14.5,15.5,12.5,13.,
363 static double sa[161]={0.,0.,.004,.008,.013,.017,.021,.025,.029,.034,.038,.042,.046,
364 .051,.055,.059,.063,.067,.072,.076,.08,.085,.09,.095,.1,.108,.116,
365 .124,.132,.14,.152,.164,.176,.188,.2,.22,.24,.26,.28,.3,.32,.34,
366 .36,.38,.4,.417,.433,.450,.467,.483,.5,.51,.516,.52,.523,.5245,
368 .5214,.518,.512,.505,.495,.482,.469,.456,.442,.428,.414,.4,.386,
369 .370,.355,.34,.325,.310,.295,.280,.265,.25,.236,.222,.208,.194,
371 .152,.138,.124,.11,.101,.095,.09,.085,.08,.076,.072,.069,.066,
372 .063,.06,.0575,.055,.0525,.05,.04875,.0475,.04625,.045,.04375,
373 .0425,.04125,.04,.03875,.0375,.03625,.035,.03375,.0325,.03125,.03,
374 .02925,.0285,.02775,.027,.02625,.0255,.02475,.024,.02325,.0225,
375 .02175,.021,.02025,.0195,.01875,.018,.01725,.0165,.01575,.015,
376 .01425,.0135,.01275,.012,.01125,.0105,.00975,.009,.00825,.0075,
377 .00675,.006,.00525,.0045,.00375,.003,.00225,.0015,.00075,0.};
381 double sen[161]={0.,0.,.012,.025,.038,.028,.028,.038,.035,.029,.039,.035,
382 .038,.032,.038,.041,.041,.049,.055,.061,.072,.076,.070,.067,
383 .080,.103,.125,.138,.118,.103,.129,.155,.170,.180,.190,.200,
384 .215,.250,.302,.310,.301,.315,.330,.355,.380,.400,.410,.420,
385 .438,.456,.474,.492,.510,.533,.556,.578,.6,.62,.63,.638,
386 .640,.640,.637,.631,.625,.618,.610,.600,.580,.555,.530,.505,
387 .480,.455,.435,.410,.385,.360,.340,.320,.300,.285,.270,.255,
388 .240,.225,.210,.180,.165,.150,.140,.132,.124,.116,.108,.100,
389 .092,.084,.077,.071,.066,.060,.055,.051,.048,.046,.044,.042,
390 .040,.038,.036,.034,.032,.030,.028,.027,.026,.025,.025,.025,
391 .024,.024,.024,.024,.024,.023,.023,.023,.023,.023,.022,.022,
392 .022,.022,.022,.021,.021,.021,.020,.020,
393 .020,.019,.018,.017,.016,.015,.014,.013,.012,.011,.010,.009,
394 .008,.007,.006,.005,.004,.003,.002,.001,0.};
399 double sigt[160]={0.,.4245,.4870,.5269,.4778,.4066,.3341,.2444,.2245,.2005,
400 .1783,.1769,.1869,.1940,.2117,.2226,.2327,.2395,.2646,.2790,.2756,
401 .2607,.2447,.2211,.2063,.2137,.2088,.2017,.2050,.2015,.2121,.2175,
402 .2152,.1917,.1911,.1747,.1650,.1587,.1622,.1496,.1486,.1438,.1556,
403 .1468,.1536,.1544,.1536,.1468,.1535,.1442,.1515,.1559,.1541,.1461,
404 .1388,.1565,.1502,.1503,.1454,.1389,.1445,.1425,.1415,.1424,.1432,
405 .1486,.1539,.1354,.1480,.1443,.1435,.1491,.1435,.1380,.1317,.1445,
406 .1375,.1449,.1359,.1383,.1390,.1361,.1286,.1359,.1395,.1327,.1387,
407 .1431,.1403,.1404,.1389,.1410,.1304,.1363,.1241,.1284,.1299,.1325,
408 .1343,.1387,.1328,.1444,.1334,.1362,.1302,.1338,.1339,.1304,.1314,
409 .1287,.1404,.1383,.1292,.1436,.1280,.1326,.1321,.1268,.1278,.1243,
410 .1239,.1271,.1213,.1338,.1287,.1343,.1231,.1317,.1214,.1370,.1232,
411 .1301,.1348,.1294,.1278,.1227,.1218,.1198,.1193,.1342,.1323,.1248,
412 .1220,.1139,.1271,.1224,.1347,.1249,.1163,.1362,.1236,.1462,.1356,
413 .1198,.1419,.1324,.1288,.1336,.1335,.1266};
416 double sigtn[160]={0.,.3125,.3930,.4401,.4582,.3774,.3329,.2996,.2715,.2165,
417 .2297,.1861,.1551,.2020,.2073,.2064,.2193,.2275,.2384,.2150,.2494,
418 .2133,.2023,.1969,.1797,.1693,.1642,.1463,.1280,.1555,.1489,.1435,
419 .1398,.1573,.1479,.1493,.1417,.1403,.1258,.1354,.1394,.1420,.1364,
420 .1325,.1455,.1326,.1397,.1286,.1260,.1314,.1378,.1353,.1264,.1471,
421 .1650,.1311,.1261,.1348,.1277,.1518,.1297,.1452,.1453,.1598,.1323,
422 .1234,.1212,.1333,.1434,.1380,.1330,.12,.12,.12,.12,.12,.12,.12,.12,
423 .12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,
424 .12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,
425 .12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,
426 .12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,
427 .12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12,.12};
431 static int IFIRSTP=0;
434 double si1=0, g1 =0, o1=0;
436 double delo=0, omax =0, gk1m=0;
437 static double scon=0., zcon=0.,o0=0.;
440 double x=0,
y=0,
eps=0,
eta=0,em=0,exx=0,
s=0,ictr=0,pom=0,vec=0,gk1=0;
446 if (IFIRSTP != 0)
goto L100;
472 for(
int j=1;j<=160;j++)
482 zcon = zp/(gammatarg*(
pi)*(
487 for (
int i = 1; i <= 160; i++) {
488 eee[i] = o0+.1*(i-1);
494 ne=int((25.-o0)/delo)+1;
496 for (
int i = 1; i <= ne; i++ ) {
497 ee[i] = o0+(i-1)*delo;
500 se[i] = scon*ee[i]*ee[i]/(((o1*o1-ee[i]*ee[i])*(o1*o1-ee[i]*ee[i]))
505 for (
int j = 1; j <= 27; j++ ) {
510 se[ij] = .1*ap*s3[j]/208.;
513 for (
int j = 1; j <= 22; j++ ) {
517 se[ij] = .1*ap*s1[j]/208.;
520 for (
int j = 9; j <= 70; j++) {
522 ee[ij] = ee[ij-1]+25.;
524 se[ij] = .1*(zp*sigt[j]+(ap-zp)*sigtn[j]);
527 for (
int j = 1; j <= 11; j++) {
531 se[ij] = .1*ap*s2[j];
545 if ( gammatarg > (2.*150.*150.)) ictr = 150;
546 for (
int j = 1; j <= ictr; j++ ) {
549 ee[ij] = 1000.*.5*(
s-em*em)/em;
552 vec =
y*pow(
s,(-
eta));
553 se[ij] = .1*.65*ap*(pom+vec);
555 ee[ij+1] = 99999999999.;
573 pxn=pxn+zcon*(ee[
k]-ee[k-1])*.5*(se[k-1]*ee[k-1]*gk1m*gk1m+se[k]*ee[k]*gk1*gk1);
583 if (eee[k] < omax ) {
586 p1n = p1n+zcon*(eee[
k]-eee[k-1])*.5*(sa[k-1]*eee[k-1]*gk1m*gk1m+sa[k]*eee[k]*gk1*gk1);
595 if (( mode) == 3)
_pPhotonBreakup = (p1n*exp(-1*pxn))*(p1n*exp(-1*pxn));