From 7b6b9673974c0818bf0385e6f3ef779230198b33 Mon Sep 17 00:00:00 2001 From: anxinglong <2910824064@qq.com> Date: Mon, 13 Apr 2026 18:17:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B8=E7=B4=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=B9=B1=E7=A0=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E5=88=A0=E9=99=A4=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E8=83=BD=E8=B0=B1=E5=86=8D=E6=AC=A1=E7=AC=A6=E5=90=88=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/nuclideLib.db | Bin 0 -> 16384 bytes .../TwoDSpectralCompliance.cpp | 4 +- .../ConformToTheEnergySpectrum.cpp | 80 +++++------------- src/MainWindow.ui | 6 ++ 4 files changed, 29 insertions(+), 61 deletions(-) create mode 100644 bin/nuclideLib.db diff --git a/bin/nuclideLib.db b/bin/nuclideLib.db new file mode 100644 index 0000000000000000000000000000000000000000..759e8f5205e844fee3af9f3a0f041247c9d984ff GIT binary patch literal 16384 zcmeI#Pfy!07zS{MRzpIx;?~11CMPP;E<19WNzLk!q?vK1!RZpeXb>8?*{CjfA@%wOG7NLrgeNcVd;wF5p7fB*y_009U<00Izz00jP7p!?{3BgFoG zt(V+yw$^+7zW3$0$WJC_dUHA%e=;(^71Ohe=Byn^&J?GL9fX|v&7x0tIvbSwV&GE| zEB=;C8jlo>(=eoo6cLjdJ>nTxH#tL9$G%Ea5&?{G;tv z^_v$X{=uh(`CKfo=`;?wRLtH`_S^FgB#VQgmQ0CJdD6W9V(qWZB6}U%CbRpnTPyFm zZ1qmCA=e3KM~g>GPOU^#ZLqV^Pu5=ac6YsO7RL4E#J*wbYjb&Hrl-c4wi zZuacTz76_i9kw&x?R)FJ?QQRYEoL8%PpW9`zqQ6i>dbB7f8-srdgo4jLlz$DP#i7~ z{#Uh`$d$<_PM?HHn}n{Pule=LSc0Jl2Ts*}cB?aIPkuA1&QHxPhZIu?KmY;|fB*y_ z009U<00Izz00dS_0Pp`R6(=?W0SG_<0uX=z1Rwwb2tWV=5LhaJ_y46VI0yjCfvgw`x literal 0 HcmV?d00001 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 @@ 感兴趣区 + + + 核素库 + +