Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/lend/include/PoPs.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/lend/include/PoPs.h (Version 11.3.0) and /processes/hadronic/models/lend/include/PoPs.h (Version 10.3.p2)


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