Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/lend/src/G4GIDI_Misc.cc

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/src/G4GIDI_Misc.cc (Version 11.3.0) and /processes/hadronic/models/lend/src/G4GIDI_Misc.cc (Version 11.1.3)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 /*                                                 26 /*
 27 # <<BEGIN-copyright>>                              27 # <<BEGIN-copyright>>
 28 # <<END-copyright>>                                28 # <<END-copyright>>
 29 */                                                 29 */
 30 #include <string.h>                                30 #include <string.h>
 31 #include <iostream>                                31 #include <iostream>
 32 #include <string>                                  32 #include <string>
 33 #include <vector>                                  33 #include <vector>
 34 #include <statusMessageReporting.h>                34 #include <statusMessageReporting.h>
 35 #include <MCGIDI.h>                                35 #include <MCGIDI.h>
 36 #include <MCGIDI_misc.h>                           36 #include <MCGIDI_misc.h>
 37 #include "G4GIDI_Misc.hh"                          37 #include "G4GIDI_Misc.hh"
 38 using namespace std;                               38 using namespace std;
 39 using namespace GIDI;                              39 using namespace GIDI;
 40                                                    40 
 41 /*                                                 41 /*
 42 **********************************************     42 ***************************************************************
 43 */                                                 43 */
 44 char *G4GIDI_Misc_Z_A_m_ToName( int iZ, int iA     44 char *G4GIDI_Misc_Z_A_m_ToName( int iZ, int iA, int im ) {
 45                                                    45 
 46     const char *Z = MCGIDI_misc_ZToSymbol( iZ      46     const char *Z = MCGIDI_misc_ZToSymbol( iZ );
 47     char S[128], mS[32], *name;                    47     char S[128], mS[32], *name;
 48                                                    48 
 49     if( Z == NULL ) return( NULL );                49     if( Z == NULL ) return( NULL );
 50     if( iA == 0 ) {                                50     if( iA == 0 ) {
 51         if( im != 0 ) return( NULL );              51         if( im != 0 ) return( NULL );
 52         snprintf( S, sizeof S, "%s_natural", Z     52         snprintf( S, sizeof S, "%s_natural", Z ); }
 53     else {                                         53     else {
 54         snprintf( S, sizeof S, "%s%d", Z, iA )     54         snprintf( S, sizeof S, "%s%d", Z, iA );
 55         if( im != 0 ) {                            55         if( im != 0 ) {
 56             //snprintf( mS, sizeof mS, "_m%d",     56             //snprintf( mS, sizeof mS, "_m%d", im );
 57             //TK 170509                            57             //TK 170509
 58             //Fix inconsistency of name of exc     58             //Fix inconsistency of name of excited isomer  between data and code
 59             snprintf( mS, sizeof mS, "m%d", im     59             snprintf( mS, sizeof mS, "m%d", im );
 60             strcat( S, mS );                       60             strcat( S, mS );
 61         }                                          61         }
 62     }                                              62     }
 63     name = (char *) smr_malloc2( NULL, strlen(     63     name = (char *) smr_malloc2( NULL, strlen( S ) + 1, 0, "name" );
 64     if( name != NULL ) strcpy( name, S );          64     if( name != NULL ) strcpy( name, S );
 65     return( name );                                65     return( name );
 66 }                                                  66 }
 67 /*                                                 67 /*
 68 **********************************************     68 ***************************************************************
 69 */                                                 69 */
 70 char *G4GIDI_Misc_channelCompound( char *parti     70 char *G4GIDI_Misc_channelCompound( char *particle1, char *particle2 ) {
 71                                                    71 
 72     int Z1, A1, m1, Z2, A2, m2, level1, level2     72     int Z1, A1, m1, Z2, A2, m2, level1, level2;
 73                                                    73 
 74     if( MCGIDI_miscNameToZAm( NULL, particle1,     74     if( MCGIDI_miscNameToZAm( NULL, particle1, &Z1, &A1, &m1, &level1 ) ) return( NULL );
 75     if( MCGIDI_miscNameToZAm( NULL, particle2,     75     if( MCGIDI_miscNameToZAm( NULL, particle2, &Z2, &A2, &m2, &level2 ) ) return( NULL );
 76     if( A1 == 0 ) A2 = 0;                          76     if( A1 == 0 ) A2 = 0;
 77     if( A2 == 0 ) A1 = 0;                          77     if( A2 == 0 ) A1 = 0;
 78     return( G4GIDI_Misc_Z_A_m_ToName( Z1 + Z2,     78     return( G4GIDI_Misc_Z_A_m_ToName( Z1 + Z2, A1 + A2, 0 ) );
 79 }                                                  79 }
 80 #if 0                                              80 #if 0
 81 /*                                                 81 /*
 82 **********************************************     82 ***************************************************************
 83 */                                                 83 */
 84 int G4GIDI_Misc_channelProductsCompare( tpia_c     84 int G4GIDI_Misc_channelProductsCompare( tpia_channel *channel, int nProducts, char **productNames ) {
 85                                                    85 
 86     int i;                                         86     int i;
 87     tpia_product *product;                         87     tpia_product *product;
 88                                                    88 
 89     if( channel->decayChannel.numberOfProducts     89     if( channel->decayChannel.numberOfProducts != nProducts ) return( 0 );
 90     for( product = tpia_channel_getFirstProduc     90     for( product = tpia_channel_getFirstProduct( channel ), i = 0; product != NULL; product = tpia_decayChannel_getNextProduct( product ), i++ ) {
 91         if( strcmp( product->productID->name,      91         if( strcmp( product->productID->name, productNames[i] ) ) return( 0 );
 92     }                                              92     }
 93     return( 1 );                                   93     return( 1 );
 94 }                                                  94 }
 95 #endif                                             95 #endif
 96 /*                                                 96 /*
 97 **********************************************     97 ***************************************************************
 98 */                                                 98 */
 99 int getNamesOfAvailableTargets_walker( MCGIDI_     99 int getNamesOfAvailableTargets_walker( MCGIDI_mapEntry *entry, int /*level*/, void *userData ) {
100                                                   100 
101     vector<string> *listOfTargets = (vector<st    101     vector<string> *listOfTargets = (vector<string> *) userData;
102     vector<string>::iterator iter;                102     vector<string>::iterator iter;
103                                                   103 
104     if( entry->type != MCGIDI_mapEntry_type_ta    104     if( entry->type != MCGIDI_mapEntry_type_target ) return( 0 );
105     for( iter = listOfTargets->begin( ); iter     105     for( iter = listOfTargets->begin( ); iter != listOfTargets->end( ); iter++ ) {
106         if( entry->targetName == iter->c_str(     106         if( entry->targetName == iter->c_str( ) ) return( 0 );
107     }                                             107     }
108     listOfTargets->push_back( entry->targetNam    108     listOfTargets->push_back( entry->targetName );
109     return( 0 );                                  109     return( 0 );
110 }                                                 110 }
111                                                   111