#ifndef PARTICLEDATASTATISTICS_H #define PARTICLEDATASTATISTICS_H #include #include "DetectorStatusSummary.h" #include "CoincidenceSpectrumProcess.h" #include using namespace CoincidenceSpectrum; namespace Ui { class ParticleDataStatistics; } class ParticleDataStatistics : public QWidget { Q_OBJECT public: explicit ParticleDataStatistics(QWidget *parent = nullptr); ~ParticleDataStatistics(); void setWidgetData(int board, int channel, int countNum, int secondNum); void setInitWidgetData(int board, int channel, int countNum, int secondNum); //处理板卡信息 void handleBoard(std::vector eventData); //设置数据 void setCoincidenceEvent(const F2t9Order::CoincidenceEvent &CoincidenceEvent); private: // 初始化映射表 void InitUi(); //统计每个板卡的初级粒子计数 QMap statisticsFirstParticleQuantity(); //处理初级粒子信息 std::vector handleBasicSubordinate(std::vector dataList,int Board, int Channel); private slots: //点击板卡探测器时触发的函数 区分初级粒子和次级粒子计数 void _slotClickedBoard(QString board); void _slotClickedTwoBoard(QString board); signals: void Signal_InitialState(); void Signal_ClickedBoard(int board,int channel); private: Ui::ParticleDataStatistics *ui; // 存储所有 DetectorStatusSummary 指针的二维数组(索引从0开始) DetectorStatusSummary* m_widgetMap[MAX_BOARD][MAX_CHANNEL]; //初级粒子板卡号 int m_bd; //初级粒子通道号 int m_ch; }; #endif // PARTICLEDATASTATISTICS_H