13 #if defined __cplusplus
18 #define nParticleChanges 6
90 char const *outputChannelStr, *crossSectionUnits[2] = {
"MeV",
"b" };
137 reaction->
finalQ = finalQ;
143 case 18 :
case 19 :
case 20 :
case 21 :
case 38 :
157 if( numberOfChanges == 0 ) {
182 if( projectileGlobalIndex != gammaIndex ) {
184 if( i1 == productsInfo->
numberOfProducts ) particlesChanges[i2++] = projectileGlobalIndex;
188 if( i1 == productsInfo->
numberOfProducts ) particlesChanges[i2++] = targetGlobalIndex;
191 if( i2 == n1 )
break;
215 int twoBodyProductsWithData = 0;
220 for( iProduct = 0; iProduct < nProducts; iProduct++ ) {
223 twoBodyProductsWithData = -1; }
225 if( twoBodyProductsWithData >= 0 ) twoBodyProductsWithData = 1;
229 if( twoBodyProductsWithData < 0 ) twoBodyProductsWithData = 0;
231 for( iProduct = 0; iProduct < nProducts; iProduct++ ) {
232 productIsTrackable = twoBodyProductsWithData;
236 productIsTrackable = 1;
237 if( globalPoPsIndex < 0 ) {
241 if( productIsTrackable ) {
245 if( ( product->
pop->
name[len-2] ==
'_' ) && ( product->
pop->
name[len-1] ==
'c' ) ) {
247 productIsTrackable = 1;
251 if( globalPoPsIndex < 0 ) {
258 if( productIsTrackable ) {
301 if( product == NULL ) {
331 return( reaction->
target );
359 *EMin = reaction->
EMin;
360 *EMax = reaction->
EMax;
368 double lowerEps = 1
e-14, upperEps = -1
e-14;
370 if( reaction->
EMin == EMin ) lowerEps = 0.;
371 if( reaction->
EMax == EMax ) upperEps = 0.;
372 if( ( lowerEps == 0. ) && ( upperEps == 0. ) )
return( 0 );
386 if( e_in < reaction->EMin ) e_in = reaction->
EMin;
387 if( e_in > reaction->
EMax ) e_in = reaction->
EMax;
393 if( xSecP != NULL ) {
410 return( reaction->
finalQ );
424 if( S != NULL ) *S = reaction->
ENDL_S;
425 return( reaction->
ENDL_C );
433 int MT1_50ToC[] = { 1, 10, -3, -4, -5, 0, 0, 0, 0, -10,
434 32, 0, 0, 0, 0, 12, 13, 15, 15, 15,
435 15, 26, 36, 33, -25, 0, -27, 20, 27, -30,
436 0, 22, 24, 25, -35, -36, 14, 15, 0, 0,
437 29, 16, 0, 17, 34, 0, 0, 0, 0 };
438 int MT100_200ToC[] = { -101, 46, 40, 41, 42, 44, 45, 37, -109, 0,
439 18, 48, -113, -114, 19, 39, 47, 0, 0, 0,
440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
443 0, -152, -153, -154, 43, -156, -157, 23, 31, -160,
444 -161, -162, -163, -164, -165, -166, -167, -168, -169, -170,
445 -171, -172, -173, -174, -175, -176, -177, -178, -179, -180,
446 -181, -182, -183, -184, -185, -186, -187, -188, 28, -190,
447 -191, -192, 38, -194, -195, -196, -197, -198, -199, -200 };
451 if( MT <= 0 )
return( 1 );
452 if( MT > 891 )
return( 1 );
454 reaction->
ENDL_C = MT1_50ToC[MT - 1]; }
455 else if( MT <= 91 ) {
457 if( MT != 91 ) reaction->
ENDL_S = 1; }
458 else if( ( MT > 100 ) && ( MT <= 200 ) ) {
459 reaction->
ENDL_C = MT100_200ToC[MT - 101]; }
460 else if( ( MT == 452 ) || ( MT == 455 ) || ( MT == 456 ) || ( MT == 458 ) ) {
462 if( MT == 455 ) reaction->
ENDL_S = 7; }
463 else if( MT >= 600 ) {
466 if( MT != 649 ) reaction->
ENDL_S = 1; }
467 else if( MT < 700 ) {
469 if( MT != 699 ) reaction->
ENDL_S = 1; }
470 else if( MT < 750 ) {
472 if( MT != 749 ) reaction->
ENDL_S = 1; }
473 else if( MT < 800 ) {
475 if( MT != 799 ) reaction->
ENDL_S = 1; }
476 else if( MT < 850 ) {
478 if( MT != 849 ) reaction->
ENDL_S = 1; }
479 else if( ( MT >= 875 ) && ( MT <= 891 ) ) {
481 if( MT != 891 ) reaction->
ENDL_S = 1;
499 if( totalGroupedCrossSection != NULL ) {
536 if( ( index < 0 ) || ( index >= productsInfo->
numberOfProducts ) )
return( -1 );
552 if( ( index < 0 ) || ( index >= productsInfo->
numberOfProducts ) )
return( -1 );
560 if( ( index < 0 ) || ( index >= productsInfo->
numberOfProducts ) )
return( -1 );
564 #if defined __cplusplus