Geant4 Cross Reference |
1 /* 1 2 # <<BEGIN-copyright>> 3 # <<END-copyright>> 4 */ 5 #include <string.h> 6 #include <cmath> 7 8 #include "MCGIDI.h" 9 #include "MCGIDI_misc.h" 10 11 #if defined __cplusplus 12 namespace GIDI { 13 using namespace GIDI; 14 #endif 15 16 /* 17 ********************************************** 18 */ 19 MCGIDI_distribution *MCGIDI_distribution_new( 20 21 MCGIDI_distribution *distribution; 22 23 if( ( distribution = (MCGIDI_distribution 24 if( MCGIDI_distribution_initialize( smr, d 25 return( distribution ); 26 } 27 /* 28 ********************************************** 29 */ 30 int MCGIDI_distribution_initialize( statusMess 31 32 memset( distribution, 0, sizeof( MCGIDI_di 33 return( 0 ); 34 } 35 /* 36 ********************************************** 37 */ 38 MCGIDI_distribution *MCGIDI_distribution_free( 39 40 MCGIDI_distribution_release( smr, distribu 41 smr_freeMemory( (void **) &distribution ); 42 return( NULL ); 43 } 44 /* 45 ********************************************** 46 */ 47 int MCGIDI_distribution_release( statusMessage 48 49 if( distribution->angular ) distribution-> 50 if( distribution->energy ) distribution->e 51 if( distribution->KalbachMann ) distributi 52 if( distribution->energyAngular ) distribu 53 if( distribution->angularEnergy ) distribu 54 55 MCGIDI_distribution_initialize( smr, distr 56 return( 0 ); 57 } 58 /* 59 ********************************************** 60 */ 61 int MCGIDI_distribution_parseFromTOM( statusMe 62 63 char const *nativeData, *gammaEnergy; 64 double gammaEnergy_MeV{0.0}; 65 MCGIDI_distribution *distribution = &(prod 66 xDataTOM_element *distributionElement; 67 enum MCGIDI_energyType energyType = MCGIDI 68 69 MCGIDI_distribution_initialize( smr, distr 70 71 distribution->product = product; 72 if( ( distributionElement = xDataTOME_getO 73 if( ( nativeData = xDataTOM_getAttributesV 74 75 if( strcmp( product->pop->name, "gamma" ) 76 if( ( gammaEnergy = xDataTOM_getAttrib 77 if( MCGIDI_misc_PQUStringToDoubleI 78 energyType = MCGIDI_energyType_dis 79 else if( ( gammaEnergy = xDataTOM_getA 80 if( MCGIDI_misc_PQUStringToDoubleI 81 energyType = MCGIDI_energyType_pri 82 } 83 if( gammaEnergy != NULL ) { 84 if( strcmp( nativeData, "angular" 85 smr_setReportError2( smr, smr_ 86 gammaEnergy, nativeData ); 87 goto err; 88 } 89 nativeData = "uncorrelated"; 90 } 91 } 92 93 if( strcmp( nativeData, "angular" ) == 0 ) 94 if( MCGIDI_angular_parseFromTOM( smr, 95 else if( strcmp( nativeData, "uncorrelated 96 if( MCGIDI_uncorrelated_parseFromTOM( 97 else if( strcmp( nativeData, "energyAngula 98 if( MCGIDI_energyAngular_parseFromTOM( 99 else if( strcmp( nativeData, "angularEnerg 100 if( MCGIDI_angularEnergy_parseFromTOM( 101 else if( strcmp( nativeData, "Legendre" ) 102 if( MCGIDI_energyAngular_parseFromTOM( 103 else if( strcmp( nativeData, "LLNLAngular_ 104 if( MCGIDI_LLNLAngular_angularEnergy_p 105 else if( strcmp( nativeData, "none" ) == 0 106 distribution->type = MCGIDI_distributi 107 else if( strcmp( nativeData, "unknown" ) = 108 distribution->type = MCGIDI_distributi 109 else { 110 smr_setReportError2( smr, smr_unknownI 111 goto err; 112 } 113 114 return( 0 ); 115 116 err: 117 MCGIDI_distribution_release( smr, distribu 118 return( 1 ); 119 } 120 121 #if defined __cplusplus 122 } 123 #endif 124 125