AnalysisSystemForRadionucli.../ROIDef.h

74 lines
2.8 KiB
C
Raw Permalink Normal View History

2024-06-04 15:27:02 +08:00
#ifndef ROI_DEFINE_H
#define ROI_DEFINE_H
#include <QVector>
#include <QString>
//感应区限值结构
/*typedef struct tagROILimit
{
QVector<double> ROI_B_start_x1;// ROI B-rang start,x1(keV)
QVector<double> ROI_B_stop_x2; // ROI B_rang stop,x2(kev)
QVector<double> ROI_G_start_y1;// ROI G-rang start,y1(keV)
QVector<double> ROI_G_stop_y2; // ROI G_rang stop,y2(kev)
}*pROILimit,ROILimit;
*/
//感兴趣区 边界值
typedef struct tagROIBoundary
{
QVector<int> ROI_B_start_x;
QVector<int> ROI_B_stop_x;
QVector<int> ROI_G_start_y;
QVector<int> ROI_G_stop_y;
}*pROIBoundary,ROIBoundary;
typedef struct tagHistogram
{
long b_channels; // β-channels
long g_channels; // γ-channels
QVector<long long> counts; // counts at channels
}*pHistogram,Histogram;
//计算感兴趣计数时需要传入数据的结构
typedef struct tagROIctsI
{
ROIBoundary roi_boundary;
Histogram histogram;
}*pROIctsI,ROIctsI;
//感兴趣区计数返回值结构
//感兴趣区计数返回值
typedef struct tagROIctsO
{
QVector<double> roi_cts; //感兴趣兴趣区总计数
}*pROIctsO,ROIctsO;
//计算感兴趣区净计数输入参数
typedef struct tagROINetXectsI
{
QVector<double> roi_cts; //样品普或者气体谱感兴趣总计数
QVector<double> roi_ratios; //感兴趣比率
QVector<double> roi_detbg_cts; //探测器本地谱感兴区总计数
double ratio; //样品谱LT和气体本底谱/探测器本底谱LT 比率值
}*pNetXectsI,NetXectsI;
//计算净计数总数计算输入参数
//数据校验结构 c
typedef struct tagSGTime //样品普和气体本地谱时间参数
{
double s_acquisition_real_time; //acquisition real time (s)
double s_acquisition_live_time; //acquisition live time (s)
double g_acquisition_real_time; //acquisition real time (s)
double g_acquisition_live_time; //acquisition live time (s)
double gtos_acqStartDiff; //气体本地谱与样品谱acquistion的相对时间
}*pSGTime,SGTime;
typedef struct tagROINetCountsI
{
QVector<double> s_netXe; //样品谱到探测器本地谱计数 [n..0] 计数 [n..1]计数偏差 [n..2]感兴趣区关键水平 [0-2]=0;
// the ROIs are numbered from one, so the first three
// positions are filled with zeroes.
QVector<double> g_netXe; //气体本地谱道探测器本地谱计数 [n..0] 计数 [n..1]计数偏差 [n..2]感兴趣区关键水平 [0-2]=0;
// the ROIs are numbered from one, so the first three
// positions are filled with zeroes.
SGTime time;
}*pNetCountsI,NetCountsI;
#endif