#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& _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& _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& _factor,QVector& _output); ///////////////////////////////////////////////////////////////////// // 函数说明:CalcLimitToBoundary 计算限值的边界值 // 参数说明:_ROI_limit :限值 // _cal_coeffs:对应的刻度方程系数 // _output:返回值 // // 返回值: true:正确返回 // fale:错误返回 ////////////////////////////////////////////////////////////////////// static bool CalcLimitToBoundary(QVector& _ROI_limit,QVector& _cal_coeffs,QVector& _output); ///////////////////////////////////////////////////////////////////// // 函数说明:CalcROIctsByBoundary 通过边界值计算感兴趣总计数 // 参数说明:_boundary :边界值 // _output:返回值 // // 返回值: true:正确返回 // fale:错误返回 ////////////////////////////////////////////////////////////////////// static bool CalcROIctsByBoundary(ROIBoundary& _boundary,Histogram& _histogram,QVector& _output); }; #endif