AnalysisSystemForRadionucli.../ROI.h

92 lines
4.8 KiB
C
Raw Normal View History

2024-06-04 15:27:02 +08:00
#ifndef ROI_H
#define ROI_H
////////////////////////////////////////////////////////////////////////
// 类说明:此类为: 感兴趣区总计数 扣除探测器本底计数 净计数计算
//
// 注意事项:探测器本底计数 净计数有填充0的情况
// ExtractROIcts 提取感兴趣区总计数 用到了2poly拟合方程 如果用高斯拟合的话需要扩展函数
//
////////////////////////////////////////////////////////////////////////
#include "ROIDef.h"
class CROI
{
public:
/////////////////////////////////////////////////////////////////////
// 函数说明ExtractROIcts 提取感兴趣区总计数
// 参数说明ROIctsI :输入参数 请查看结构说明
// ROIctsO :输出 请查看结构说明
//
// 返回值: true:正确返回
// fale:错误返回
//////////////////////////////////////////////////////////////////////
static bool ExtractROIcts(ROIctsI& _input,ROIctsO& _output);
/////////////////////////////////////////////////////////////////////
// 函数说明CalcNetXects 扣除探测器本底谱的样品谱或气体谱ROI计数
// 参数说明NetXectsI : 输入参数,请查看结构说明
// _output [n..0] 计数 [n..1]计数偏差 [n..2]感兴趣区关键水平 [0-2]=0;
// the ROIs are numbered from one, so the first three
// positions are filled with zeroes.
//
// 返回值: true:正确返回
// fale:错误返回
//////////////////////////////////////////////////////////////////////
static bool CalcNetXects(NetXectsI& _input,QVector<double>& _output);
/////////////////////////////////////////////////////////////////////
// 函数说明CalcNetCounts 净计数计数
// 参数说明NetCountsI : 请查看结构说明
// _output: [n..0]净计数 [n..1]净计数偏差 [n..2]0信号偏差 [0-5]=0
// The array is indexed from zero to the maximum ROI
// number, and the ROIs analysed are numbered from two
// (Rn is not analysed), so the first 2 x 3 positions are
// filled with zeroes.
// 返回值: true:正确返回
// fale:错误返回
//////////////////////////////////////////////////////////////////////
static bool CalcNetCounts(NetCountsI& _net_counts,QVector<double>& _output);
private:
/////////////////////////////////////////////////////////////////////
// 函数说明CalcF 同位素计算
// 参数说明SGTime 样品普 气体本地谱时间参数
// _Xe 同位素常量值
// _output 返回值
// 返回值: true:正确返回
// fale:错误返回
//////////////////////////////////////////////////////////////////////
static bool CalcF(SGTime& _time,double _Xe,double& _output);
/////////////////////////////////////////////////////////////////////
// 函数说明CalcNetCounts 净计数计数
// 参数说明NetCountsI : 请查看结构说明
// _output: [n..0]净计数 [n..1]净计数偏差 [n..2]0信号偏差 [0-5]=0
// The array is indexed from zero to the maximum ROI
// number, and the ROIs analysed are numbered from two
// (Rn is not analysed), so the first 2 x 3 positions are
// filled with zeroes.
// _factor:系数
// 返回值: true:正确返回
// fale:错误返回
//////////////////////////////////////////////////////////////////////
static bool CalcNetCountsByFactor(NetCountsI& _net_counts,QVector<double>& _factor,QVector<double>& _output);
/////////////////////////////////////////////////////////////////////
// 函数说明CalcLimitToBoundary 计算限值的边界值
// 参数说明_ROI_limit :限值
// _cal_coeffs对应的刻度方程系数
// _output:返回值
//
// 返回值: true:正确返回
// fale:错误返回
//////////////////////////////////////////////////////////////////////
static bool CalcLimitToBoundary(QVector<double>& _ROI_limit,QVector<double>& _cal_coeffs,QVector<int>& _output);
/////////////////////////////////////////////////////////////////////
// 函数说明CalcROIctsByBoundary 通过边界值计算感兴趣总计数
// 参数说明_boundary :边界值
// _output:返回值
//
// 返回值: true:正确返回
// fale:错误返回
//////////////////////////////////////////////////////////////////////
static bool CalcROIctsByBoundary(ROIBoundary& _boundary,Histogram& _histogram,QVector<double>& _output);
};
#endif