92 lines
4.8 KiB
C++
92 lines
4.8 KiB
C++
#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
|