15#if defined __cplusplus
100 char const *name, *version, *temperatureStr;
103 double crossSectionInit[4] = { 0., 0., 0., 0., };
106int subtag1_Notice = 0;
116 if( strcmp( version,
"GND 1.3" ) != 0 ) {
121 if( strcmp( element->
name,
"reactionSuite" ) != 0 ) {
128 if( MCGIDI_target_heated_parsePOPs( smr, target, particles, particleAliases ) != 0 )
goto err;
132 while( isspace( *e1 ) ) ++e1;
152 if( strcmp( child->
name,
"particles" ) == 0 )
continue;
153 if( strcmp( child->
name,
"styles" ) == 0 )
continue;
154 if( strcmp( child->
name,
"documentations" ) == 0 )
continue;
155 if( strcmp( child->
name,
"resonances" ) == 0 )
continue;
156 if( strcmp( child->
name,
"summedReaction" ) == 0 )
continue;
157 if( strcmp( child->
name,
"fissionComponent" ) == 0 )
continue;
158 if( strcmp( child->
name,
"reaction" ) == 0 ) {
162 if( MCGIDI_target_heated_parseReaction( smr, child, target, &(target->
pops), reaction ) )
goto err;
164 if( ir == 0 ) { target->
EMin = EMin; target->
EMax = EMax; }
165 if( EMin < target->EMin ) target->
EMin = EMin;
166 if( EMax > target->
EMax ) target->
EMax = EMax;
167 for( transportabilitiesMap::const_iterator iter = reaction->
transportabilities->begin( );
172 else if( strcmp( child->
name,
"production" ) == 0 ) {
174 else if( strcmp( child->
name,
"aliases" ) == 0 ) {
176 else if( strcmp( child->
name,
"partialGammaProduction" ) == 0 ) {
177 if( subtag1_Notice == 0 ) printf(
"Unsupported reactionSuite sub-tag = '%s'\n", child->
name );
180 printf(
"Unsupported reactionSuite sub-tag = '%s'\n", child->
name );
183 crossSectionInit[0] = target->
EMin;
184 crossSectionInit[2] = target->
EMax;
221 if( strcmp( child->
name,
"particle" ) ) {
225 if( MCGIDI_target_heated_parseParticle( smr, target, child, particleAliases ) )
goto err;
263 int globalParticle = 1;
264 char const *
name = NULL, *mass = NULL;
281 if( strcmp( child->
name,
"level" ) ) {
285 if( MCGIDI_target_heated_parseParticleLevel( smr, target, child, pop, mass_MeV, particleAliases ) )
goto err;
299 int globalParticle = 0;
300 char const *
name, *level, *aliasValue;
301 double level_MeV = 0.;
319 if( strcmp( aliasValue, name ) == 0 ) globalParticle = 1;
323 return( MCGIDI_target_heated_parseParticleGammas( smr, target, element, name ) );
337 char const *finalLevelString;
341 if( strcmp( child->
name,
"gamma" ) ) {
347 if( gammaCounts > 0 ) {
403 if( ( index >= 0 ) && ( index < target->numberOfReactions ) )
return( &(target->
reactions[index]) );
413 if( reaction == NULL ) {
422MCGIDI_channel *MCGIDI_target_heated_getProductionReactionAtIndex(
MCGIDI_target_heated *target,
int index ) {
424 MCGIDI_channel *channel = NULL;
426 if( ( index >= 0 ) && ( index < target->nProductionReactions ) ) channel = target->productionReactions[index];
469 if( e_in < target->EMin ) e_in = target->
EMin;
470 if( e_in > target->
EMax ) e_in = target->
EMax;
482 if( xSecP != NULL ) {
514 if( reaction == NULL )
return( -1 );
524 if( reaction == NULL )
return( -1 );
525 return( reaction->
EMin );
534 if( reaction == NULL )
return( -1 );
535 *EMin = reaction->
EMin;
536 *EMax = reaction->
EMax;
547 if( reaction == NULL )
return( 0. );
567 if( projectileSettings == NULL ) {
576 if( ( totalGroupedCrossSection =
ptwX_createLine( numberOfGroups, numberOfGroups, 0, 0, &status_nf ) ) == NULL ) {
604 totalGroupedCrossSection = NULL;
614#if defined __cplusplus
MCGIDI_reaction * MCGIDI_target_heated_getReactionAtIndex(MCGIDI_target_heated *target, int index)
int MCGIDI_target_heated_numberOfReactions(statusMessageReporting *smr, MCGIDI_target_heated *target)
int MCGIDI_target_heated_initialize(statusMessageReporting *smr, MCGIDI_target_heated *target)
MCGIDI_reaction * MCGIDI_target_heated_getReactionAtIndex_smr(statusMessageReporting *smr, MCGIDI_target_heated *target, int index)
MCGIDI_POP * MCGIDI_POPs_addParticleIfNeeded(statusMessageReporting *smr, MCGIDI_POPs *pops, char const *name, double mass_MeV, double level_MeV, MCGIDI_POP *parent, int globalParticle)
double MCGIDI_target_heated_getIndexReactionFinalQ(statusMessageReporting *smr, MCGIDI_target_heated *target, int index, MCGIDI_quantitiesLookupModes &modes)
std::map< int, enum GIDI::MCGIDI_transportability > transportabilitiesMap
MCGIDI_POP * MCGIDI_target_heated_getPOPForProjectile(statusMessageReporting *smr, MCGIDI_target_heated *target)
int MCGIDI_target_heated_getReactionsDomain(statusMessageReporting *smr, MCGIDI_target_heated *target, int index, double *EMin, double *EMax)
MCGIDI_POP * MCGIDI_POPs_findParticle(MCGIDI_POPs *pops, char const *name)
MCGIDI_POP * MCGIDI_target_heated_getPOPForTarget(statusMessageReporting *smr, MCGIDI_target_heated *target)
int MCGIDI_misc_PQUStringToDouble(statusMessageReporting *smr, char const *str, char const *unit, double conversion, double *value)
int MCGIDI_target_heated_recast(statusMessageReporting *smr, MCGIDI_target_heated *target, GIDI_settings &settings)
double MCGIDI_target_heated_getIndexReactionCrossSectionAtE(statusMessageReporting *smr, MCGIDI_target_heated *target, int index, MCGIDI_quantitiesLookupModes &modes, bool sampling)
int MCGIDI_reaction_recast(statusMessageReporting *smr, MCGIDI_reaction *reaction, GIDI_settings &settings, GIDI_settings_particle const *projectileSettings, double temperature_MeV, ptwXPoints *totalGroupedCrossSection)
double MCGIDI_target_heated_getTotalCrossSectionAtE(statusMessageReporting *smr, MCGIDI_target_heated *target, MCGIDI_quantitiesLookupModes &modes, bool sampling)
int MCGIDI_target_heated_sampleIndexReactionProductsAtE(statusMessageReporting *smr, MCGIDI_target_heated *target, int index, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo, MCGIDI_sampledProductsDatas *productData)
MCGIDI_target_heated * MCGIDI_target_heated_free(statusMessageReporting *smr, MCGIDI_target_heated *target)
void MCGIDI_misc_updateTransportabilitiesMap(transportabilitiesMap *transportabilities, int PoPID, enum MCGIDI_transportability transportability)
int MCGIDI_target_heated_release(statusMessageReporting *smr, MCGIDI_target_heated *target)
double MCGIDI_target_heated_getReactionsThreshold(statusMessageReporting *smr, MCGIDI_target_heated *target, int index)
@ MCGIDI_quantityLookupMode_pointwise
@ MCGIDI_quantityLookupMode_grouped
int MCGIDI_POPs_initial(statusMessageReporting *smr, MCGIDI_POPs *pops, int size)
int MCGIDI_reaction_fixDomains(statusMessageReporting *smr, MCGIDI_reaction *reaction, double EMin, double EMax, nfu_status *status)
int MCGIDI_misc_PQUStringToDoubleInUnitOf(statusMessageReporting *smr, char const *str, char const *toUnit, double *value)
double MCGIDI_target_heated_getTargetMass_MeV(statusMessageReporting *smr, MCGIDI_target_heated *target)
int MCGIDI_reaction_getDomain(statusMessageReporting *smr, MCGIDI_reaction *reaction, double *EMin, double *EMax)
int MCGIDI_reaction_parseFromTOM(statusMessageReporting *smr, xDataTOM_element *element, MCGIDI_target_heated *target, MCGIDI_POPs *pops, MCGIDI_reaction *reaction)
int MCGIDI_target_heated_numberOfProductionReactions(statusMessageReporting *smr, MCGIDI_target_heated *target)
int MCGIDI_outputChannel_sampleProductsAtE(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo, MCGIDI_sampledProductsDatas *productDatas, double *masses)
transportabilitiesMap const * MCGIDI_target_heated_getUniqueProducts(statusMessageReporting *smr, MCGIDI_target_heated *target)
double MCGIDI_reaction_getFinalQ(statusMessageReporting *smr, MCGIDI_reaction *reaction, MCGIDI_quantitiesLookupModes &modes)
int MCGIDI_POPs_release(MCGIDI_POPs *pops)
double MCGIDI_POP_getMass_MeV(MCGIDI_POP *pop)
double MCGIDI_reaction_getCrossSectionAtE(statusMessageReporting *smr, MCGIDI_reaction *reaction, MCGIDI_quantitiesLookupModes &modes, bool sampling)
MCGIDI_target_heated * MCGIDI_target_heated_new(statusMessageReporting *smr)
double MCGIDI_target_heated_getProjectileMass_MeV(statusMessageReporting *smr, MCGIDI_target_heated *target)
MCGIDI_target_heated * MCGIDI_target_heated_newRead(statusMessageReporting *smr, const char *fileName)
int MCGIDI_reaction_release(statusMessageReporting *smr, MCGIDI_reaction *reaction)
int MCGIDI_target_heated_read(statusMessageReporting *smr, MCGIDI_target_heated *target, const char *fileName)
#define MCGIDI_misc_pointerToTOMAttributeIfAllOk3(smr, path, required, attributes, name)
double MCGIDI_misc_getUnitConversionFactor(statusMessageReporting *smr, char const *fromUnit, char const *toUnit)
bool isEnergyMode_grouped(void) const
int getNumberOfGroups(void) const
GIDI_settings_particle const * getParticle(int PoPId) const
int getGroupIndex(void) const
enum MCGIDI_quantityLookupMode getCrossSectionMode(void) const
double getProjectileEnergy(void) const
const char * name(G4int ptype)
enum nfu_status_e nfu_status
const char * nfu_statusMessage(nfu_status status)
nfu_status ptwXY_getValueAtX(ptwXYPoints *ptwXY, double x, double *y)
@ ptwXY_interpolationLinLin
ptwXYPoints * ptwXY_create(ptwXY_interpolation interpolation, ptwXY_interpolationOtherInfo const *interpolationOtherInfo, double biSectionMax, double accuracy, int64_t primarySize, int64_t secondarySize, int64_t length, double const *xy, nfu_status *status, int userFlag)
ptwXYPoints * ptwXY_free(ptwXYPoints *ptwXY)
ptwXYPoints * ptwXY_add_ptwXY(ptwXYPoints *ptwXY1, ptwXYPoints *ptwXY2, nfu_status *status)
double * ptwX_getPointAtIndex(ptwXPoints *ptwX, int64_t index)
ptwXPoints * ptwX_createLine(int64_t size, int64_t length, double slope, double offset, nfu_status *status)
double ptwX_getPointAtIndex_Unsafely(ptwXPoints *ptwX, int64_t index)
ptwXPoints * ptwX_clone(ptwXPoints *ptwX, nfu_status *status)
nfu_status ptwX_setPointAtIndex(ptwXPoints *ptwX, int64_t index, double x)
ptwXPoints * ptwX_free(ptwXPoints *ptwX)
int64_t ptwX_length(ptwXPoints *ptwX)
#define smr_setReportError2(smr, libraryID, code, fmt,...)
#define smr_setReportError2p(smr, libraryID, code, fmt)
#define smr_allocateCopyString2(smr, s, forItem)
void * smr_freeMemory(void **p)
int smr_isOk(statusMessageReporting *smr)
#define smr_malloc2(smr, size, zero, forItem)
MCGIDI_GammaBranching * gammas
transportabilitiesMap * transportabilities
double thresholdGroupedDeltaCrossSection
MCGIDI_outputChannel outputChannel
ptwXYPoints * crossSection
MCGIDI_POP * projectilePOP
ptwXYPoints * crossSection
xDataTOM_attributionList attributes
ptwXPoints * crossSectionGrouped
ptwXPoints * crossSectionGroupedForSampling
MCGIDI_reaction * reactions
transportabilitiesMap * transportabilities
xDataTOM_attributionList attributes
int xDataTOM_numberOfElementsByName(statusMessageReporting *smr, xDataTOM_element *element, char const *name)
xDataTOM_element * xDataTOME_getOneElementByName(statusMessageReporting *smr, xDataTOM_element *element, char const *name, int required)
xDataTOM_TOM * xDataTOM_importFile(statusMessageReporting *smr, const char *fileName)
void * xDataTOM_freeTOM(statusMessageReporting *smr, xDataTOM_TOM **TOM)
xDataTOM_element * xDataTOME_getNextElement(xDataTOM_element *element)
char const * xDataTOM_getAttributesValueInElement(xDataTOM_element *element, char const *name)
xDataTOM_element * xDataTOM_getDocumentsElement(xDataTOM_TOM *TOM)
xDataTOM_element * xDataTOME_getFirstElement(xDataTOM_element *element)
int xDataTOME_convertAttributeToDouble(statusMessageReporting *smr, xDataTOM_element *element, char const *name, double *d)
int xDataTOMAL_copyAttributionList(statusMessageReporting *smr, xDataTOM_attributionList *desc, xDataTOM_attributionList *src)
void xDataTOMAL_release(xDataTOM_attributionList *attributes)
char * xDataTOMMisc_getAbsPath(statusMessageReporting *smr, const char *fileName)