#ifndef PACKAGING_H #define PACKAGING_H //////////////////////////////////////////////////////////////////////// // 类说明:此类为b_g谱业务逻辑 // // 注意事项:1、ExtractSROIcts 用到2次拟合算法 请注意 // //////////////////////////////////////////////////////////////////////// #include #include #include "BgWorkDef.h" class CBgWork { public: CBgWork(); CBgWork(BgFileI& _fileHanle); ~CBgWork(); //log拆分而来,错误日志 static QString BgAnlyseError(const BgErrorType& _error); void SetBgFile(BgFileI& _fileHanle); ///////////////////////////////////////////////////////////////////// // 函数说明:重新设置要分析的文件名 // _fileHanle // 返回值:void ////////////////////////////////////////////////////////////////////// void RenameAnalyseFile(BgFileI& _fileHanle); ///////////////////////////////////////////////////////////////////// // 函数说明:界面交互分析 // 函数参数:b_e_cal:b能刻度计数方程系数 // g_e_cal: g能刻度计数方程系数 // 返回值:void ////////////////////////////////////////////////////////////////////// bool MutialAnalyse(BgCalibratePara& _BgCalPara); //////////////////////////////////////////////////////////////////// // 函数说明:自动分析 // 函数参数:void // 返回值:void ////////////////////////////////////////////////////////////////////// bool AutoAnalyse(); ///////////////////////////////////////////////////////////////////// // 函数说明:GetAllValue 获取所有分析结果 // 函数参数:void // 返回值: 分析的所有结构 详解请看结构 ////////////////////////////////////////////////////////////////////// BgAllGenerate GetAllValue(); ///////////////////////////////////////////////////////////////////// // 函数说明:GetUIValue 获取与界面相关的结果 // 函数参数:void // 返回值: 分析的所有结构 详解请看结构 ////////////////////////////////////////////////////////////////////// BgUINeed GetUIValue(); ///////////////////////////////////////////////////////////////////// // 函数说明:GetLastError 返回计算标示 // 函数参数:void // 返回值: 分析的所有结构 详解请看结构 ////////////////////////////////////////////////////////////////////// BgErrorType GetLastError(); BgSample GetSampleUseData(); BgGas GetGasUseData(); BgDetbgr GetDetbgrUseData(); ///////////////////////////////////////////////////////////////////// // 函数说明:CaculateXeActivity 计算符合外推 核素活动值 // 函数参数: _watch_x:拟合观察点x; _watch_y:拟合观察点y;_lamadaXe:Xe参数;_acqRealTime:生存时间;,QVector &_fittingPara:拟合系数返回;_fittingType:拟合方式 // 返回值: 分析的所有结构 详解请看结构 ////////////////////////////////////////////////////////////////////// static double CaculateXeActivity(QVector&_watch_x,QVector&_watch_y,const double& _lamadaXe,const double& _acqRealTime,QVector &_fittingPara,int _fittingType=_default); static bool GetFittingPara(QVector& _watch_x,QVector &_watch_y,FitType _fittype,QVector &_fittingPara); static bool GetFittingData(QVector& _watch,FitType _fittype,QVector &_fittingPara,QVector &_rData); static bool GetFittingData(QVector& _watch,FitType _fittype,QVector &_fittingPara,QVector &_rData); static bool GetFileFittingPara(QVector& _watch_x,QVector &_watch_y,QVector &_fittingPara); static bool GetFileFittingData(QVector& _watch,QVector &_fittingPara,QVector &_rData); static bool GetFileFittingData(QVector& _watch,QVector &_fittingPara,QVector &_rData); static QString GetFittingDescriptionByType(int _type); static QString GetFittingEquation(int _type); // 根据不同的拟合方法计算边界值, 默认2次拟合 可以继承书写新的拟合 virtual bool CalcBgBoundary(BgROILimit& _roi_limit,BgEC& _b_g_e_c,BgCalibratePara& _BgCalPara,BgBoundary& _output); protected: // 根据不同的拟合方法计算边界值, 默认2次拟合 可以继承书写新的拟合 virtual bool CalcBgBoundary(BgROILimit& _roi_limit,BgEC& _b_g_e_c,BgCalibratePara& _BgCalPara,BgBoundary& _output,BgFittingPara& _fittingPara); private: //初始化 bool SetPara(BgFileI& _fileHanle); //处理流程 bool Analyse(); //获取样品谱感兴趣区计数 bool ExtractSROIcts(); //获取气体本底谱感兴趣区计数 bool ExtractGROIcts(); //获取探测器本底谱感兴趣区计数 bool ExtractDROIcts(); //样品谱扣除探测器本底谱计数 bool SDetuctDcts(); //气体本底谱扣除探测器本底谱计数 bool GDetuctDcts(); //获取净计数 bool ExtractNetCounts(); //日期差值计算 double SubtractTime(QString _begin,QString _end); //计算感兴趣区浓度和不确定度 bool CalcRoiConUncer(); //计算同位素浓度和不确定度 bool CalcXeConUncer(); //MDC计算 bool MDC(); //所需数据 BgSample m_sampleData; //样品谱数据 BgGas m_gasData; //气体本底谱数据 BgDetbgr m_detbgrData; //探测器本地谱数据 BgAllGenerate m_allGenerate; BgUINeed m_uiNeed; BgSampleGenerate m_sampleGenerate; //样品谱生成数据 BgGasGenerate m_gasGenerate; //气体本底谱生成数据 BgDetbgrGenerate m_detbgrGenerate; //探测器本地谱生成数据 BgOtherGenerate m_otherGenerate; //生成的其他数据 const static double cst_fixed_volXe; const static double cst_defvolXe; // Value substituted when Xe volume read as below 0.1 ml - warning issued. static bool m_initAlgorithm; BgCalibratePara m_bgCalPara; BgFileI m_file; bool m_flag_read_file; BgErrorType m_lastError; }; #endif