AnalysisSystemForRadionucli.../ROI.h
2024-06-04 15:27:02 +08:00

92 lines
4.8 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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