43     addDataDirectory( dataDirectory );
 
   50     list<string>::iterator iter;
 
   53     for( iter = dataDirectoryList.begin( ); iter != dataDirectoryList.end( ); ++iter ) addDataDirectory( *iter );
 
   61     list<G4GIDI_map *>::iterator iter;
 
   63     while( targets.size( ) > 0 ) {
 
   64         target = targets.back( );
 
   69     while( ( iter = dataDirectories.begin( ) ) != dataDirectories.end( ) ) {
 
   71         dataDirectories.pop_front( );
 
   77 int G4GIDI::init( 
int ip ) {
 
   81         projectile = string( 
"g" ); }
 
   83         projectile = string( 
"n" ); }
 
   85         projectile = string( 
"p" ); }
 
   87         projectile = string( 
"d" ); }
 
   89         projectile = string( 
"t" ); }
 
   91         projectile = string( 
"h" ); }
 
   93         projectile = string( 
"a" ); }
 
   95         printf( 
"Invalid projectile ID = %d\n", ip );
 
  105     return( dataDirectories.size( ) );
 
  112     list<G4GIDI_map *>::iterator iter;
 
  114     for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) {
 
  115         if( (*iter)->path( ) == dataDirectory ) 
return( 0 );
 
  119     dataDirectories.push_back( map );
 
  128     list<G4GIDI_map *>::iterator iter;
 
  130     for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) {
 
  131         if( dataDirectory == (*iter)->path( ) ) {
 
  142     list<G4GIDI_map *>::iterator iter;
 
  143     unsigned i = (unsigned) index;
 
  146         if( i >= dataDirectories.size( ) ) 
return( 
"" );
 
  147         for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++, index-- ) {
 
  148             if( index == 0 ) 
return( (*iter)->fileName( ) );
 
  160     list<G4GIDI_map *>::iterator iter;
 
  161     vector<string> *
v = 
new vector<string>( numberOfDataDirectories( ) );
 
  163     for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++, i++ ) (*v)[i] = string( (*iter)->fileName( ) );
 
  174     if( targetName == NULL ) 
return( 
false );
 
  175     string targetSymbol( targetName );
 
  176     b = isThisDataAvailable( lib_name, targetSymbol );
 
  185     char *path = dataFilename( lib_name, targetName );
 
  200     if( targetName == NULL ) 
return( NULL );
 
  201     string targetSymbol( targetName );
 
  202     fileName = dataFilename( lib_name, targetSymbol );
 
  225    list<G4GIDI_map *>::iterator iter;
 
  227    for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) {
 
  228       if( ( path = 
MCGIDI_map_findTarget( NULL, (*iter)->map, lib_name.c_str(), projectile.c_str( ), targetSymbol.c_str( ) ) ) != NULL ) {
 
  240     vector<string> *listOfLibraries;
 
  242     if( targetName == NULL ) 
return( 
new vector<string>( ) );
 
  243     string targetSymbol( targetName );
 
  244     listOfLibraries = getNamesOfAvailableLibraries( targetSymbol );
 
  246     return( listOfLibraries );
 
  253     list<G4GIDI_map *>::iterator iter;
 
  254     vector<string> *listOfLibraries = 
new vector<string>( );
 
  259     for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++ ) {
 
  262             listOfLibraries->push_back( entry->
evaluation );
 
  266     return( listOfLibraries );
 
  273     vector<string> *listOfTargets;
 
  274     list<G4GIDI_map *>::iterator iter_map;
 
  276     listOfTargets = 
new vector<string>( );
 
  277     if( listOfTargets == NULL ) 
return( NULL );
 
  278     for( iter_map = dataDirectories.begin( ); iter_map != dataDirectories.end( ); iter_map++ ) {
 
  280             delete listOfTargets;
 
  284     return( listOfTargets );
 
  294     if( targetName == NULL ) 
return( NULL );
 
  295     string targetSymbol( targetName );
 
  296     target = readTarget( lib_name, targetSymbol, bind );
 
  305     vector<G4GIDI_target *>::iterator iter_targets;
 
  307     for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) {
 
  308         if( (*iter_targets)->name == targetName ) 
return( NULL );
 
  310     char *path = dataFilename( lib_name, targetName );
 
  311     if( path == NULL ) 
return( NULL );
 
  314     if( bind ) targets.push_back( target );
 
  326     if( targetName == NULL ) 
return( NULL );
 
  327     string targetSymbol( targetName );
 
  328     target = getAlreadyReadTarget( targetSymbol );
 
  337     vector<G4GIDI_target *>::iterator iter_targets;
 
  339     for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) {
 
  340         if( ( (*iter_targets)->name == targetSymbol ) ) 
return( *iter_targets );
 
  349     vector<G4GIDI_target *>::iterator iter_targets;
 
  351     for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) {
 
  352         if( *iter_targets == target ) {
 
  353             targets.erase( iter_targets );
 
  368     if( targetName == NULL ) 
return( 1 );
 
  369     string targetSymbol( targetName );
 
  370     status = freeTarget( targetSymbol );
 
  379     vector<G4GIDI_target *>::iterator iter_targets;
 
  381     for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) {
 
  382         if( (*iter_targets)->name == targetSymbol ) 
return( freeTarget( *iter_targets ) );
 
  391     vector<G4GIDI_target *>::iterator iter_targets;
 
  392     vector<string> *listOfTargets;
 
  394     listOfTargets = 
new vector<string>( );
 
  395     if( listOfTargets == NULL ) 
return( NULL );
 
  396     for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) {
 
  397         listOfTargets->push_back( *(*iter_targets)->getName( ) );
 
  399     return( listOfTargets );
 
MCGIDI_mapEntry * MCGIDI_map_getFirstEntry(MCGIDI_map *map)
 
char * dataFilename(std::string &lib_name, int iZ, int iA, int iM=0)
 
std::vector< std::string > * getDataDirectories(void)
 
int MCGIDI_map_walkTree(statusMessageReporting *smr, MCGIDI_map *map, int(*handler)(MCGIDI_mapEntry *entry, int level, void *userData), void *userData)
 
std::string getDataDirectoryAtIndex(int index)
 
G4GIDI_target * getAlreadyReadTarget(int iZ, int iA, int iM=0)
 
MCGIDI_map * MCGIDI_map_findAllOfTarget(statusMessageReporting *smr, MCGIDI_map *map, const char *projectile, const char *targetName)
 
int numberOfDataDirectories(void)
 
void * MCGIDI_map_free(statusMessageReporting *smr, MCGIDI_map *map)
 
MCGIDI_mapEntry * MCGIDI_map_getNextEntry(MCGIDI_mapEntry *entry)
 
char * G4GIDI_Misc_Z_A_m_ToName(int iZ, int iA, int im=0)
 
int freeTarget(int iZ, int iA, int iM=0)
 
std::vector< std::string > * getNamesOfAvailableLibraries(int iZ, int iA, int iM=0)
 
bool isThisDataAvailable(std::string &lib_name, int iZ, int iA, int iM=0)
 
std::vector< std::string > * getListOfReadTargetsNames(void)
 
void * smr_freeMemory(void **p)
 
G4GIDI_target * readTarget(std::string &lib_name, int iZ, int iA, int iM=0, bool bind=true)
 
int getNamesOfAvailableTargets_walker(GIDI::MCGIDI_mapEntry *entry, int level, void *userData)
 
G4GIDI(int ip, std::string &dataDirectory)
 
int removeDataDirectory(std::string &dataDirectory)
 
char * MCGIDI_map_findTarget(statusMessageReporting *smr, MCGIDI_map *map, const char *evaluation, const char *projectile, const char *targetName)
 
int addDataDirectory(std::string &dataDirectory)
 
std::vector< std::string > * getNamesOfAvailableTargets(void)