Geant4 Cross Reference |
1 /* 1 2 # <<BEGIN-copyright>> 3 # <<END-copyright>> 4 */ 5 6 #ifndef PoPs_h_included 7 #define PoPs_h_included 8 9 /* Disable Effective C++ warnings in PoP code. 10 #if __INTEL_COMPILER > 1399 11 #pragma warning( disable:593 ) 12 #endif 13 14 #include <statusMessageReporting.h> 15 /* 16 * MPI stuff. 17 */ 18 #ifdef PoPs_MPI 19 #include <mpi.h> 20 #endif 21 22 #if defined __cplusplus 23 extern "C" { 24 namespace GIDI { 25 #endif 26 27 #define POPS_VERSION_MAJOR 1 28 #define POPS_VERSION_MINOR 0 29 #define POPS_VERSION_PATCHLEVEL 5 30 31 #define PoPs_packageSymbol "PoPs (properties o 32 #define PoPs_packageName PoPs_packageSymbol " 33 typedef struct PoP_s PoP; 34 35 enum PoPs_errorTokens { PoPs_errorToken_Okay, 36 enum PoPs_genre { PoPs_genre_invalid, PoPs_gen 37 PoPs_genre_quark, PoPs_genre_meson, Po 38 /* 39 * In the following struct, 'index' is the in 40 * is a proper particle its properIndex is -1 41 * particle does not have an aliased particle 42 * its aliasIndex is the index of its first a 43 * aliased particle's aliasIndex is the index 44 */ 45 struct PoP_s { /* Any changes her 46 int index, properIndex, aliasIndex; 47 enum PoPs_genre genre; 48 char const *name; 49 int Z, A, l; 50 double mass; /* Mass to be adde 51 char const *massUnit; 52 }; 53 54 extern int PoPs_smr_ID; 55 56 const char *PoPs_version( void ); 57 int PoPs_versionMajor( void ); 58 int PoPs_versionMinor( void ); 59 int PoPs_versionPatchLevel( void ); 60 61 int PoPs_register( void ); 62 int PoPs_readDatabase( statusMessageReporting 63 int PoPs_release( statusMessageReporting *smr 64 PoP *PoPs_addParticleIfNeeded( statusMessageRe 65 PoP *PoPs_copyAddParticleIfNeeded( statusMessa 66 PoP *PoPs_addAliasIfNeeded( statusMessageRepor 67 int PoPs_numberOfParticle( void ); 68 int PoPs_particleIndex( char const *name ); 69 int PoPs_particleIndex_smr( statusMessageRepor 70 char const *PoPs_getName_atIndex( statusMessag 71 double PoPs_getMassInUnitOf( statusMessageRepo 72 double PoPs_getMassInUnitOf_atIndex( statusMes 73 enum PoPs_genre PoPs_getGenre( statusMessageRe 74 enum PoPs_genre PoPs_getGenre_atIndex( statusM 75 int PoPs_getZ_A_l( statusMessageReporting *smr 76 int PoPs_getZ_A_l_atIndex( statusMessageReport 77 int PoPs_hasNucleus( statusMessageReporting *s 78 int PoPs_hasNucleus_atIndex( statusMessageRepo 79 char const *PoPs_getAtomsName( statusMessageRe 80 char const *PoPs_getAtomsName_atIndex( statusM 81 int PoPs_getAtomsIndex( statusMessageReporting 82 int PoPs_getAtomsIndex_atIndex( statusMessageR 83 PoP *PoPs_getParticle_atIndex( int index ); 84 85 char const *PoPs_genreTokenToString( enum PoPs 86 void PoPs_print( int sorted ); 87 void PoPs_write( FILE *f, int sorted ); 88 89 PoP *PoP_new( statusMessageReporting *smr ); 90 int PoP_initialize( statusMessageReporting *sm 91 int PoP_release( PoP *pop ); 92 PoP *PoP_free( PoP *pop ); 93 int PoP_copyParticle( statusMessageReporting * 94 PoP *PoP_makeParticle( statusMessageReporting 95 int PoP_setZ_A_l( statusMessageReporting *smr, 96 int PoP_getIndex( PoP *pop ); 97 char const *PoP_getName( PoP *pop ); 98 99 int PoPs_particleReadDatabase( statusMessageRe 100 PoP *PoPs_particleCreateLoadInfo( statusMessag 101 int PoPs_particleLoadInfo( statusMessageReport 102 103 double PoP_getMassInUnitOf( statusMessageRepor 104 105 PoP *PoP_makeAlias( statusMessageReporting *sm 106 107 int PoPs_unitConversionRatio( char const *_fro 108 109 int lPoPs_addParticleIfNeeded( statusMessageRe 110 111 /* 112 * MPI stuff. 113 */ 114 #ifdef PoPs_MPI 115 int PoPs_Bcast( statusMessageReporting *smr, M 116 #endif 117 118 /* Use the next function with caution as it is 119 int PoPs_setBDFLS_File( char const *name ); 120 121 #if defined __cplusplus 122 } 123 } 124 #endif 125 126 #endif /* End of PoPs_h_included. */ 127