38 #include <tpia_target.h> 
   39 #include <tpia_misc.h> 
   41 #if defined __cplusplus 
   52     tpia_channel *channel;
 
   55     if( ( channel = (tpia_channel*) xData_malloc2( smr, 
sizeof( tpia_channel ), 0, 
"channel" ) ) == NULL ) 
return( NULL );
 
   65     memset( channel, 0, 
sizeof( tpia_channel ) );
 
   72     int pointwiseRequired ) {
 
   74     tpia_channel *channel;
 
   94     tpia_product *product, *nextProduct;
 
   98     channel->crossSectionPointwise.data = (
double*) 
xData_free( smr, channel->crossSectionPointwise.data );
 
  100     channel->crossSectionGrouped.data = (
double*) 
xData_free( smr, channel->crossSectionGrouped.data );
 
  102     channel->availableEnergyGrouped.data = (
double*) 
xData_free( smr, channel->availableEnergyGrouped.data );
 
  103     for( product = channel->decayChannel.products; product != NULL; product = nextProduct ) {
 
  104         nextProduct = product->next;
 
  107     channel->decayChannel.numberOfProducts = 0;
 
  108     channel->decayChannel.products = NULL;
 
  115     int pointwiseRequired ) {
 
  119     xData_element *element, *pElement, *gElement, *eElement;
 
  122     channel->target = target;
 
  124     channel->outputChannel = tpia_misc_pointerToAttributeIfAllOk2(smr, channelElement, 1, &(channel->attributes), 
"outputChannel" );
 
  125     channel->genre = tpia_misc_pointerToAttributeIfAllOk2( smr, channelElement, 1, &(channel->attributes), 
"genre" );
 
  126     channel->QString = tpia_misc_pointerToAttributeIfAllOk2( smr, channelElement, 1, &(channel->attributes), 
"Q" );
 
  127     channel->fission = tpia_misc_pointerToAttributeIfAllOk2( smr, channelElement, 0, &(channel->attributes), 
"fission" );
 
  137         channel->QIsFloat = 1;
 
  138         channel->Q = strtod( channel->QString, &p );      
 
  140             channel->QIsFloat = 0;
 
  150                         &(channel->crossSectionPointwise.start), &(channel->crossSectionPointwise.end), target->energyGrid );
 
  155                 if( ( channel->crossSectionGrouped.data != NULL ) && ( ( channel->crossSectionPointwise.data != NULL ) || !pointwiseRequired ) ) {
 
  156                     if( target->contents == NULL ) {                
 
  198     if( index < 0 ) 
return( NULL );
 
  208     return( channel->decayChannel.numberOfProducts );
 
  216     return( strcmp( channel->genre, 
"production" ) == 0 );
 
  223         int crossSectionType ) {
 
  227     if( crossSectionType == tpia_crossSectionType_grouped ) {
 
  229     else if( crossSectionType == tpia_crossSectionType_pointwise ) {
 
xData_Int xData_convertAttributeTo_xData_Int(statusMessageReporting *smr, xData_element *element, const char *name, xData_Int *n)
 
xData_element * xData_getOneElementByTagName(statusMessageReporting *smr, xData_element *element, char *name, int required)
 
tpia_product * tpia_product_free(statusMessageReporting *smr, tpia_product *product)
 
int xData_addToAccessed(statusMessageReporting *, xData_element *element, int increment)
 
int tpia_misc_get2d_xShared_yHistogram_data_Grouped(statusMessageReporting *smr, xData_element *element, tpia_1dData *group)
 
int tpia_product_getDecayChannelFromElement(statusMessageReporting *smr, xData_element *parentElement, tpia_channel *channel, tpia_product *parentProduct, tpia_product **priorProductNext)
 
tpia_product * tpia_decayChannel_getNextProduct(tpia_product *product)
 
xData_Int tpia_target_heated_getEIndex(tpia_target_heated *target, double e_in)
 
int tpia_channel_numberOfProducts(statusMessageReporting *, tpia_channel *channel)
 
int tpia_channel_getFromElement(statusMessageReporting *smr, tpia_target_heated *target, xData_element *channelElement, tpia_channel *channel, int pointwiseRequired)
 
tpia_product * tpia_channel_getProductByIndex(statusMessageReporting *, tpia_channel *channel, int index)
 
int tpia_channel_initialize(statusMessageReporting *, tpia_channel *channel)
 
int smr_isOk(statusMessageReporting *smr)
 
tpia_channel * tpia_channel_createGetFromElement(statusMessageReporting *smr, tpia_target_heated *target, xData_element *channelElement, int pointwiseRequired)
 
int tpia_frame_setFromElement(statusMessageReporting *smr, xData_element *element, int dimension, tpia_data_frame *frame)
 
int xData_releaseAttributionList(statusMessageReporting *smr, xData_attributionList *attributes)
 
tpia_channel * tpia_channel_free(statusMessageReporting *smr, tpia_channel *channel)
 
int tpia_channel_release(statusMessageReporting *smr, tpia_channel *channel)
 
void * xData_free(statusMessageReporting *, void *p)
 
double * tpia_misc_get2dxindex_y_data(statusMessageReporting *smr, xData_element *element, xData_Int *start, xData_Int *end, double *xValues)
 
int xData_copyAttributionList(statusMessageReporting *smr, xData_attributionList *dest, xData_attributionList *src)
 
double tpia_channel_getCrossSectionAtE(statusMessageReporting *smr, tpia_channel *channel, xData_Int, double e_in, int crossSectionType)
 
double tpia_misc_getPointwiseCrossSectionAtE(statusMessageReporting *, tpia_1dData *crossSection, double *energyGrid, xData_Int index, double e_in)
 
int tpia_channel_isProduction(statusMessageReporting *, tpia_channel *channel)
 
tpia_channel * tpia_channel_create(statusMessageReporting *smr)
 
tpia_product * tpia_decayChannel_getFirstProduct(tpia_decayChannel *decayChannel)
 
tpia_product * tpia_channel_getFirstProduct(tpia_channel *channel)
 
static int _tpia_channel_getProductData(statusMessageReporting *smr, xData_element *channelElement, tpia_channel *channel)