修改如果gamma谱没有识别出对应的核素,只计算MDC值

This commit is contained in:
duwenyuan 2025-07-15 16:07:35 +08:00
parent 03eaf574e0
commit 84cb8e45a1

View File

@ -46,6 +46,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 解析 #histogram块数据
*
* @param phdPath 文件地址
* @return
*/
@ -109,6 +110,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 统计道值范围内数量
*
* @param startChannel 起始道值
* @param endChannel 结束道值
* @param betaChannels 行数
@ -183,6 +185,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 调用dll解析phd文件dll不解析histogram块数据
*
* @param filePathName 文件地址
* @return
*/
@ -280,8 +283,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
if (i < 0 || i >= e_size) break;
double y1, y0, x1, x0;
if(i < e_size - 1)
{
if (i < e_size - 1) {
y1 = Double.valueOf(NumberFormatUtil.numberFormat(String.valueOf(m_curParam.getP().get(i * 2 + 3))));
y0 = Double.valueOf(NumberFormatUtil.numberFormat(String.valueOf(m_curParam.getP().get(i * 2 + 1))));
x1 = Double.valueOf(NumberFormatUtil.numberFormat(String.valueOf(m_curParam.getP().get(i * 2 + 2))));
@ -346,6 +348,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 根据DLL解析GammaPHD内容 得到PHDFile实体
*
* @param struct dll解析后的实体
* @param fileName 文件名称
* @param pathName 路径
@ -551,6 +554,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 根据ROI卡出来的Gamma数据生成新的GammaPHD文件
*
* @param pathName 文件存储路径
* @param fileName GammaPHD名称
* @param struct BetaPHD内容
@ -628,6 +632,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 数据格式化
*
* @param aList 第一列数据
* @param bList 第二列数据
* @param cList 第三列数据
@ -727,6 +732,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* beta分析
*
* @param nuclideMap 核素参数
* @param POI_G_y1 limit gamma
* @param POI_G_y2 limit gamma
@ -761,15 +767,25 @@ public class SelfBaseUtil extends AbstractLogOrReport {
xeData.setColor("green");
xeData.setNidFlag(1);
}
HashMap<String, Object> param = (HashMap<String, Object>) nuclideParam.get(xeData.getNuclideName());
// 如果gamma谱没有识别出对应的核素 nidFlag则置为0
if (xeData.getNidFlag() == 1) {
HashMap<String, Object> param = (HashMap<String, Object>) nuclideParam.get(xeData.getNuclideName());
xeData.setNidFlag((boolean) param.get("exist") ? 1 : 0);
}
if ((boolean) param.get("exist")) {
xeData.setMdc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMdc()))));
xeData.setConc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConc()))));
xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr()))));
xeData.setMda(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMda()))));
xeData.setRoiOrPeakFit("P");
}
else {
xeData.setMdc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMdc()))));
xeData.setConc(0.0);
xeData.setConcErr(0.0);
xeData.setRoiOrPeakFit("R");
}
}
}
}
@ -778,6 +794,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 获取
*
* @param xeResultsList
* @return
*/
@ -807,6 +824,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 获取结算结果需要的参数峰面积半衰期发射几率
*
* @param gStart RoiLimit Gamma Start
* @param gStop RoiLimit Gamma Stop
*/
@ -840,7 +858,6 @@ public class SelfBaseUtil extends AbstractLogOrReport {
// 发射几率
nuclideParam.put("yield", nuclideMap.get(nuclideName).getYield().toString());
// 半衰期
nuclideParam.put("halflife", nuclideMap.get(nuclideName).getHalflife().toString());
// baseline 计数这里使用的energy是固定的 从配置文件中取出
nuclideParam.put("lcConst", "2.33");
@ -870,6 +887,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
switch (nuclideName) {
case "Xe131M":
phd = phdFiles[0];
fwhm = 0.2;
// fwhm = getFwhm(phd.getMapResoPara().get(phd.getUsedReso()),
// nuclideMap.get(nuclideName).getEnergy()) * 1.25;
// left = 29.7 - fwhm;
@ -877,25 +895,28 @@ public class SelfBaseUtil extends AbstractLogOrReport {
break;
case "Xe133M":
phd = phdFiles[1];
fwhm = 0.2;
// fwhm = getFwhm(phd.getMapResoPara().get(phd.getUsedReso()), nuclideMap.get(nuclideName).getEnergy());
// left = 29.7 - fwhm;
// right = 29.7 + fwhm;
break;
case "Xe133":
phd = phdFiles[2];
fwhm = 0.5;
// fwhm = getFwhm(phd.getMapResoPara().get(phd.getUsedReso()), nuclideMap.get(nuclideName).getEnergy());
// left = 81 - fwhm;
// right = 81 + fwhm;
break;
case "Xe135":
phd = phdFiles[3];
fwhm = 0.5;
// left = 249.8 - fwhm;
// right = 249.8 + fwhm;
break;
}
energy = nuclideMap.get(nuclideName).getEnergy();
counts = phd.getSpec().getCounts();
fwhm = getFwhm(phd.getMapResoPara().get(phd.getUsedReso()), energy) * 1.25;
//fwhm = getFwhm(phd.getMapResoPara().get(phd.getUsedReso()), energy) * 1.25;
// 能量转化为道址
// 能量转化道址公式参数
@ -931,6 +952,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 得到 baseline计数
*
* @param phd PHDFile
* @param nuclideName 核素名称
* @param energy 能量
@ -987,6 +1009,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
/**
* 自建台站beta报告
*
* @param sampleId
* @param sampleStruct sample
* @param qcStruct qc
@ -1013,6 +1036,7 @@ public class SelfBaseUtil extends AbstractLogOrReport {
return reportContent.toString();
}
public static void createReport(Integer sampleId, String finalReportPath, EnergySpectrumStruct sampleStruct,
EnergySpectrumStruct qcStruct, List<GardsXeResultsSpectrum> selfXeResults) {
getReport(sampleId, sampleStruct, qcStruct, selfXeResults);