93 int index, dataPerEout = 3;
94 double energyInFactor, energyOutFactor;
98 char const *energyFromUnit, *energyToUnit =
"MeV";
101 double productZ = productPOP->
Z, productA = productPOP->
A, productN = productA - productZ;
104 double projectileZ = projectilePOP->
Z, projectileA = projectilePOP->
A, projectileN = projectileA - projectileZ;
106 double targetZ = targetPOP->
Z, targetA = targetPOP->
A, targetN = targetA - targetZ;
107 double Ia = 0., Ib = 0., Ma = -1, mb = -1;
109 if( ( targetA == 0 ) && ( targetZ == 6 ) ) {
118 xDataInfo = &(KalbachMannElement->
xDataInfo);
138 KalbachMann->
massFactor = (double) productZ + productN;
139 KalbachMann->
massFactor /= projectileN + projectileZ + targetZ + targetN - productZ + productN;
142 if( projectileZ == 0 ) {
143 if( projectileN == 1 ) Ma = 1; }
144 else if( projectileZ == 1 ) {
145 if( projectileN == 1 ) {
147 else if( projectileN == 2 ) {
150 else if( projectileZ == 2 ) {
151 if( projectileN == 2 ) {
157 if( productZ == 0 ) {
158 if( productN == 1 ) mb = 0.5; }
159 else if( productZ == 1 ) {
160 if( productN == 1 ) {
162 else if( productN == 2 ) {
165 else if( productN == 3 ) {
168 else if( productZ == 2 ) {
169 if( productN == 1 ) {
172 else if( productN == 2 ) {
178 KalbachMann->
Ma = Ma;
179 KalbachMann->
mb = mb;
183 targetZ + projectileZ, targetN + projectileN, Ib );
192 energyInFactor, energyOutFactor, KalbachMann ) )
goto err;
MCGIDI_pdfsOfXGivenW dists
char const * xDataTOM_axes_getUnit(statusMessageReporting *smr, xDataTOM_axes *axes, int index)
MCGIDI_POP * MCGIDI_target_heated_getPOPForTarget(statusMessageReporting *smr, MCGIDI_target_heated *target)
xDataTOM_KalbachMannCoefficients * coefficients
MCGIDI_target_heated * MCGIDI_product_getTargetHeated(statusMessageReporting *smr, MCGIDI_product *product)
int MCGIDI_fromTOM_interpolation(statusMessageReporting *smr, xDataTOM_element *element, int index, enum ptwXY_interpolation_e *interpolation)
MCGIDI_KalbachMann * MCGIDI_KalbachMann_free(statusMessageReporting *smr, MCGIDI_KalbachMann *KalbachMann)
MCGIDI_KalbachMann * MCGIDI_KalbachMann_new(statusMessageReporting *smr, ptwXY_interpolation interpolationWY, ptwXY_interpolation interpolationXY)
xDataTOM_element * xDataTOME_getOneElementByName(statusMessageReporting *smr, xDataTOM_element *element, char const *name, int required)
#define smr_malloc2(smr, size, zero, forItem)
int smr_isOk(statusMessageReporting *smr)
enum ptwXY_interpolation_e ptwXY_interpolation
MCGIDI_KalbachMann_ras * ras
enum MCGIDI_distributionType type
enum xDataTOM_frame frame
MCGIDI_KalbachMann * KalbachMann
static double MCGIDI_KalbachMann_S_a_or_b(double Z_AB, double N_AB, double Z_C, double N_C, double I_ab)
enum xDataTOM_frame MCGIDI_misc_getProductFrame(statusMessageReporting *smr, xDataTOM_element *frameElement)
double MCGIDI_misc_getUnitConversionFactor(statusMessageReporting *smr, char const *fromUnit, char const *toUnit)
MCGIDI_POP * MCGIDI_target_heated_getPOPForProjectile(statusMessageReporting *smr, MCGIDI_target_heated *target)
xDataTOM_xDataInfo xDataInfo
static int MCGIDI_KalbachMann_parseFromTOM2(statusMessageReporting *smr, int dataPerEout, int index, xDataTOM_KalbachMannCoefficients *coefficientsXData, double energyInFactor, double energyOutFactor, MCGIDI_KalbachMann *KalbachMann)
enum xDataTOM_KalbachMannType type