G4GIDI Class Reference

#include <G4GIDI.hh>


Public Member Functions

 G4GIDI (int ip, std::string &dataDirectory)
 G4GIDI (int ip, std::list< std::string > &dataDirectory)
 ~G4GIDI ()
int numberOfDataDirectories (void)
int addDataDirectory (std::string &dataDirectory)
int removeDataDirectory (std::string &dataDirectory)
std::string getDataDirectoryAtIndex (int index)
std::vector< std::string > * getDataDirectories (void)
bool isThisDataAvailable (std::string &lib_name, int iZ, int iA, int iM=0)
bool isThisDataAvailable (std::string &lib_name, std::string &targetName)
char * dataFilename (std::string &lib_name, int iZ, int iA, int iM=0)
char * dataFilename (std::string &lib_name, std::string &targetName)
std::vector< std::string > * getNamesOfAvailableLibraries (int iZ, int iA, int iM=0)
std::vector< std::string > * getNamesOfAvailableLibraries (std::string &targetName)
std::vector< std::string > * getNamesOfAvailableTargets (void)
G4GIDI_targetreadTarget (std::string &lib_name, int iZ, int iA, int iM=0, bool bind=true)
G4GIDI_targetreadTarget (std::string &lib_name, std::string &targetName, bool bind=true)
G4GIDI_targetgetAlreadyReadTarget (int iZ, int iA, int iM=0)
G4GIDI_targetgetAlreadyReadTarget (std::string &targetName)
int freeTarget (int iZ, int iA, int iM=0)
int freeTarget (std::string &targetSymbol)
int freeTarget (G4GIDI_target *target)
std::vector< std::string > * getListOfReadTargetsNames (void)


Detailed Description

Definition at line 73 of file G4GIDI.hh.


Constructor & Destructor Documentation

G4GIDI::G4GIDI ( int  ip,
std::string &  dataDirectory 
)

G4GIDI::G4GIDI ( int  ip,
std::list< std::string > &  dataDirectory 
)

G4GIDI::~G4GIDI (  ) 

Definition at line 90 of file G4GIDI.cc.

00090                       {
00091 
00092     G4GIDI_target *target;
00093     list<G4GIDI_map *>::iterator iter;
00094 
00095     while( targets.size( ) > 0 ) {
00096         target = targets.back( );
00097         targets.pop_back( );
00098         delete target;
00099     }
00100 
00101     while( ( iter = dataDirectories.begin( ) ) != dataDirectories.end( ) ) {
00102         delete *iter;
00103         dataDirectories.pop_front( );
00104     }
00105 }


Member Function Documentation

int G4GIDI::addDataDirectory ( std::string &  dataDirectory  ) 

char* G4GIDI::dataFilename ( std::string &  lib_name,
std::string &  targetName 
)

char* G4GIDI::dataFilename ( std::string &  lib_name,
int  iZ,
int  iA,
int  iM = 0 
)

int G4GIDI::freeTarget ( G4GIDI_target target  ) 

Definition at line 351 of file G4GIDI.cc.

00351                                               {
00352 
00353     vector<G4GIDI_target *>::iterator iter_targets;
00354 
00355     for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) {
00356         if( *iter_targets == target ) {
00357             targets.erase( iter_targets );
00358             delete target;
00359             return( 0 );
00360         }
00361     }
00362     return( 1 );
00363 }

int G4GIDI::freeTarget ( std::string &  targetSymbol  ) 

int G4GIDI::freeTarget ( int  iZ,
int  iA,
int  iM = 0 
)

Definition at line 367 of file G4GIDI.cc.

References G4GIDI_Misc_Z_A_m_ToName(), and xData_free().

00367                                                {
00368 
00369     int status;
00370     char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM );
00371 
00372     if( targetName == NULL ) return( 1 );
00373     string targetSymbol( targetName );
00374     status = freeTarget( targetSymbol );
00375     xData_free( NULL, targetName );
00376     return( status );
00377 }

G4GIDI_target* G4GIDI::getAlreadyReadTarget ( std::string &  targetName  ) 

G4GIDI_target * G4GIDI::getAlreadyReadTarget ( int  iZ,
int  iA,
int  iM = 0 
)

Definition at line 325 of file G4GIDI.cc.

References G4GIDI_Misc_Z_A_m_ToName(), and xData_free().

00325                                                                     {
00326 
00327     char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM );
00328     G4GIDI_target *target;
00329 
00330     if( targetName == NULL ) return( NULL );
00331     string targetSymbol( targetName );
00332     target = getAlreadyReadTarget( targetSymbol );
00333     xData_free( NULL, targetName );
00334     return( target );
00335 }

vector< string > * G4GIDI::getDataDirectories ( void   ) 

Definition at line 172 of file G4GIDI.cc.

References numberOfDataDirectories().

00172                                                  {
00173 
00174     int i = 0;
00175     list<G4GIDI_map *>::iterator iter;
00176     vector<string> *v = new vector<string>( numberOfDataDirectories( ) );
00177 
00178     for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++, i++ ) (*v)[i] = string( (*iter)->fileName( ) );
00179     return( v );
00180 }

string G4GIDI::getDataDirectoryAtIndex ( int  index  ) 

Definition at line 155 of file G4GIDI.cc.

00155                                             {
00156 
00157 #if 0
00158     list<G4GIDI_map *>::iterator iter;
00159     unsigned i = (unsigned) index;
00160 
00161     if( i < 0 ) return( "" );
00162     if( i >= dataDirectories.size( ) ) return( "" );
00163     for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++, i-- ) {
00164         if( i == 0 ) return( (*iter)->fileName( ) );
00165     }
00166 #endif
00167     return( "" );
00168 }

vector< string > * G4GIDI::getListOfReadTargetsNames ( void   ) 

Definition at line 393 of file G4GIDI.cc.

00393                                                         {
00394 
00395     vector<G4GIDI_target *>::iterator iter_targets;
00396     vector<string> *listOfTargets;
00397 
00398     listOfTargets = new vector<string>( );
00399     if( listOfTargets == NULL ) return( NULL );
00400     for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) {
00401         listOfTargets->push_back( *(*iter_targets)->getName( ) );
00402     }
00403     return( listOfTargets );
00404 }

std::vector<std::string>* G4GIDI::getNamesOfAvailableLibraries ( std::string &  targetName  ) 

vector< string > * G4GIDI::getNamesOfAvailableLibraries ( int  iZ,
int  iA,
int  iM = 0 
)

Definition at line 240 of file G4GIDI.cc.

References G4GIDI_Misc_Z_A_m_ToName(), and xData_free().

Referenced by G4LENDManager::GetLENDTarget(), and G4LENDManager::IsLENDTargetAvailable().

00240                                                                              {
00241 
00242     char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM );
00243     vector<string> *listOfLibraries;
00244 
00245     if( targetName == NULL ) return( new vector<string>( ) );
00246     string targetSymbol( targetName );
00247     listOfLibraries = getNamesOfAvailableLibraries( targetSymbol );
00248     xData_free( NULL, targetName );
00249     return( listOfLibraries );
00250 }

vector< string > * G4GIDI::getNamesOfAvailableTargets ( void   ) 

Definition at line 275 of file G4GIDI.cc.

References getNamesOfAvailableTargets_walker(), and tpia_map_walkTree().

00275                                                          {
00276 
00277     vector<string> *listOfTargets;
00278     list<G4GIDI_map *>::iterator iter_map;
00279 
00280     listOfTargets = new vector<string>( );
00281     if( listOfTargets == NULL ) return( NULL );
00282     for( iter_map = dataDirectories.begin( ); iter_map != dataDirectories.end( ); iter_map++ ) {
00283         if( tpia_map_walkTree( NULL, (*iter_map)->map, getNamesOfAvailableTargets_walker, (void *) listOfTargets ) != 0 ) {
00284             delete listOfTargets;
00285             return( NULL );
00286         }
00287     }
00288     return( listOfTargets );
00289 }

bool G4GIDI::isThisDataAvailable ( std::string &  lib_name,
std::string &  targetName 
)

bool G4GIDI::isThisDataAvailable ( std::string &  lib_name,
int  iZ,
int  iA,
int  iM = 0 
)

Referenced by G4LENDManager::GetLENDTarget().

int G4GIDI::numberOfDataDirectories ( void   ) 

Definition at line 117 of file G4GIDI.cc.

Referenced by getDataDirectories().

00117                                           {
00118 
00119     return( dataDirectories.size( ) );
00120 }

G4GIDI_target* G4GIDI::readTarget ( std::string &  lib_name,
std::string &  targetName,
bool  bind = true 
)

G4GIDI_target* G4GIDI::readTarget ( std::string &  lib_name,
int  iZ,
int  iA,
int  iM = 0,
bool  bind = true 
)

Referenced by G4LENDManager::GetLENDTarget().

int G4GIDI::removeDataDirectory ( std::string &  dataDirectory  ) 


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:05 2013 for Geant4 by  doxygen 1.4.7