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 10.1)


  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 # Copyright (c) 2010, Lawrence Livermore National Security, LLC. 
                                                   >>  29 # Produced at the Lawrence Livermore National Laboratory 
                                                   >>  30 # Written by Bret R. Beck, beck6@llnl.gov. 
                                                   >>  31 # CODE-461393
                                                   >>  32 # All rights reserved. 
                                                   >>  33 #  
                                                   >>  34 # This file is part of GIDI. For details, see nuclear.llnl.gov. 
                                                   >>  35 # Please also read the "Additional BSD Notice" at nuclear.llnl.gov. 
                                                   >>  36 # 
                                                   >>  37 # Redistribution and use in source and binary forms, with or without modification, 
                                                   >>  38 # are permitted provided that the following conditions are met: 
                                                   >>  39 #
                                                   >>  40 #      1) Redistributions of source code must retain the above copyright notice, 
                                                   >>  41 #         this list of conditions and the disclaimer below.
                                                   >>  42 #      2) Redistributions in binary form must reproduce the above copyright notice, 
                                                   >>  43 #         this list of conditions and the disclaimer (as noted below) in the 
                                                   >>  44 #          documentation and/or other materials provided with the distribution.
                                                   >>  45 #      3) Neither the name of the LLNS/LLNL nor the names of its contributors may be 
                                                   >>  46 #         used to endorse or promote products derived from this software without 
                                                   >>  47 #         specific prior written permission. 
                                                   >>  48 #
                                                   >>  49 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
                                                   >>  50 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
                                                   >>  51 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT 
                                                   >>  52 # SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, LLC, THE U.S. DEPARTMENT OF ENERGY OR 
                                                   >>  53 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
                                                   >>  54 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
                                                   >>  55 # OR SERVICES;  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
                                                   >>  56 # AND ON  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
                                                   >>  57 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
                                                   >>  58 # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 28 # <<END-copyright>>                                59 # <<END-copyright>>
 29 */                                                 60 */
 30 #include <string.h>                            << 
 31 #include <iostream>                                61 #include <iostream>
 32 #include <string>                                  62 #include <string>
 33 #include <vector>                                  63 #include <vector>
 34 #include <statusMessageReporting.h>            <<  64 #include <xData.h>
 35 #include <MCGIDI.h>                            <<  65 #include <tpia_target.h>
 36 #include <MCGIDI_misc.h>                       <<  66 #include <tpia_misc.h>
                                                   >>  67 #include <string.h>
 37 #include "G4GIDI_Misc.hh"                          68 #include "G4GIDI_Misc.hh"
                                                   >>  69 
 38 using namespace std;                               70 using namespace std;
 39 using namespace GIDI;                              71 using namespace GIDI;
 40                                                    72 
 41 /*                                                 73 /*
 42 **********************************************     74 ***************************************************************
 43 */                                                 75 */
 44 char *G4GIDI_Misc_Z_A_m_ToName( int iZ, int iA     76 char *G4GIDI_Misc_Z_A_m_ToName( int iZ, int iA, int im ) {
 45                                                    77 
 46     const char *Z = MCGIDI_misc_ZToSymbol( iZ  <<  78     const char *Z = tpia_misc_ZToSymbol( iZ );
 47     char S[128], mS[32], *name;                    79     char S[128], mS[32], *name;
 48                                                    80 
 49     if( Z == NULL ) return( NULL );                81     if( Z == NULL ) return( NULL );
 50     if( iA == 0 ) {                                82     if( iA == 0 ) {
 51         if( im != 0 ) return( NULL );              83         if( im != 0 ) return( NULL );
 52         snprintf( S, sizeof S, "%s_natural", Z <<  84         sprintf( S, "%s_natural", Z ); }
 53     else {                                         85     else {
 54         snprintf( S, sizeof S, "%s%d", Z, iA ) <<  86         sprintf( S, "%s_%d", Z, iA );
 55         if( im != 0 ) {                            87         if( im != 0 ) {
 56             //snprintf( mS, sizeof mS, "_m%d", <<  88             sprintf( mS, "_m%d", im );
 57             //TK 170509                        << 
 58             //Fix inconsistency of name of exc << 
 59             snprintf( mS, sizeof mS, "m%d", im << 
 60             strcat( S, mS );                       89             strcat( S, mS );
 61         }                                          90         }
 62     }                                              91     }
 63     name = (char *) smr_malloc2( NULL, strlen( <<  92     name = (char *) xData_malloc2( NULL, strlen( S ) + 1, 0, "name" );
 64     if( name != NULL ) strcpy( name, S );          93     if( name != NULL ) strcpy( name, S );
 65     return( name );                                94     return( name );
 66 }                                                  95 }
 67 /*                                                 96 /*
 68 **********************************************     97 ***************************************************************
 69 */                                                 98 */
 70 char *G4GIDI_Misc_channelCompound( char *parti     99 char *G4GIDI_Misc_channelCompound( char *particle1, char *particle2 ) {
 71                                                   100 
 72     int Z1, A1, m1, Z2, A2, m2, level1, level2 << 101     int Z1, A1, m1, Z2, A2, m2;
 73                                                   102 
 74     if( MCGIDI_miscNameToZAm( NULL, particle1, << 103     if( tpia_miscNameToZAm( NULL, particle1, &Z1, &A1, &m1 ) ) return( NULL );
 75     if( MCGIDI_miscNameToZAm( NULL, particle2, << 104     if( tpia_miscNameToZAm( NULL, particle2, &Z2, &A2, &m2 ) ) return( NULL );
 76     if( A1 == 0 ) A2 = 0;                         105     if( A1 == 0 ) A2 = 0;
 77     if( A2 == 0 ) A1 = 0;                         106     if( A2 == 0 ) A1 = 0;
 78     return( G4GIDI_Misc_Z_A_m_ToName( Z1 + Z2,    107     return( G4GIDI_Misc_Z_A_m_ToName( Z1 + Z2, A1 + A2, 0 ) );
 79 }                                                 108 }
 80 #if 0                                          << 
 81 /*                                                109 /*
 82 **********************************************    110 ***************************************************************
 83 */                                                111 */
 84 int G4GIDI_Misc_channelProductsCompare( tpia_c    112 int G4GIDI_Misc_channelProductsCompare( tpia_channel *channel, int nProducts, char **productNames ) {
 85                                                   113 
 86     int i;                                        114     int i;
 87     tpia_product *product;                        115     tpia_product *product;
 88                                                   116 
 89     if( channel->decayChannel.numberOfProducts    117     if( channel->decayChannel.numberOfProducts != nProducts ) return( 0 );
 90     for( product = tpia_channel_getFirstProduc    118     for( product = tpia_channel_getFirstProduct( channel ), i = 0; product != NULL; product = tpia_decayChannel_getNextProduct( product ), i++ ) {
 91         if( strcmp( product->productID->name,     119         if( strcmp( product->productID->name, productNames[i] ) ) return( 0 );
 92     }                                             120     }
 93     return( 1 );                                  121     return( 1 );
 94 }                                                 122 }
 95 #endif                                         << 
 96 /*                                                123 /*
 97 **********************************************    124 ***************************************************************
 98 */                                                125 */
 99 int getNamesOfAvailableTargets_walker( MCGIDI_ << 126 //int getNamesOfAvailableTargets_walker( tpia_mapEntry *entry, int level, void *userData ) {
                                                   >> 127 int getNamesOfAvailableTargets_walker( tpia_mapEntry *entry, int , void *userData ) {
100                                                   128 
101     vector<string> *listOfTargets = (vector<st    129     vector<string> *listOfTargets = (vector<string> *) userData;
102     vector<string>::iterator iter;                130     vector<string>::iterator iter;
103                                                   131 
104     if( entry->type != MCGIDI_mapEntry_type_ta << 132     if( entry->type != tpia_mapEntry_type_target ) return( 0 );
105     for( iter = listOfTargets->begin( ); iter     133     for( iter = listOfTargets->begin( ); iter != listOfTargets->end( ); iter++ ) {
106         if( entry->targetName == iter->c_str(     134         if( entry->targetName == iter->c_str( ) ) return( 0 );
107     }                                             135     }
108     listOfTargets->push_back( entry->targetNam    136     listOfTargets->push_back( entry->targetName );
109     return( 0 );                                  137     return( 0 );
110 }                                                 138 }
111                                                   139