87 lines
2.5 KiB
C
87 lines
2.5 KiB
C
|
|
#ifndef CONFORMITYANALYSIS_H
|
||
|
|
#define CONFORMITYANALYSIS_H
|
||
|
|
|
||
|
|
#include <QWidget>
|
||
|
|
#include <iostream>
|
||
|
|
#include "ParticleDataStatistics.h"
|
||
|
|
#include "ThreeDDisplay.h"
|
||
|
|
#include "csv.h"
|
||
|
|
#include "CoincidenceSpectrumProcess.h"
|
||
|
|
#include "MeasureAnalysisView.h"
|
||
|
|
|
||
|
|
using namespace CoincidenceSpectrum;
|
||
|
|
|
||
|
|
namespace Ui {
|
||
|
|
class ConformityAnalysis;
|
||
|
|
}
|
||
|
|
|
||
|
|
class ConformityAnalysis : public MeasureAnalysisView
|
||
|
|
{
|
||
|
|
Q_OBJECT
|
||
|
|
|
||
|
|
private:
|
||
|
|
QMap<QString, int> m_FirstParticle;
|
||
|
|
QMap<QString, int> m_subordinate;
|
||
|
|
std::vector<F2t9Order::SpectrumData> m_beginVector;
|
||
|
|
std::vector<F2t9Order::SpectrumData> m_secondVector;
|
||
|
|
QVector<SurfacePoint> m_surfaceData;
|
||
|
|
|
||
|
|
public:
|
||
|
|
explicit ConformityAnalysis(QWidget *parent = nullptr);
|
||
|
|
~ConformityAnalysis();
|
||
|
|
|
||
|
|
virtual void InitViewWorkspace(const QString& project_name) override final;
|
||
|
|
virtual void SetAnalyzeDataFilename(const QMap<QString, QVariant>& data_files_set);
|
||
|
|
//设置csv文件路径及文件名称
|
||
|
|
void setCsvFile(QString fileName);
|
||
|
|
//读取csv文件
|
||
|
|
void readCsv();
|
||
|
|
|
||
|
|
|
||
|
|
private slots:
|
||
|
|
void slot_InitialState();
|
||
|
|
void slot_ClickedBoard(int board,int channel);
|
||
|
|
|
||
|
|
private:
|
||
|
|
//处理板卡信息
|
||
|
|
void handleBoard();
|
||
|
|
//统计每个板卡的初级粒子计数
|
||
|
|
QMap<QString, int> statisticsFirstParticleQuantity();
|
||
|
|
//处理当前板卡初级粒子信息
|
||
|
|
std::vector<F2t9Order::CoincidenceEvent> handleBasicSubordinate(std::vector<F2t9Order::CoincidenceEvent> &eventData,int Board, int Channel);
|
||
|
|
//处理次级粒子信息
|
||
|
|
QMap<QString,int> handleSubordinate(std::vector<F2t9Order::CoincidenceEvent> &eventData, int Board, int Channel);
|
||
|
|
// 获取最大值
|
||
|
|
int getMaxValue();
|
||
|
|
//计算全部的初级粒子范围 和 次级粒子范围
|
||
|
|
void calculateFirstSecondRange();
|
||
|
|
//设置板卡数据信息
|
||
|
|
void setAllBoardData();
|
||
|
|
//设置符合事件相关信息
|
||
|
|
void setThreeUiData();
|
||
|
|
//全部谱图数据处理
|
||
|
|
void generateSurfaceData(const std::vector<F2t9Order::CoincidenceEvent>& events);
|
||
|
|
|
||
|
|
private:
|
||
|
|
Ui::ConformityAnalysis *ui;
|
||
|
|
|
||
|
|
QString m_fileName;
|
||
|
|
|
||
|
|
std::vector<F2t9Order::CoincidenceEvent> m_CoincidenceEventVector;//所有的能谱符合处理
|
||
|
|
|
||
|
|
int m_boardChannel[MAX_BOARD][MAX_CHANNEL];
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
double m_dFirstStart = 0.0;//初级粒子起始能量
|
||
|
|
double m_dFirstEnd = 0.0;//初级粒子终止能量
|
||
|
|
double m_dSecondStart = 0.0;//初级粒子起始能量
|
||
|
|
double m_dSecondEnd = 0.0;//初级粒子终止能量
|
||
|
|
int m_iComply = 0;//符合事件总计数
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#endif // CONFORMITYANALYSIS_H
|