36#ifndef tpia_target_h_included
37#define tpia_target_h_included
39#if defined __cplusplus
48#if defined __cplusplus
80#define tpia_mode_MonteCarlo 1
82#define tpia_maxNumberOfFrames 8
83#define tpia_referenceFrame_None 0
84#define tpia_referenceFrame_COM 1
85#define tpia_referenceFrame_lab 2
86#define tpia_referenceFrame_Max tpia_referenceFrame_lab
88#define tpia_crossSectionType_grouped 1
89#define tpia_crossSectionType_pointwise 2
91#define tpia_m_depositionEnergy 1
92#define tpia_m_multiplicity ( 1 << 1 )
93#define tpia_m_decayChannel ( 1 << 2 )
94#define tpia_m_commonShift 3
95#define tpia_m_angular ( 1 << 3 )
96#define tpia_m_formFactor ( 1 << 4 )
97#define tpia_m_Legendre ( 1 << 5 )
98#define tpia_m_angular_energy ( 1 << 6 )
100#define tpia_speedOfLight_cm_sec 2.99792458e10
101#define tpia_AMU2MeV 931.494028
120#define tpia_samplingMethods_isConstant( method ) ( strcmp ( method , "constant" ) == 0 )
121#define tpia_samplingMethods_isLinear( method ) ( strcmp ( method , "linear" ) == 0 )
153 double (*rng)(
void * );
314 const char *targetName );
316 const char *targetName );
329 int crossSectionType );
331 int crossSectionType );
352 int crossSectionType );
354 int crossSectionType );
364 int pointwiseRequired );
368 int pointwiseRequired );
445 double *dTimeScale );
494#if defined __cplusplus
tpia_EqualProbableBinSpectrum * energies
tpia_EqualProbableBinSpectra * ls
tpia_EqualProbableBinSpectra * energies
tpia_angularEnergyBin binned
tpia_EqualProbableBinSpectra binned
xData_attributionList attributes
tpia_1dData availableEnergyGrouped
tpia_target_heated * target
tpia_decayChannel decayChannel
tpia_1dData crossSectionPointwise
tpia_1dData crossSectionGrouped
tpia_data_frame crossSectionFrame
tpia_samplingMethods * samplingMethods
tpia_particle * productID
xData_Int numberOfPointwise
tpi_spectralID * spectralID
tpia_particle * productID
tpia_decayChannel * decayChannel
tpia_multiplicity * multiplicityVsEnergy
tpia_product * parentProduct
tpia_decayChannel decayChannel
tpia_1dData depositionEnergyGrouped
xData_attributionList attributes
tpia_angularEnergy angularEnergy
tpia_multiplicity * delayedNeutronMultiplicityVsEnergy
tpia_particle * productID
const char * angular_equalProbableBinMethod
tpia_target_heated * heatedTarget
xData_attributionList attributes
tpia_1dData totalCrossSectionPointwise
tpia_particle * projectileID
tpia_1dData totalCrossSectionGrouped
tpia_channel ** productionChannels
xData_Int energyGridLength
tpia_particle * projectileID
tpia_samplingMethods samplingMethods
tpia_target_heated_info ** readHeatedTargets
tpia_target_heated * baseHeatedTarget
xData_attributionList attributes
tpia_target_heated_info * heatedTargets
char * tpia_misc_pointerToAttributeIfAllOk(statusMessageReporting *smr, xData_element *element, const char *path, int required, xData_attributionList *attributes, const char *name, const char *file, int line)
struct tpia_target_heated_sorted_s tpia_target_heated_sorted
tpia_product * tpia_channel_getProductByIndex(statusMessageReporting *smr, tpia_channel *channel, int index)
int tpia_target_heated_numberOfChannels(statusMessageReporting *smr, tpia_target_heated *target)
int tpia_multiplicity_release(statusMessageReporting *smr, tpia_multiplicity *multiplicity)
int tpia_product_release(statusMessageReporting *smr, tpia_product *product)
DLL_LEND const char * tpia_productGenre_unknown
int tpia_target_heated_read(statusMessageReporting *smr, tpia_target_heated *target, const char *fileName, int checkElememtsForAccess)
int tpia_kinetics_2BodyReaction(statusMessageReporting *smr, tpia_decayChannel *decayChannel, double K, double mu, double phi, tpia_productOutgoingData *outgoingData)
int tpia_particle_release(statusMessageReporting *smr, tpia_particle *particle)
int tpia_target_heated_numberOfProductionChannels(statusMessageReporting *smr, tpia_target_heated *target)
DLL_LEND const char * tpia_productGenre_NBody_uncorrelate_Legendre
tpia_product * tpia_channel_getFirstProduct(tpia_channel *channel)
tpia_particle * tpia_particle_getInternalID(statusMessageReporting *smr, const char *const name)
tpia_particle * tpia_particle_free(statusMessageReporting *smr, tpia_particle *particle)
int tpia_product_doesDecay(statusMessageReporting *smr, tpia_product *product)
int tpia_particle_initialize(statusMessageReporting *smr, tpia_particle *particle)
int tpia_particle_printInternalSortedList(statusMessageReporting *smr)
tpia_target_heated * tpia_target_getHeatedTargetAtIndex_ReadIfNeeded(statusMessageReporting *smr, tpia_target *target, int index)
double tpia_target_heated_getTotalCrossSectionAtE(statusMessageReporting *smr, tpia_target_heated *target, xData_Int gE, double e_in, int crossSectionType)
int tpia_frame_setFromElement(statusMessageReporting *smr, xData_element *element, int dimension, tpia_data_frame *frame)
tpia_product * tpia_decayChannel_getFirstProduct(tpia_decayChannel *decayChannel)
tpia_product * tpia_product_create(statusMessageReporting *smr)
int tpia_product_numberOfProducts(statusMessageReporting *smr, tpia_product *product)
int tpia_misc_NumberOfZSymbols(void)
int tpia_product_initialize(statusMessageReporting *smr, tpia_product *product)
int tpia_channel_getFromElement(statusMessageReporting *smr, tpia_target_heated *target, xData_element *channelElement, tpia_channel *channel, int pointwiseRequired)
int tpia_target_sampleIndexChannelProductsAtE(statusMessageReporting *smr, tpia_target *target, int index, double T, tpia_decaySamplingInfo *decaySamplingInfo, int nProductData, tpia_productOutgoingData *productData)
int tpia_target_getTemperatures(statusMessageReporting *smr, tpia_target *target, double *temperatures)
double tpia_misc_getPointwiseCrossSectionAtE(statusMessageReporting *smr, tpia_1dData *crossSection, double *energyGrid, xData_Int index, double e_in)
tpia_target * tpia_target_createRead(statusMessageReporting *smr, const char *fileName)
int tpia_frame_getColumn(statusMessageReporting *smr, tpia_data_frame *frame, int column)
DLL_LEND const char * tpia_samplingMethods_constant
int tpia_multiplicity_getTimeScaleFromElement(statusMessageReporting *smr, xData_element *element, const char **timeScale, int *isDelayedNeutrons, double *dTimeScale)
tpia_multiplicity * tpia_multiplicity_createGetFromElement(statusMessageReporting *smr, xData_element *multiplicityElement, int nGroups)
tpia_channel * tpia_channel_free(statusMessageReporting *smr, tpia_channel *channel)
DLL_LEND const char * tpia_productGenre_twoBody_angular
tpia_channel * tpia_channel_create(statusMessageReporting *smr)
double * tpia_misc_get2d_xShared_yHistogram_data(statusMessageReporting *smr, xData_element *element, xData_Int *start, xData_Int *end, xData_Int *length)
int tpia_Legendre_initialize(statusMessageReporting *smr, tpia_Legendre *Legendre)
int tpia_misc_symbolToZ(const char *Z)
int tpia_target_heated_release(statusMessageReporting *smr, tpia_target_heated *target)
DLL_LEND const char * tpia_productGenre_NBody_Legendre
int tpia_target_read(statusMessageReporting *smr, tpia_target *target, const char *fileName)
int tpia_target_numberOfProductionChannels(statusMessageReporting *smr, tpia_target *target)
tpia_multiplicity * tpia_multiplicity_create(statusMessageReporting *smr)
int tpia_angularEnergy_release(statusMessageReporting *smr, tpia_angularEnergy *angularEnergy)
double tpia_target_getIndexChannelCrossSectionAtE(statusMessageReporting *smr, tpia_target *target, int index, double T, xData_Int iEg, double e_in, int crossSectionType)
int tpia_target_readFromMap(statusMessageReporting *smr, tpia_target *target, tpia_map *map, const char *evaluation, const char *projectileName, const char *targetName)
int tpia_product_getDecayChannelFromElement(statusMessageReporting *smr, xData_element *parentElement, tpia_channel *channel, tpia_product *parentProduct, tpia_product **priorProductNext)
double * tpia_misc_get2dxindex_y_data(statusMessageReporting *smr, xData_element *element, xData_Int *start, xData_Int *end, double *xValues)
int tpia_frame_getDimensions(statusMessageReporting *smr, tpia_data_frame *frame)
int tpia_kinetics_COMKineticEnergy2LabEnergyAndMomentum(statusMessageReporting *smr, double beta, double e_kinetic_com, double mu, double phi, double m3cc, double m4cc, tpia_productOutgoingData *outgoingData)
int tpia_angularEnergy_getFromElement(statusMessageReporting *smr, xData_element *angularEnergyElement, tpia_angularEnergy *angularEnergy)
double tpia_misc_drng(double(*rng)(void *), void *rngState)
int tpia_target_initialize(statusMessageReporting *smr, tpia_target *target)
tpia_channel * tpia_target_heated_getChannelAtIndex_smr(statusMessageReporting *smr, tpia_target_heated *target, int index)
tpia_product * tpia_product_getFirstProduct(tpia_product *product)
int tpia_miscNameToZAm(statusMessageReporting *smr, const char *name, int *Z, int *A, int *m)
int tpia_target_numberOfChannels(statusMessageReporting *smr, tpia_target *target)
int tpia_misc_sampleEqualProbableBin(statusMessageReporting *smr, tpia_decaySamplingInfo *decaySamplingInfo, double e_in, int nBins, tpia_EqualProbableBinSpectra *binned, double *value_)
tpia_channel * tpia_channel_createGetFromElement(statusMessageReporting *smr, tpia_target_heated *target, xData_element *channelElement, int pointwiseRequired)
int tpia_frame_setFromString(statusMessageReporting *smr, const char *forItem, const char *value, int dimension, tpia_data_frame *frame)
int tpia_frame_clear(statusMessageReporting *smr, tpia_data_frame *frame)
int tpia_angular_getFromElement(statusMessageReporting *smr, xData_element *angularElement, tpia_angular *angular)
int tpia_target_release(statusMessageReporting *smr, tpia_target *target)
tpia_target * tpia_target_free(statusMessageReporting *smr, tpia_target *target)
tpia_target_heated * tpia_target_heated_createRead(statusMessageReporting *smr, const char *fileName, int checkElememtsForAccess)
double * tpia_misc_get2dx_y_data(statusMessageReporting *smr, xData_element *element, xData_Int *length)
int tpia_channel_release(statusMessageReporting *smr, tpia_channel *channel)
int tpia_samplingMethods_initialize(statusMessageReporting *smr, tpia_samplingMethods *samplingMethods)
int tpia_target_readHeatedTarget(statusMessageReporting *smr, tpia_target *target, int index, int checkElememtsForAccess)
long tpia_product_dataRequired(statusMessageReporting *smr, tpia_product *product)
int tpia_frame_setColumns(statusMessageReporting *smr, tpia_data_frame *frame, int nColumns, int *values)
int tpia_channel_numberOfProducts(statusMessageReporting *smr, tpia_channel *channel)
tpia_product * tpia_product_free(statusMessageReporting *smr, tpia_product *product)
struct tpia_2dData_s tpia_2dData
tpia_multiplicity * tpia_multiplicity_free(statusMessageReporting *smr, tpia_multiplicity *multiplicity)
double tpia_channel_getCrossSectionAtE(statusMessageReporting *smr, tpia_channel *channel, xData_Int iEg, double e_in, int crossSectionType)
xData_Int tpia_target_heated_getEIndex(tpia_target_heated *target, double e_in)
int tpia_misc_get2d_xShared_yHistogram_data_Grouped(statusMessageReporting *smr, xData_element *element, tpia_1dData *group)
int tpia_Legendre_release(statusMessageReporting *smr, tpia_Legendre *Legendre)
int tpia_multiplicity_getFromElement(statusMessageReporting *smr, xData_element *multiplicityElement, tpia_multiplicity *multiplicity, int nGroups)
int tpia_particle_freeInternalList(statusMessageReporting *smr)
xData_Int tpia_target_getEnergyGridAtTIndex(statusMessageReporting *smr, tpia_target *target, int index, double **energyGrid)
char * tpia_frame_toString(statusMessageReporting *smr, const char *fromItem, tpia_data_frame *frame)
double tpia_target_heated_getIndexChannelCrossSectionAtE(statusMessageReporting *smr, tpia_target_heated *target, int index, xData_Int iEg, double e_in, int crossSectionType)
int tpia_decayChannel_sampleProductsAtE(statusMessageReporting *smr, tpia_decayChannel *decayChannel, tpia_decaySamplingInfo *decaySamplingInfo, int nProductData, tpia_productOutgoingData *productData)
int tpia_product_getFromElement(statusMessageReporting *smr, tpia_channel *channel, tpia_product *parentProduct, xData_element *productElement, tpia_product *product)
tpia_channel * tpia_target_heated_getChannelAtIndex(tpia_target_heated *target, int index)
tpia_particle * tpia_particle_create(statusMessageReporting *smr)
tpia_product * tpia_decayChannel_getNextProduct(tpia_product *product)
tpia_target_heated * tpia_target_heated_free(statusMessageReporting *smr, tpia_target_heated *target)
DLL_LEND const char * tpia_samplingMethods_linear
int tpia_Legendre_SampleEp(statusMessageReporting *smr, tpia_Legendre *Legendre, int sampleMu, tpia_decaySamplingInfo *decaySamplingInfo)
tpia_channel * tpia_target_heated_getProductionChannelAtIndex(tpia_target_heated *target, int index)
char * tpia_target_getAttributesValue(statusMessageReporting *smr, tpia_target *target, char const *name)
int tpia_Legendre_getFromElement(statusMessageReporting *smr, xData_element *LegendreElement, tpia_Legendre *Legendre)
int tpia_multiplicity_initialize(statusMessageReporting *smr, tpia_multiplicity *multiplicity)
DLL_LEND const char * tpia_productGenre_NBody_pairProduction
tpia_target * tpia_target_create(statusMessageReporting *smr)
tpia_product * tpia_product_getProductByIndex(statusMessageReporting *smr, tpia_product *product, int index)
tpia_product * tpia_product_createGetFromElement(statusMessageReporting *smr, tpia_channel *channel, tpia_product *parentProduct, xData_element *productElement)
int tpia_angularEnergy_initialize(statusMessageReporting *smr, tpia_angularEnergy *angularEnergy)
int tpia_channel_isProduction(statusMessageReporting *smr, tpia_channel *channel)
int tpia_angularEnergy_SampleEp(statusMessageReporting *smr, tpia_angularEnergy *angularEnergy, tpia_decaySamplingInfo *decaySamplingInfo)
int tpia_frame_setColumn(statusMessageReporting *smr, tpia_data_frame *frame, int column, int value)
const char * tpia_misc_ZToSymbol(int iZ)
int tpia_product_isDataPresent(statusMessageReporting *smr, tpia_product *product, int b_data)
tpia_target_heated * tpia_target_heated_create(statusMessageReporting *smr)
int tpia_angular_SampleMu(statusMessageReporting *smr, tpia_angular *angular, tpia_decaySamplingInfo *decaySamplingInfo)
int tpia_angular_release(statusMessageReporting *smr, tpia_angular *angular)
DLL_LEND const char * tpia_productGenre_twoBody_formFactor
int tpia_target_heated_sampleIndexChannelProductsAtE(statusMessageReporting *smr, tpia_target_heated *target, int index, tpia_decaySamplingInfo *decaySamplingInfo, int nProductData, tpia_productOutgoingData *productData)
int tpia_angular_initialize(statusMessageReporting *smr, tpia_angular *angular)
xData_Int tpia_target_heated_getEnergyGrid(statusMessageReporting *smr, tpia_target_heated *target, double **energyGrid)
double tpia_target_getTotalCrossSectionAtTAndE(statusMessageReporting *smr, tpia_target *target, double T, xData_Int iEg, double e_in, int crossSectionType)
int tpia_target_heated_initialize(statusMessageReporting *smr, tpia_target_heated *target)
DLL_LEND const char * tpia_productGenre_NBody_angular_energy
int tpia_product_sampleMultiplicity(statusMessageReporting *smr, tpia_product *product, double e_in, double r)
tpia_1dData * tpia_target_getTotalCrossSectionAtTIndex(statusMessageReporting *smr, tpia_target *target, int index, int crossSectionType)
tpia_target * tpia_target_createReadFromMap(statusMessageReporting *smr, tpia_map *map, const char *evaluation, const char *projectileName, const char *targetName)
int tpia_channel_initialize(statusMessageReporting *smr, tpia_channel *channel)