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