tpia_target.cc File Reference

#include <string.h>
#include <tpia_target.h>
#include <tpia_misc.h>

Go to the source code of this file.

Functions

tpia_target * tpia_target_create (statusMessageReporting *smr)
int tpia_target_initialize (statusMessageReporting *smr, tpia_target *target)
tpia_target * tpia_target_createRead (statusMessageReporting *smr, const char *fileName)
int tpia_target_readFromMap (statusMessageReporting *smr, tpia_target *target, tpia_map *map, const char *evaluation, const char *projectileName, const char *targetName)
tpia_target * tpia_target_createReadFromMap (statusMessageReporting *smr, tpia_map *map, const char *evaluation, const char *projectileName, const char *targetName)
tpia_target * tpia_target_free (statusMessageReporting *smr, tpia_target *target)
int tpia_target_release (statusMessageReporting *smr, tpia_target *target)
int tpia_target_read (statusMessageReporting *smr, tpia_target *target, const char *fileName)
char * tpia_target_getAttributesValue (statusMessageReporting *, tpia_target *target, char const *name)
int tpia_target_getTemperatures (statusMessageReporting *, tpia_target *target, double *temperatures)
int tpia_target_readHeatedTarget (statusMessageReporting *smr, tpia_target *target, int index, int checkElememtsForAccess)
tpia_target_heated * tpia_target_getHeatedTargetAtIndex_ReadIfNeeded (statusMessageReporting *smr, tpia_target *target, int index)
tpia_target_heated * tpia_target_getHeatedTargetAtTIndex (statusMessageReporting *smr, tpia_target *target, int index)
int tpia_target_numberOfChannels (statusMessageReporting *smr, tpia_target *target)
int tpia_target_numberOfProductionChannels (statusMessageReporting *smr, tpia_target *target)
xData_Int tpia_target_getEnergyGridAtTIndex (statusMessageReporting *smr, tpia_target *target, int index, double **energyGrid)
tpia_1dData * tpia_target_getTotalCrossSectionAtTIndex (statusMessageReporting *smr, tpia_target *target, int index, int crossSectionType)
double tpia_target_getTotalCrossSectionAtTAndE (statusMessageReporting *smr, tpia_target *target, double T, xData_Int iEg, double e_in, int crossSectionType)
double tpia_target_getIndexChannelCrossSectionAtE (statusMessageReporting *smr, tpia_target *target, int index, double T, xData_Int iEg, double e_in, int crossSectionType)
int tpia_target_sampleIndexChannelProductsAtE (statusMessageReporting *smr, tpia_target *target, int index, double, tpia_decaySamplingInfo *decaySamplingInfo, int nProductData, tpia_productOutgoingData *productData)


Function Documentation

tpia_target* tpia_target_create ( statusMessageReporting *  smr  ) 

Definition at line 49 of file tpia_target.cc.

References tpia_target_free(), and tpia_target_initialize().

Referenced by tpia_target_createRead().

00049                                                                {
00050 
00051     tpia_target *target;
00052 
00053     //if( ( target = xData_malloc2( smr, sizeof( tpia_target ), 0, "target" ) ) == NULL ) return( NULL );
00054     if( ( target = (tpia_target*) xData_malloc2( smr, sizeof( tpia_target ), 0, "target" ) ) == NULL ) return( NULL );
00055     if( tpia_target_initialize( smr, target ) ) target = tpia_target_free( smr, target );
00056     return( target );
00057 }

tpia_target* tpia_target_createRead ( statusMessageReporting *  smr,
const char *  fileName 
)

Definition at line 70 of file tpia_target.cc.

References tpia_target_create(), tpia_target_read(), and xData_free().

Referenced by G4GIDI_target::init(), and tpia_target_createReadFromMap().

00070                                                                                          {
00071 
00072     tpia_target *target;
00073 
00074     if( ( target = tpia_target_create( smr ) ) == NULL ) return( NULL );
00075     //if( tpia_target_read( smr, target, fileName ) != 0 ) target = xData_free( smr, target );
00076     if( tpia_target_read( smr, target, fileName ) != 0 ) target = (tpia_target*) xData_free( smr, target );
00077     return( target );
00078 }

tpia_target* tpia_target_createReadFromMap ( statusMessageReporting *  smr,
tpia_map *  map,
const char *  evaluation,
const char *  projectileName,
const char *  targetName 
)

Definition at line 93 of file tpia_target.cc.

References tpia_map_findTarget(), tpia_target_createRead(), and xData_free().

Referenced by tpia_depot_addTargetFromMap().

00094                                  {
00095 
00096     char *targetPath;
00097     tpia_target *target;
00098 
00099     targetPath = tpia_map_findTarget( smr, map, evaluation, projectileName, targetName );
00100     if( targetPath == NULL ) return( NULL );
00101     target = tpia_target_createRead( smr, targetPath );
00102     xData_free( smr, targetPath );
00103     return( target );
00104 }

tpia_target* tpia_target_free ( statusMessageReporting *  smr,
tpia_target *  target 
)

Definition at line 108 of file tpia_target.cc.

References tpia_target_release(), and xData_free().

Referenced by tpia_depot_release(), tpia_target_create(), and G4GIDI_target::~G4GIDI_target().

00108                                                                                   {
00109 
00110     tpia_target_release( smr, target );
00111     xData_free( smr, target );
00112     return( NULL );
00113 }

char* tpia_target_getAttributesValue ( statusMessageReporting *  ,
tpia_target *  target,
char const *  name 
)

Definition at line 248 of file tpia_target.cc.

References xData_getAttributesValue().

00248                                                                                                         {
00249 
00250     return( xData_getAttributesValue( &(target->attributes), name ) );
00251 }

xData_Int tpia_target_getEnergyGridAtTIndex ( statusMessageReporting *  smr,
tpia_target *  target,
int  index,
double **  energyGrid 
)

Definition at line 331 of file tpia_target.cc.

References smr_isOk(), tpia_target_getHeatedTargetAtTIndex(), and tpia_target_heated_getEnergyGrid().

Referenced by G4GIDI_target::getEnergyGridAtTIndex().

00331                                                                                                                                 {
00332 
00333     tpia_target_heated *heated = tpia_target_getHeatedTargetAtTIndex( smr, target, index );
00334 
00335     if( !smr_isOk( smr ) ) return( -1 );
00336     return( tpia_target_heated_getEnergyGrid( smr, heated, energyGrid ) );
00337 }

tpia_target_heated* tpia_target_getHeatedTargetAtIndex_ReadIfNeeded ( statusMessageReporting *  smr,
tpia_target *  target,
int  index 
)

Definition at line 290 of file tpia_target.cc.

References smr_setMessageError(), and tpia_target_readHeatedTarget().

00290                                                                                                                                    {
00291 
00292     if( ( index < 0 ) || ( index >= target->nHeatedTargets ) ) {
00293         smr_setMessageError( smr, NULL, __FILE__, __LINE__, 1, "temperature index = %d out of range (0 <= index < %d", index, target->nHeatedTargets );
00294         return( NULL );
00295     }
00296     if( target->heatedTargets[index].heatedTarget == NULL ) tpia_target_readHeatedTarget( smr, target, index, 0 );
00297     return( target->heatedTargets[index].heatedTarget );
00298 }

tpia_target_heated* tpia_target_getHeatedTargetAtTIndex ( statusMessageReporting *  smr,
tpia_target *  target,
int  index 
)

Definition at line 302 of file tpia_target.cc.

References smr_setMessageError().

Referenced by tpia_target_getEnergyGridAtTIndex(), and tpia_target_getTotalCrossSectionAtTIndex().

00302                                                                                                                        {
00303 
00304     if( ( index < 0 ) || ( index >= target->nHeatedTargets ) ) {
00305         smr_setMessageError( smr, NULL, __FILE__, __LINE__, 1, "temperature index = %d out of range (0 <= index < %d", index, target->nHeatedTargets );
00306         return( NULL );
00307     }
00308     if( target->heatedTargets[index].heatedTarget == NULL ) {
00309         smr_setMessageError( smr, NULL, __FILE__, __LINE__, 1, "temperature index = %d not read in", index );
00310         return( NULL );
00311     }
00312     return( target->heatedTargets[index].heatedTarget );
00313 }

double tpia_target_getIndexChannelCrossSectionAtE ( statusMessageReporting *  smr,
tpia_target *  target,
int  index,
double  T,
xData_Int  iEg,
double  e_in,
int  crossSectionType 
)

Definition at line 380 of file tpia_target.cc.

References tpia_target_heated_getIndexChannelCrossSectionAtE().

Referenced by G4GIDI_target::sampleChannelCrossSectionAtE(), and G4GIDI_target::sumChannelCrossSectionAtE().

00381                            {
00382 
00383     int i;
00384     double xsec = 0., xsec1, xsec2;
00385 
00386     for( i = 0; i < target->nReadHeatedTargets; i++ ) if( target->readHeatedTargets[i]->temperature > T ) break;
00387     if( i == 0 ) {
00388         xsec = tpia_target_heated_getIndexChannelCrossSectionAtE( smr, target->readHeatedTargets[0]->heatedTarget, index, iEg, e_in, crossSectionType ); }
00389     else if( i == target->nReadHeatedTargets ) {
00390         xsec = tpia_target_heated_getIndexChannelCrossSectionAtE( smr, target->readHeatedTargets[i-1]->heatedTarget, index, iEg, e_in, crossSectionType ); }
00391     else {
00392         xsec1 = tpia_target_heated_getIndexChannelCrossSectionAtE(smr, target->readHeatedTargets[i-1]->heatedTarget, index, iEg, e_in, crossSectionType);
00393         xsec2 = tpia_target_heated_getIndexChannelCrossSectionAtE(smr, target->readHeatedTargets[i  ]->heatedTarget, index, iEg, e_in, crossSectionType);
00394         xsec = ( ( target->readHeatedTargets[i]->temperature - T ) * xsec1 + ( T - target->readHeatedTargets[i-1]->temperature ) * xsec2 ) / 
00395             ( target->readHeatedTargets[i]->temperature - target->readHeatedTargets[i-1]->temperature );
00396     }
00397 
00398     return( xsec );
00399 }

int tpia_target_getTemperatures ( statusMessageReporting *  ,
tpia_target *  target,
double *  temperatures 
)

Definition at line 256 of file tpia_target.cc.

Referenced by G4GIDI_target::getTemperatures().

00256                                                                                                        {
00257 
00258     int i;
00259 
00260     if( temperatures != NULL ) for( i = 0; i < target->nHeatedTargets; i++ ) temperatures[i] = target->heatedTargets[i].temperature;
00261     return( target->nHeatedTargets );
00262 }

double tpia_target_getTotalCrossSectionAtTAndE ( statusMessageReporting *  smr,
tpia_target *  target,
double  T,
xData_Int  iEg,
double  e_in,
int  crossSectionType 
)

Definition at line 357 of file tpia_target.cc.

References tpia_target_heated_getTotalCrossSectionAtE().

Referenced by G4GIDI_target::getTotalCrossSectionAtE().

00358                            {
00359 
00360     int i;
00361     double xsec = 0., xsec1, xsec2;
00362 
00363     for( i = 0; i < target->nReadHeatedTargets; i++ ) if( target->readHeatedTargets[i]->temperature > T ) break;
00364     if( i == 0 ) {
00365         xsec = tpia_target_heated_getTotalCrossSectionAtE( smr, target->readHeatedTargets[0]->heatedTarget, iEg, e_in, crossSectionType ); }
00366     else if( i == target->nReadHeatedTargets ) {
00367         xsec = tpia_target_heated_getTotalCrossSectionAtE( smr, target->readHeatedTargets[i-1]->heatedTarget, iEg, e_in, crossSectionType ); }
00368     else {
00369         xsec1 = tpia_target_heated_getTotalCrossSectionAtE( smr, target->readHeatedTargets[i-1]->heatedTarget, iEg, e_in, crossSectionType );
00370         xsec2 = tpia_target_heated_getTotalCrossSectionAtE( smr, target->readHeatedTargets[i  ]->heatedTarget, iEg, e_in, crossSectionType );
00371         xsec = ( ( target->readHeatedTargets[i]->temperature - T ) * xsec1 + ( T - target->readHeatedTargets[i-1]->temperature ) * xsec2 ) / 
00372             ( target->readHeatedTargets[i]->temperature - target->readHeatedTargets[i-1]->temperature );
00373     }
00374 
00375     return( xsec );
00376 }

tpia_1dData* tpia_target_getTotalCrossSectionAtTIndex ( statusMessageReporting *  smr,
tpia_target *  target,
int  index,
int  crossSectionType 
)

Definition at line 341 of file tpia_target.cc.

References smr_isOk(), smr_setMessageError(), and tpia_target_getHeatedTargetAtTIndex().

00341                                                                                                                                            {
00342 
00343     tpia_target_heated *heated = tpia_target_getHeatedTargetAtTIndex( smr, target, index );
00344 
00345     if( !smr_isOk( smr ) ) return( NULL );
00346     if( crossSectionType == tpia_crossSectionType_grouped ) {
00347         return( &(heated->totalCrossSectionGrouped) ); }
00348     else if( crossSectionType == tpia_crossSectionType_pointwise ) {
00349         return( &(heated->totalCrossSectionPointwise) );
00350     }
00351     smr_setMessageError( smr, NULL, __FILE__, __LINE__, 1, "Invalue crossSectionType = %d", crossSectionType );
00352     return( NULL );
00353 }

int tpia_target_initialize ( statusMessageReporting *  smr,
tpia_target *  target 
)

Definition at line 61 of file tpia_target.cc.

References tpia_samplingMethods_initialize().

Referenced by tpia_target_create(), tpia_target_read(), and tpia_target_release().

00061                                                                                {
00062 
00063     memset( target, 0, sizeof( tpia_target ) );
00064     tpia_samplingMethods_initialize( smr, &(target->samplingMethods) );
00065     return( 0 );
00066 }

int tpia_target_numberOfChannels ( statusMessageReporting *  smr,
tpia_target *  target 
)

Definition at line 317 of file tpia_target.cc.

References tpia_target_heated_numberOfChannels().

Referenced by G4GIDI_target::getChannelIDs(), G4GIDI_target::getNumberOfChannels(), and G4GIDI_target::init().

00317                                                                                      {
00318 
00319     return( tpia_target_heated_numberOfChannels( smr, target->baseHeatedTarget ) );
00320 }

int tpia_target_numberOfProductionChannels ( statusMessageReporting *  smr,
tpia_target *  target 
)

Definition at line 324 of file tpia_target.cc.

References tpia_target_heated_numberOfProductionChannels().

Referenced by G4GIDI_target::getNumberOfProductionChannels(), and G4GIDI_target::getProductionChannelIDs().

00324                                                                                                {
00325 
00326     return( tpia_target_heated_numberOfProductionChannels( smr, target->baseHeatedTarget ) );
00327 }

int tpia_target_read ( statusMessageReporting *  smr,
tpia_target *  target,
const char *  fileName 
)

Definition at line 143 of file tpia_target.cc.

References smr_isOk(), smr_setMessageError(), tpia_misc_setMessageError_Element(), tpia_particle_getInternalID(), tpia_target_initialize(), tpia_target_readHeatedTarget(), tpia_target_release(), xData_convertAttributeToDouble(), xData_copyAttributionList(), xData_getAttributesValueInElement(), xData_getDocumentsElement(), xData_getFirstElement(), xData_getNextElement(), xData_parseFree(), xData_parseReadFile(), and xDataMisc_getAbsPath().

Referenced by tpia_target_createRead(), and tpia_target_readFromMap().

00143                                                                                                {
00144 /*
00145 *   If a target has already been read into this target, user must have called tpia_target_release before calling this routine.
00146 *   Otherwise, there will be memory leaks.
00147 */
00148     xData_document *doc;
00149     xData_element *element, *child;
00150     int i, iHeated, nHeated = 0, status = 1;
00151     double temperature;
00152     //fix for gcc4.6 warings 110602
00153     //char *pReturnValue, *name;
00154     char *name;
00155     char const *contents;
00156 
00157     tpia_target_initialize( smr, target );
00158     if( ( target->path = xDataMisc_allocateCopyString2( smr, fileName, "path" ) ) == NULL ) return( status );
00159     if( ( target->absPath = xDataMisc_getAbsPath( smr, fileName ) ) == NULL ) return( _tpia_target_releaseAndReturnOne( smr, target ) );
00160     if( ( doc = xData_parseReadFile( smr, fileName, NULL, NULL ) ) == NULL ) return( _tpia_target_releaseAndReturnOne( smr, target ) );
00161     element = xData_getDocumentsElement( doc );
00162     if( strcmp( element->name, "xTarget" ) != 0 ) {
00163         tpia_misc_setMessageError_Element( smr, NULL, element, __FILE__, __LINE__, 1, "input file's top element must be xTarget and not %s", element->name ); }
00164     else {
00165         //pReturnValue = ( xData_copyAttributionList( smr, &(target->attributes), &(element->attributes) ) ) ? NULL : target->path;
00166         //fix for gcc4.6 warings 110602
00167         xData_copyAttributionList( smr, &(target->attributes),&(element->attributes) );
00168         name = tpia_misc_pointerToAttributeIfAllOk2( smr, element, 1, &(target->attributes), "projectile" );
00169         if( smr_isOk( smr ) ) target->projectileID = tpia_particle_getInternalID( smr, name );
00170         if( smr_isOk( smr ) && ( name = tpia_misc_pointerToAttributeIfAllOk2( smr, element, 1, &(target->attributes), "target" ) ) != NULL ) {
00171             if( smr_isOk( smr ) && ( target->targetID = tpia_particle_getInternalID( smr, name ) ) != NULL ) {
00172                 status = 0;
00173                 for( nHeated = 0, child = xData_getFirstElement( element ); child != NULL; nHeated++, child = xData_getNextElement( child ) ) {
00174                     if( strcmp( child->name, "target" ) != 0 ) {
00175                         tpia_misc_setMessageError_Element( smr, NULL, element, __FILE__, __LINE__, 1, "element can only have target sub-elements%s", 
00176                                 element->name );
00177                         status = 1;
00178                         break;
00179                     }
00180                 }
00181                 if( status == 0 ) {
00182                     //if( ( target->heatedTargets = xData_malloc2( smr, nHeated * sizeof( tpia_target_heated_info ), 1, "heatedTargets" ) ) == NULL ) {
00183                     if( ( target->heatedTargets = (tpia_target_heated_info*) xData_malloc2( smr, nHeated * sizeof( tpia_target_heated_info ), 1, "heatedTargets" ) ) == NULL ) {
00184                         status = 1; }
00185                     else {
00186                         //if( ( target->readHeatedTargets = xData_malloc2( smr, nHeated * sizeof( tpia_target_heated_info * ), 1, "heatedTargets" ) ) == NULL ) 
00187                         if( ( target->readHeatedTargets = (tpia_target_heated_info**) xData_malloc2( smr, nHeated * sizeof( tpia_target_heated_info * ), 1, "heatedTargets" ) ) == NULL ) 
00188                                 status = 1;
00189                     }
00190                     for( nHeated = 0, child = xData_getFirstElement( element ); ( status == 0 ) && ( child != NULL ); 
00191                             nHeated++, child = xData_getNextElement( child ) ) {
00192                         if( ( i = xData_convertAttributeToDouble( smr, child, "temperature", &temperature ) ) != 0 ) {
00193                             if( i > 0 ) smr_setMessageError( smr, NULL, __FILE__, __LINE__, 1, "target does not have a temperature attribute" );
00194                             status = 1;
00195                             break;
00196                         }
00197                         for( iHeated = 0; iHeated < nHeated; iHeated++ ) if( target->heatedTargets[iHeated].temperature > temperature ) break;
00198                         if( iHeated < nHeated ) for( i = nHeated; i >= iHeated; i-- ) target->heatedTargets[i+1] = target->heatedTargets[i];
00199                         target->heatedTargets[iHeated].temperature = temperature;
00200                         target->heatedTargets[iHeated].path = NULL;
00201                         target->heatedTargets[iHeated].contents = NULL;
00202                         target->heatedTargets[iHeated].heatedTarget = NULL;
00203                         if( ( contents = xData_getAttributesValueInElement( child, "contents" ) ) != NULL ) {
00204                             if( ( target->heatedTargets[iHeated].contents = xDataMisc_allocateCopyString2( smr, contents, "contents" ) ) == NULL ) {
00205                                 status = 1;
00206                                 break;
00207                             }
00208                         }
00209                         if( ( contents = xData_getAttributesValueInElement( child, "file" ) ) == NULL ) {
00210                             status = 1;
00211                             break;
00212                         }
00213                         //if((target->heatedTargets[iHeated].path = xData_malloc2(smr, strlen( target->absPath ) + strlen( contents ) + 2, 0, "path")) == NULL) {
00214                         if((target->heatedTargets[iHeated].path = (char*) xData_malloc2(smr, strlen( target->absPath ) + strlen( contents ) + 2, 0, "path")) == NULL) {
00215                             status = 1;
00216                             break;
00217                         }
00218                         strcpy( target->heatedTargets[iHeated].path, target->absPath );
00219                         *strrchr( target->heatedTargets[iHeated].path, '/' ) = 0;
00220                         strcat( target->heatedTargets[iHeated].path, "/" );
00221                         strcat( target->heatedTargets[iHeated].path, contents );
00222                         target->nHeatedTargets++;
00223                     }
00224                 }
00225             }
00226         }
00227     }
00228     xData_parseFree( smr, doc );
00229     if( status == 0 ) {
00230         for( i = 0; i < nHeated; i++ ) target->heatedTargets[i].ordinal = i;
00231         for( i = 0; i < nHeated; i++ ) if( target->heatedTargets[i].contents == NULL ) break;
00232         if( i == nHeated ) i = 0;                                           /* All heated targets are crossSection only. */
00233         if( tpia_target_readHeatedTarget( smr, target, i, 0 ) == 0 ) {
00234             target->baseHeatedTarget = target->heatedTargets[i].heatedTarget; }
00235         else {
00236             tpia_target_release( NULL, target );
00237             status = 1;
00238         } }
00239     else {
00240         tpia_target_release( smr, target );
00241     }
00242     return( status );
00243 }

int tpia_target_readFromMap ( statusMessageReporting *  smr,
tpia_target *  target,
tpia_map *  map,
const char *  evaluation,
const char *  projectileName,
const char *  targetName 
)

Definition at line 82 of file tpia_target.cc.

References tpia_map_findTarget(), and tpia_target_read().

00083                                  {
00084 
00085     char *targetPath;
00086 
00087     if( ( targetPath = tpia_map_findTarget( smr, map, evaluation, projectileName, targetName ) ) == NULL ) return( 1 );
00088     return( tpia_target_read( smr, target, targetPath ) );
00089 }

int tpia_target_readHeatedTarget ( statusMessageReporting *  smr,
tpia_target *  target,
int  index,
int  checkElememtsForAccess 
)

Definition at line 266 of file tpia_target.cc.

References smr_setMessageError(), and tpia_target_heated_createRead().

Referenced by G4GIDI_target::readTemperature(), tpia_target_getHeatedTargetAtIndex_ReadIfNeeded(), and tpia_target_read().

00266                                                                                                                             {
00267 
00268     int i;
00269 
00270     if( ( index < 0 ) || ( index >= target->nHeatedTargets ) ) {
00271         smr_setMessageError( smr, NULL, __FILE__, __LINE__, 1, "temperature index = %d out of range (0 <= index < %d", index, target->nHeatedTargets );
00272         return( -1 );
00273     }
00274     if( target->heatedTargets[index].heatedTarget != NULL ) return( 1 );
00275     target->heatedTargets[index].heatedTarget = tpia_target_heated_createRead( smr, target->heatedTargets[index].path, checkElememtsForAccess );
00276     if( target->heatedTargets[index].heatedTarget != NULL ) {
00277         target->heatedTargets[index].heatedTarget->ordinal = target->heatedTargets[index].ordinal;
00278         for( i = target->nReadHeatedTargets; i > 0; i-- ) {
00279             if( target->readHeatedTargets[i-1]->temperature < target->heatedTargets[index].temperature ) break;
00280             target->readHeatedTargets[i] = target->readHeatedTargets[i-1];
00281         }
00282         target->readHeatedTargets[i] = &(target->heatedTargets[i]);
00283         target->nReadHeatedTargets++;
00284     }
00285     return( ( target->heatedTargets[index].heatedTarget == NULL ? -1 : 0 ) );
00286 }

int tpia_target_release ( statusMessageReporting *  smr,
tpia_target *  target 
)

Definition at line 117 of file tpia_target.cc.

References tpia_target_heated_free(), tpia_target_initialize(), xData_free(), and xData_releaseAttributionList().

Referenced by tpia_target_free(), and tpia_target_read().

00117                                                                             {
00118 
00119     int i;
00120 
00121     //target->path = xData_free( smr, target->path );
00122     target->path = (char*) xData_free( smr, target->path );
00123     //target->absPath = xData_free( smr, target->absPath );
00124     target->absPath = (char*) xData_free( smr, target->absPath );
00125     xData_releaseAttributionList( smr, &(target->attributes) );
00126     for( i = 0; i < target->nHeatedTargets; i++ ) {
00127         //target->heatedTargets[i].path = xData_free( smr, target->heatedTargets[i].path );
00128         target->heatedTargets[i].path = (char*) xData_free( smr, target->heatedTargets[i].path );
00129         //target->heatedTargets[i].contents = xData_free( smr, target->heatedTargets[i].contents );
00130         target->heatedTargets[i].contents = (char*) xData_free( smr, target->heatedTargets[i].contents );
00131             if( target->heatedTargets[i].heatedTarget != NULL ) tpia_target_heated_free( smr, target->heatedTargets[i].heatedTarget );
00132     }
00133     //target->heatedTargets = xData_free( smr, target->heatedTargets );
00134     target->heatedTargets = (tpia_target_heated_info*) xData_free( smr, target->heatedTargets );
00135     //target->readHeatedTargets = xData_free( smr, target->readHeatedTargets );
00136     target->readHeatedTargets = (tpia_target_heated_info**) xData_free( smr, target->readHeatedTargets );
00137     tpia_target_initialize( smr, target );
00138     return( 0 );
00139 }

int tpia_target_sampleIndexChannelProductsAtE ( statusMessageReporting *  smr,
tpia_target *  target,
int  index,
double  ,
tpia_decaySamplingInfo *  decaySamplingInfo,
int  nProductData,
tpia_productOutgoingData *  productData 
)

Definition at line 404 of file tpia_target.cc.

References tpia_target_heated_sampleIndexChannelProductsAtE().

00405                                                                                                              {
00406 
00407     return( tpia_target_heated_sampleIndexChannelProductsAtE( smr, target->baseHeatedTarget, index, decaySamplingInfo,
00408         nProductData, productData ) );
00409 }


Generated on Mon May 27 17:51:16 2013 for Geant4 by  doxygen 1.4.7