diff --git a/image_analysis/MXAnalyzer.cpp b/image_analysis/MXAnalysisAfterFPGA.cpp similarity index 82% rename from image_analysis/MXAnalyzer.cpp rename to image_analysis/MXAnalysisAfterFPGA.cpp index e0835007..705269a5 100644 --- a/image_analysis/MXAnalyzer.cpp +++ b/image_analysis/MXAnalysisAfterFPGA.cpp @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only -#include "MXAnalyzer.h" +#include "MXAnalysisAfterFPGA.h" #include "spot_finding/DetModuleSpotFinder_cpu.h" #include "../common/CUDAWrapper.h" #include "SpotAnalyze.h" @@ -24,18 +24,18 @@ double stddev(const std::vector &v) { } -MXAnalyzer::MXAnalyzer(const DiffractionExperiment &in_experiment) +MXAnalysisAfterFPGA::MXAnalysisAfterFPGA(const DiffractionExperiment &in_experiment) : experiment(in_experiment) { if (experiment.IsSpotFindingEnabled()) find_spots = true; } -MXAnalyzer &MXAnalyzer::SetIndexer(IndexerThreadPool *input) { +MXAnalysisAfterFPGA &MXAnalysisAfterFPGA::SetIndexer(IndexerThreadPool *input) { indexer = input; return *this; } -void MXAnalyzer::ReadFromFPGA(const DeviceOutput *output, const SpotFindingSettings &settings, size_t module_number) { +void MXAnalysisAfterFPGA::ReadFromFPGA(const DeviceOutput *output, const SpotFindingSettings &settings, size_t module_number) { if (!find_spots || !settings.enable) return; StrongPixelSet strong_pixel_set; @@ -43,7 +43,7 @@ void MXAnalyzer::ReadFromFPGA(const DeviceOutput *output, const SpotFindingSetti strong_pixel_set.FindSpots(experiment, settings, spots, module_number); } -void MXAnalyzer::ReadFromCPU(DeviceOutput *output, const SpotFindingSettings &settings, size_t module_number) { +void MXAnalysisAfterFPGA::ReadFromCPU(DeviceOutput *output, const SpotFindingSettings &settings, size_t module_number) { std::unique_lock ul(read_from_cpu_mutex); if (!find_spots) @@ -86,7 +86,7 @@ void MXAnalyzer::ReadFromCPU(DeviceOutput *output, const SpotFindingSettings &se ReadFromFPGA(output, settings, module_number); } -void MXAnalyzer::Process(DataMessage &message, const SpotFindingSettings& spot_finding_settings) { +void MXAnalysisAfterFPGA::Process(DataMessage &message, const SpotFindingSettings& spot_finding_settings) { if (!find_spots) return; diff --git a/image_analysis/MXAnalyzer.h b/image_analysis/MXAnalysisAfterFPGA.h similarity index 86% rename from image_analysis/MXAnalyzer.h rename to image_analysis/MXAnalysisAfterFPGA.h index 07670fbc..d1bd9284 100644 --- a/image_analysis/MXAnalyzer.h +++ b/image_analysis/MXAnalysisAfterFPGA.h @@ -7,9 +7,8 @@ #include "../common/DiffractionExperiment.h" #include "indexing/IndexerThreadPool.h" #include "spot_finding/StrongPixelSet.h" -#include "bragg_integration/BraggIntegrate2D.h" -class MXAnalyzer { +class MXAnalysisAfterFPGA { mutable std::mutex read_from_cpu_mutex; const DiffractionExperiment &experiment; IndexerThreadPool *indexer = nullptr; @@ -23,7 +22,7 @@ class MXAnalyzer { std::vector arr_strong_pixel; public: - explicit MXAnalyzer(const DiffractionExperiment& experiment); + explicit MXAnalysisAfterFPGA(const DiffractionExperiment& experiment); void ReadFromFPGA(const DeviceOutput* output, const SpotFindingSettings& settings, @@ -36,7 +35,7 @@ public: void Process(DataMessage &message, const SpotFindingSettings& settings); - MXAnalyzer& SetIndexer(IndexerThreadPool *input); + MXAnalysisAfterFPGA& SetIndexer(IndexerThreadPool *input); }; diff --git a/image_analysis/ImageAnalysisCPU.cpp b/image_analysis/MXAnalysisWithoutFPGA.cpp similarity index 94% rename from image_analysis/ImageAnalysisCPU.cpp rename to image_analysis/MXAnalysisWithoutFPGA.cpp index bc36d0e4..e30e44bc 100644 --- a/image_analysis/ImageAnalysisCPU.cpp +++ b/image_analysis/MXAnalysisWithoutFPGA.cpp @@ -1,14 +1,14 @@ // SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only -#include "ImageAnalysisCPU.h" +#include "MXAnalysisWithoutFPGA.h" #include "spot_finding/StrongPixelSet.h" #include "../compression/JFJochDecompress.h" #include "SpotAnalyze.h" -ImageAnalysisCPU::ImageAnalysisCPU(const DiffractionExperiment &in_experiment, +MXAnalysisWithoutFPGA::MXAnalysisWithoutFPGA(const DiffractionExperiment &in_experiment, const AzimuthalIntegration &in_integration, const PixelMask &in_mask, IndexerThreadPool *in_indexer) @@ -37,7 +37,7 @@ ImageAnalysisCPU::ImageAnalysisCPU(const DiffractionExperiment &in_experiment, spotFinder = std::make_unique(mask_1bit, experiment.GetXPixelsNum(), experiment.GetYPixelsNum()); } -void ImageAnalysisCPU::Analyze(DataMessage &output, std::vector &image, AzimuthalIntegrationProfile &profile, +void MXAnalysisWithoutFPGA::Analyze(DataMessage &output, std::vector &image, AzimuthalIntegrationProfile &profile, const SpotFindingSettings &spot_finding_settings) { if ((output.image.GetWidth() != xpixels) @@ -71,7 +71,7 @@ void ImageAnalysisCPU::Analyze(DataMessage &output, std::vector &image, } } -void ImageAnalysisCPU::UpdateMaskResolution(const SpotFindingSettings &settings) { +void MXAnalysisWithoutFPGA::UpdateMaskResolution(const SpotFindingSettings &settings) { mask_low_res = settings.low_resolution_limit; mask_high_res = settings.high_resolution_limit; auto const &resolution_map = integration.Resolution(); @@ -80,7 +80,7 @@ void ImageAnalysisCPU::UpdateMaskResolution(const SpotFindingSettings &settings) } template -void ImageAnalysisCPU::Analyze(DataMessage &output, +void MXAnalysisWithoutFPGA::Analyze(DataMessage &output, const uint8_t *in_image, T err_pixel_val, T sat_pixel_val, diff --git a/image_analysis/ImageAnalysisCPU.h b/image_analysis/MXAnalysisWithoutFPGA.h similarity index 92% rename from image_analysis/ImageAnalysisCPU.h rename to image_analysis/MXAnalysisWithoutFPGA.h index 66dbc3aa..654b950c 100644 --- a/image_analysis/ImageAnalysisCPU.h +++ b/image_analysis/MXAnalysisWithoutFPGA.h @@ -14,7 +14,7 @@ #include "spot_finding/ImageSpotFinderCPU.h" #include "indexing/IndexerThreadPool.h" -class ImageAnalysisCPU { +class MXAnalysisWithoutFPGA { std::mutex m; const DiffractionExperiment &experiment; const AzimuthalIntegration &integration; @@ -45,7 +45,7 @@ class ImageAnalysisCPU { template void Analyze(DataMessage &output, const uint8_t *image, T err_pixel_val, T sat_pixel_val, AzimuthalIntegrationProfile &profile, const SpotFindingSettings &settings); public: - ImageAnalysisCPU(const DiffractionExperiment &experiment, const AzimuthalIntegration &integration, + MXAnalysisWithoutFPGA(const DiffractionExperiment &experiment, const AzimuthalIntegration &integration, const PixelMask &mask, IndexerThreadPool *indexer = nullptr); void Analyze(DataMessage &output, std::vector &buffer, AzimuthalIntegrationProfile &profile, const SpotFindingSettings &spot_finding_settings); diff --git a/receiver/JFJochReceiverFPGA.cpp b/receiver/JFJochReceiverFPGA.cpp index 29fa8d11..589cbda4 100644 --- a/receiver/JFJochReceiverFPGA.cpp +++ b/receiver/JFJochReceiverFPGA.cpp @@ -294,11 +294,11 @@ int64_t JFJochReceiverFPGA::SummationThread(uint16_t data_stream, } void JFJochReceiverFPGA::FrameTransformationThread(uint32_t threadid) { - std::unique_ptr analyzer; + std::unique_ptr analyzer; try { numa_policy.Bind(threadid); - analyzer = std::make_unique(experiment); + analyzer = std::make_unique(experiment); analyzer->SetIndexer(indexer_thread_pool); } catch (const JFJochException &e) { frame_transformation_ready.count_down(); diff --git a/receiver/JFJochReceiverFPGA.h b/receiver/JFJochReceiverFPGA.h index 25a7057e..fcbbc7ae 100644 --- a/receiver/JFJochReceiverFPGA.h +++ b/receiver/JFJochReceiverFPGA.h @@ -39,7 +39,7 @@ #include "../preview/ZMQMetadataSocket.h" #include "ImageMetadata.h" #include "../common/ModuleSummation.h" -#include "../image_analysis/MXAnalyzer.h" +#include "../image_analysis/MXAnalysisAfterFPGA.h" #include "../common/MovingAverage.h" #include "JFJochReceiverOutput.h" diff --git a/receiver/JFJochReceiverLite.cpp b/receiver/JFJochReceiverLite.cpp index 7e1250c2..f7e1da24 100644 --- a/receiver/JFJochReceiverLite.cpp +++ b/receiver/JFJochReceiverLite.cpp @@ -172,7 +172,7 @@ void JFJochReceiverLite::Configure(const StartMessage &msg) { void JFJochReceiverLite::DataAnalysisThread(uint32_t id) { std::vector buffer; - std::unique_ptr analysis; + std::unique_ptr analysis; logger.Debug("Thread {} started", id); @@ -188,7 +188,7 @@ void JFJochReceiverLite::DataAnalysisThread(uint32_t id) { measurement_started.wait(); try { - analysis = std::make_unique(experiment, az_int_mapping, pixel_mask, indexer_thread_pool); + analysis = std::make_unique(experiment, az_int_mapping, pixel_mask, indexer_thread_pool); } catch (const JFJochException &e) { Cancel(e); return; diff --git a/receiver/JFJochReceiverLite.h b/receiver/JFJochReceiverLite.h index 3bda86fe..c598e130 100644 --- a/receiver/JFJochReceiverLite.h +++ b/receiver/JFJochReceiverLite.h @@ -23,7 +23,7 @@ #include "JFJochReceiverPlots.h" #include "JFJochReceiverOutput.h" #include "../image_puller/ZMQImagePuller.h" -#include "../image_analysis/ImageAnalysisCPU.h" +#include "../image_analysis/MXAnalysisWithoutFPGA.h" class JFJochReceiverLite : public JFJochReceiver { ImagePuller &image_puller; diff --git a/viewer/JFJochImageReadingWorker.cpp b/viewer/JFJochImageReadingWorker.cpp index cda8783a..afd3c470 100644 --- a/viewer/JFJochImageReadingWorker.cpp +++ b/viewer/JFJochImageReadingWorker.cpp @@ -97,7 +97,7 @@ void JFJochImageReadingWorker::CalcROI_i() { void JFJochImageReadingWorker::UpdateAzint_i(const JFJochReaderDataset *dataset) { if (dataset) { azint_mapping = std::make_unique(curr_experiment, dataset->pixel_mask); - image_analysis = std::make_unique(curr_experiment, *azint_mapping, dataset->pixel_mask, + image_analysis = std::make_unique(curr_experiment, *azint_mapping, dataset->pixel_mask, indexing.get()); } } diff --git a/viewer/JFJochImageReadingWorker.h b/viewer/JFJochImageReadingWorker.h index de4d45ac..a3ea25de 100644 --- a/viewer/JFJochImageReadingWorker.h +++ b/viewer/JFJochImageReadingWorker.h @@ -15,7 +15,7 @@ #include "../reader/JFJochHDF5Reader.h" #include "../common/Logger.h" #include "../reader/JFJochHttpReader.h" -#include "../image_analysis/ImageAnalysisCPU.h" +#include "../image_analysis/MXAnalysisWithoutFPGA.h" Q_DECLARE_METATYPE(std::shared_ptr) Q_DECLARE_METATYPE(std::shared_ptr) @@ -40,7 +40,7 @@ class JFJochImageReadingWorker : public QObject { std::shared_ptr current_image_ptr; std::unique_ptr azint_mapping; - std::unique_ptr image_analysis; + std::unique_ptr image_analysis; std::unique_ptr roi;