diff --git a/bin/nuclideLib.db b/bin/nuclideLib.db new file mode 100644 index 0000000..759e8f5 Binary files /dev/null and b/bin/nuclideLib.db differ diff --git a/src/2DSpectralCompliance/TwoDSpectralCompliance.cpp b/src/2DSpectralCompliance/TwoDSpectralCompliance.cpp index faa0c2f..56b379f 100644 --- a/src/2DSpectralCompliance/TwoDSpectralCompliance.cpp +++ b/src/2DSpectralCompliance/TwoDSpectralCompliance.cpp @@ -261,7 +261,7 @@ void TwoDSpectralCompliance::createFloatingInfoWidget() titleLayout->addStretch(); QPushButton* hideBtn = new QPushButton(QStringLiteral("−")); hideBtn->setFixedSize(20, 20); - hideBtn->setToolTip(QStringLiteral(u"隐藏窗口")); + hideBtn->setText(QStringLiteral(u"X")); hideBtn->setStyleSheet("border: none; font-weight: bold;"); titleLayout->addWidget(hideBtn); mainLayout->addWidget(titleBar); @@ -316,7 +316,7 @@ void TwoDSpectralCompliance::createFloatingInfoWidget() "}" "QPushButton:hover { background-color: rgba(150,150,150,200); }" ); - m_showButton->setText("⊕"); + m_showButton->setText(QStringLiteral(u"⊕")); connect(m_showButton, &QPushButton::clicked, this, &TwoDSpectralCompliance::showFloatingWidget); m_floatingWidget->move(10, 10); diff --git a/src/ConformToTheEnergySpectrum/ConformToTheEnergySpectrum.cpp b/src/ConformToTheEnergySpectrum/ConformToTheEnergySpectrum.cpp index b4f4701..ebd9571 100644 --- a/src/ConformToTheEnergySpectrum/ConformToTheEnergySpectrum.cpp +++ b/src/ConformToTheEnergySpectrum/ConformToTheEnergySpectrum.cpp @@ -22,10 +22,6 @@ struct SpectrumData uint64_t timestamp; }; -struct CoincidenceEvent -{ - std::vector events; -}; ConformToTheEnergySpectrum::ConformToTheEnergySpectrum(QWidget *parent) : MeasureAnalysisView(parent) @@ -81,48 +77,6 @@ void ConformToTheEnergySpectrum::SetAnalyzeDataFilename(const QMap processCoincidence(const std::vector& data, - uint64_t time_window_ns = 50, - int min_order = 2, - int max_order = 9) -{ - std::vector result; - if (data.empty()) return result; - - std::vector sorted = data; - std::sort(sorted.begin(), sorted.end(), - [](const SpectrumData& a, const SpectrumData& b) { return a.timestamp < b.timestamp; }); - - size_t n = sorted.size(); - for (size_t i = 0; i < n; ++i) - { - std::vector cluster; - cluster.push_back(sorted[i]); - uint64_t base = sorted[i].timestamp; - - for (size_t j = i + 1; j < n && (sorted[j].timestamp - base) <= time_window_ns; ++j) - cluster.push_back(sorted[j]); - for (size_t j = i; j > 0 && (base - sorted[j-1].timestamp) <= time_window_ns; --j) - if (j-1 != i) cluster.push_back(sorted[j-1]); - - std::sort(cluster.begin(), cluster.end(), - [](const SpectrumData& a, const SpectrumData& b) { return a.timestamp < b.timestamp; }); - cluster.erase(std::unique(cluster.begin(), cluster.end(), - [](const SpectrumData& a, const SpectrumData& b) { - return a.timestamp == b.timestamp && a.board_id == b.board_id && a.channel_id == b.channel_id; - }), cluster.end()); - - int order = (int)cluster.size(); - if (order >= min_order && order <= max_order) - { - CoincidenceEvent ev; - ev.events = cluster; - result.push_back(ev); - i += (cluster.size() - 1); - } - } - return result; -} void ConformToTheEnergySpectrum::loadAndProcess() { @@ -156,24 +110,32 @@ void ConformToTheEnergySpectrum::loadAndProcess() return; } - const uint64_t TIME_WINDOW_NS = 50; - const int MIN_ORDER = 2; - const int MAX_ORDER = 9; - std::vector coincidences = processCoincidence(rawData, TIME_WINDOW_NS, MIN_ORDER, MAX_ORDER); +// const uint64_t TIME_WINDOW_NS = 50; +// const int MIN_ORDER = 2; +// const int MAX_ORDER = 9; +// std::vector coincidences = processCoincidence(rawData, TIME_WINDOW_NS, MIN_ORDER, MAX_ORDER); - if (coincidences.empty()) { - _busy_indicator->Stop(); - return; - } +// if (coincidences.empty()) { +// _busy_indicator->Stop(); +// return; +// } + +// const int STEP = 1; +// std::map hist; + +// for (const auto& ev : coincidences) { +// for (const auto& spdt : ev.events) { +// int idx = static_cast(spdt.energy) / STEP; +// hist[idx] += 1.0; +// } +// } const int STEP = 1; std::map hist; - for (const auto& ev : coincidences) { - for (const auto& spdt : ev.events) { - int idx = static_cast(spdt.energy) / STEP; - hist[idx] += 1.0; - } + for (const auto& spdt : rawData) { + int idx = static_cast(spdt.energy) / STEP; + hist[idx] += 1.0; } QVector vx, vy; diff --git a/src/MainWindow.ui b/src/MainWindow.ui index 18b05c9..334da95 100644 --- a/src/MainWindow.ui +++ b/src/MainWindow.ui @@ -104,6 +104,7 @@ + @@ -179,6 +180,11 @@ 感兴趣区 + + + 核素库 + +