diff --git a/Core/Scan/AngularSpecScan.cpp b/Core/Scan/AngularSpecScan.cpp index ff125dfb4c14b40a327be1a4e77df327865b4bac..fc1e1a252e6f3b39710a3fecbaeac46d8e9c8230 100644 --- a/Core/Scan/AngularSpecScan.cpp +++ b/Core/Scan/AngularSpecScan.cpp @@ -89,7 +89,7 @@ AngularSpecScan::generateElements(const Instrument& instrument) const [](const ParameterSample& sample) { return sample.value; }); std::vector<SpecularElement> result; - result.reserve(numberOfDiffuseElements()); + result.reserve(numberOfElements()); for (size_t i = 0; i < m_inc_angle->size(); ++i) { for (size_t k = 0, size_incs = incs[i].size(); k < size_incs; ++k) { const double inc = incs[i][k]; @@ -182,7 +182,7 @@ void AngularSpecScan::setAbsoluteAngularResolution(const IRangedDistribution& di std::vector<double> AngularSpecScan::footprint(size_t start, size_t n_elements) const { - if (start + n_elements > numberOfDiffuseElements()) + if (start + n_elements > numberOfElements()) throw std::runtime_error("Error in AngularSpecScan::footprint: given index exceeds the " "number of simulation elements"); @@ -217,7 +217,7 @@ std::vector<double> AngularSpecScan::footprint(size_t start, size_t n_elements) return result; } -size_t AngularSpecScan::numberOfDiffuseElements() const +size_t AngularSpecScan::numberOfElements() const { return m_inc_angle->size() * m_wl_resolution->nSamples() * m_inc_resolution->nSamples(); } diff --git a/Core/Scan/AngularSpecScan.h b/Core/Scan/AngularSpecScan.h index 6c85e5c7ac7ef9df58217c5adb69fbd4d3300729..ca5c499341e2f7390e55a7cdd72f9a971460c576 100644 --- a/Core/Scan/AngularSpecScan.h +++ b/Core/Scan/AngularSpecScan.h @@ -53,7 +53,7 @@ public: std::vector<double> footprint(size_t i, size_t n_elements) const override; //! Returns the number of simulation elements - size_t numberOfDiffuseElements() const override; + size_t numberOfElements() const override; CoordSystem1D* createCoordSystem() const override; diff --git a/Core/Scan/ISpecularScan.h b/Core/Scan/ISpecularScan.h index 9dbedb9e6762a3b8cb0858c78dd7e3629072ae44..40c4bf0f56c9ff0ba215b4bb78eadd4fdc7f3288 100644 --- a/Core/Scan/ISpecularScan.h +++ b/Core/Scan/ISpecularScan.h @@ -50,7 +50,7 @@ public: virtual std::vector<double> footprint(size_t i, size_t n_elements) const = 0; //! Returns the number of simulation elements - virtual size_t numberOfDiffuseElements() const = 0; + virtual size_t numberOfElements() const = 0; virtual CoordSystem1D* createCoordSystem() const = 0; diff --git a/Core/Scan/QSpecScan.cpp b/Core/Scan/QSpecScan.cpp index ae43c992ad002abad54ea9d461b9cac56757b616..16ee20ec7f3d5ab580c542bbfb7138048579eb72 100644 --- a/Core/Scan/QSpecScan.cpp +++ b/Core/Scan/QSpecScan.cpp @@ -65,14 +65,14 @@ std::vector<SpecularElement> QSpecScan::generateElements(const Instrument& instr std::vector<double> QSpecScan::footprint(size_t i, size_t n_elements) const { - if (i + n_elements > numberOfDiffuseElements()) + if (i + n_elements > numberOfElements()) throw std::runtime_error("Error in QSpecScan::footprint: given index exceeds the " "number of simulation elements"); return std::vector<double>(n_elements, 1.0); } //! Returns the number of simulation elements -size_t QSpecScan::numberOfDiffuseElements() const +size_t QSpecScan::numberOfElements() const { return m_qs->size() * m_resolution->nSamples(); } @@ -152,7 +152,7 @@ std::vector<double> QSpecScan::generateQzVector() const const auto samples = applyQResolution(); std::vector<double> result; - result.reserve(numberOfDiffuseElements()); + result.reserve(numberOfElements()); for (size_t i = 0, size_out = samples.size(); i < size_out; ++i) for (size_t j = 0, size_in = samples[i].size(); j < size_in; ++j) result.push_back(samples[i][j].value); diff --git a/Core/Scan/QSpecScan.h b/Core/Scan/QSpecScan.h index 8fa6bb2951b6a871e9e62ee783c6ea588c7ad864..54402cb3f0f63121b3477fd2689418635ff5047f 100644 --- a/Core/Scan/QSpecScan.h +++ b/Core/Scan/QSpecScan.h @@ -57,7 +57,7 @@ public: std::vector<double> footprint(size_t i, size_t n_elements) const override; //! Returns the number of simulation elements - size_t numberOfDiffuseElements() const override; + size_t numberOfElements() const override; CoordSystem1D* createCoordSystem() const override; diff --git a/Core/Simulation/DepthProbeSimulation.cpp b/Core/Simulation/DepthProbeSimulation.cpp index c10d4ee9b85854c422be83dfb56aaf75b23b9157..af1fdcd10c68cc06a519f8474fe771108a731683 100644 --- a/Core/Simulation/DepthProbeSimulation.cpp +++ b/Core/Simulation/DepthProbeSimulation.cpp @@ -38,7 +38,7 @@ DepthProbeSimulation::DepthProbeSimulation() : ISimulation() DepthProbeSimulation::~DepthProbeSimulation() = default; -size_t DepthProbeSimulation::numberOfDiffuseElements() const +size_t DepthProbeSimulation::numberOfElements() const { return getAlphaAxis()->size(); } diff --git a/Core/Simulation/DepthProbeSimulation.h b/Core/Simulation/DepthProbeSimulation.h index f1912ccfc61ccde3a62e641ff3d67106a8817548..58f90053b08b32f701bb0642e5534e86bf0d71f8 100644 --- a/Core/Simulation/DepthProbeSimulation.h +++ b/Core/Simulation/DepthProbeSimulation.h @@ -68,7 +68,7 @@ private: void initDiffuseElementVector() override; //! Gets the number of elements this simulation needs to calculate - size_t numberOfDiffuseElements() const override; + size_t numberOfElements() const override; //! Generate simulation elements for given beam std::vector<DepthProbeElement> generateElements(const Beam& beam); diff --git a/Core/Simulation/ISimulation.cpp b/Core/Simulation/ISimulation.cpp index f0ed66e8fb511c1627e3701cbecf5e76e6464de2..55d4de98fe3179e9de7134d98b02025844b83b07 100644 --- a/Core/Simulation/ISimulation.cpp +++ b/Core/Simulation/ISimulation.cpp @@ -162,7 +162,7 @@ void ISimulation::runSimulation() const auto re_sample = ProcessedSample::make(*sample(), options(), force_polarized); - const size_t total_size = numberOfDiffuseElements(); + const size_t total_size = numberOfElements(); size_t param_combinations = m_distribution_handler.getTotalNumberOfSamples(); m_progress.reset(); diff --git a/Core/Simulation/ISimulation.h b/Core/Simulation/ISimulation.h index 80e8dfa4675d4aa2ee40d1c8e0c693ecd3d6d934..69eb6616c873bd2316dbe358188ec8462cad78f5 100644 --- a/Core/Simulation/ISimulation.h +++ b/Core/Simulation/ISimulation.h @@ -112,7 +112,7 @@ protected: virtual void updateIntensityMap() {} //! Gets the number of elements this simulation needs to calculate - virtual size_t numberOfDiffuseElements() const = 0; + virtual size_t numberOfElements() const = 0; ProgressHandler& progress() { return m_progress; } diff --git a/Core/Simulation/ISimulation2D.cpp b/Core/Simulation/ISimulation2D.cpp index bcb38be0bd1adba5396bc37d4b62953c04701edf..73e7a84eb42da6d607af6f2ff6c85f53fcddb14b 100644 --- a/Core/Simulation/ISimulation2D.cpp +++ b/Core/Simulation/ISimulation2D.cpp @@ -71,11 +71,11 @@ void ISimulation2D::setRegionOfInterest(double xlow, double ylow, double xup, do detector2D().setRegionOfInterest(xlow, ylow, xup, yup); } -size_t ISimulation2D::numberOfDiffuseElements() const +size_t ISimulation2D::numberOfElements() const { if (!m_detector_context) - throw std::runtime_error("Error in numberOfDiffuseElements(): no detector context"); - return m_detector_context->numberOfDiffuseElements(); + throw std::runtime_error("Error in numberOfElements(): no detector context"); + return m_detector_context->numberOfElements(); } void ISimulation2D::setDetectorParameters(size_t n_x, double x_min, double x_max, size_t n_y, @@ -111,7 +111,7 @@ std::vector<DiffuseElement> ISimulation2D::generateElements(const Beam& beam) const Eigen::Matrix2cd analyzer_operator = detector.detectionProperties().analyzerOperator(); const size_t spec_index = detector.indexOfSpecular(beam); - const size_t N = m_detector_context->numberOfDiffuseElements(); + const size_t N = m_detector_context->numberOfElements(); std::vector<DiffuseElement> result; result.reserve(N); diff --git a/Core/Simulation/ISimulation2D.h b/Core/Simulation/ISimulation2D.h index 30cf682d109f2f049aa4001e52d6e290aa403a68..666c2c6b8575d1fa3afc5facb90201bbfe9e0762 100644 --- a/Core/Simulation/ISimulation2D.h +++ b/Core/Simulation/ISimulation2D.h @@ -69,7 +69,7 @@ protected: virtual void initCoordSystem() {} //! Gets the number of elements this simulation needs to calculate - size_t numberOfDiffuseElements() const override; + size_t numberOfElements() const override; //! Generate a single threaded computation for a given range of simulation elements //! @param start Index of the first element to include into computation diff --git a/Core/Simulation/OffSpecularSimulation.cpp b/Core/Simulation/OffSpecularSimulation.cpp index abbc60a6a24b4191562ba8f6d3a24411c7940727..f265b58755fbde475b5eb4cfc251ddf4e2ad3dea 100644 --- a/Core/Simulation/OffSpecularSimulation.cpp +++ b/Core/Simulation/OffSpecularSimulation.cpp @@ -39,10 +39,10 @@ void OffSpecularSimulation::prepareSimulation() ISimulation2D::prepareSimulation(); } -size_t OffSpecularSimulation::numberOfDiffuseElements() const +size_t OffSpecularSimulation::numberOfElements() const { checkInitialization(); - return ISimulation2D::numberOfDiffuseElements() * m_alpha_i_axis->size(); + return ISimulation2D::numberOfElements() * m_alpha_i_axis->size(); } SimulationResult OffSpecularSimulation::result() const diff --git a/Core/Simulation/OffSpecularSimulation.h b/Core/Simulation/OffSpecularSimulation.h index 6f78a05fc6a6fb9d8cce341bc5ac7cc129472f07..cf96d76f633765964faa0b64d5e68227374bbab5 100644 --- a/Core/Simulation/OffSpecularSimulation.h +++ b/Core/Simulation/OffSpecularSimulation.h @@ -66,7 +66,7 @@ private: void updateIntensityMap() override; //! Gets the number of elements this simulation needs to calculate - size_t numberOfDiffuseElements() const override; + size_t numberOfElements() const override; //! Normalize, apply detector resolution and transfer detector image corresponding to //! alpha_i = m_alpha_i_axis->bin(index) diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp index da64f9e64f5cb3578abdb755c473bde2cad8c337..51ce6723b617a44eb9caf562d5e4d18e5d4ac704 100644 --- a/Core/Simulation/SpecularSimulation.cpp +++ b/Core/Simulation/SpecularSimulation.cpp @@ -77,9 +77,9 @@ void SpecularSimulation::prepareSimulation() ISimulation::prepareSimulation(); } -size_t SpecularSimulation::numberOfDiffuseElements() const +size_t SpecularSimulation::numberOfElements() const { - return m_scan->numberOfDiffuseElements(); + return m_scan->numberOfElements(); } SimulationResult SpecularSimulation::result() const diff --git a/Core/Simulation/SpecularSimulation.h b/Core/Simulation/SpecularSimulation.h index df66b84ba5cad14e6f4898a4a05f2a185f103739..5d57d850cf3c7e3451a749e6f6c5dc4a4c6faf93 100644 --- a/Core/Simulation/SpecularSimulation.h +++ b/Core/Simulation/SpecularSimulation.h @@ -87,7 +87,7 @@ private: void moveDataFromCache() override; //! Gets the number of elements this simulation needs to calculate - size_t numberOfDiffuseElements() const override; + size_t numberOfElements() const override; std::vector<double> rawResults() const override; void setRawResults(const std::vector<double>& raw_data) override; diff --git a/Device/Detector/DetectorContext.cpp b/Device/Detector/DetectorContext.cpp index 6fb7d716d253b6e0874460d44fcb27d796440959..6786c71cf37549d92a7a62d24bd97418eb163c02 100644 --- a/Device/Detector/DetectorContext.cpp +++ b/Device/Detector/DetectorContext.cpp @@ -20,7 +20,7 @@ DetectorContext::DetectorContext(const IDetector2D* detector) setup_context(detector); } -size_t DetectorContext::numberOfDiffuseElements() const +size_t DetectorContext::numberOfElements() const { return m_active_indices.size(); } diff --git a/Device/Detector/DetectorContext.h b/Device/Detector/DetectorContext.h index b0a09330d5f2c882d42226c6e79f2cbcd6f32894..ad7f0bd0ca57dac22278de64113f69e711497b37 100644 --- a/Device/Detector/DetectorContext.h +++ b/Device/Detector/DetectorContext.h @@ -37,7 +37,7 @@ public: DetectorContext(const DetectorContext& other) = delete; DetectorContext& operator=(const DetectorContext& other) = delete; - size_t numberOfDiffuseElements() const; + size_t numberOfElements() const; std::unique_ptr<IPixel> createPixel(size_t element_index) const; diff --git a/Device/Detector/IDetector.cpp b/Device/Detector/IDetector.cpp index 5bf26d3aba45fb5059bac99023a7901f19a964f8..cce43130b1e423ada84491e193e25480f21b34da 100644 --- a/Device/Detector/IDetector.cpp +++ b/Device/Detector/IDetector.cpp @@ -240,7 +240,7 @@ void IDetector::setDataToDetectorMap(OutputData<double>& detectorMap, detectorMap[it.roiIndex()] = elements[elementIndex++].intensity(); } -size_t IDetector::numberOfDiffuseElements() const +size_t IDetector::numberOfElements() const { size_t result(0); iterateOverNonMaskedPoints([&result](const_iterator) { ++result; }); diff --git a/Device/Detector/IDetector.h b/Device/Detector/IDetector.h index a9c4be11e490512e76e73d257f00f7707363f02f..1a8da686496156d396dc849d78c48e4c8f42d87d 100644 --- a/Device/Detector/IDetector.h +++ b/Device/Detector/IDetector.h @@ -165,7 +165,7 @@ public: virtual Axes::Coords defaultCoords() const = 0; //! Returns number of simulation elements. - size_t numberOfDiffuseElements() const; + size_t numberOfElements() const; //! The lower and upper bound of the region of interest. If no region of interest is explicitly //! defined, then the whole detector is taken as "region of interest". diff --git a/Tests/Unit/Core/SpecularScanTest.cpp b/Tests/Unit/Core/SpecularScanTest.cpp index c6566c5d515b8dc3855cb9343570258dcb540961..44dc339b243c31641630150cea9dff48615d2440 100644 --- a/Tests/Unit/Core/SpecularScanTest.cpp +++ b/Tests/Unit/Core/SpecularScanTest.cpp @@ -20,7 +20,7 @@ TEST_F(SpecularScanTest, AngularScanInit) auto check = [](const AngularSpecScan& scan, const IAxis& axis) { EXPECT_EQ(scan.wavelength(), 0.1); EXPECT_EQ(axis, *scan.coordinateAxis()); - EXPECT_EQ(scan.numberOfDiffuseElements(), axis.size()); + EXPECT_EQ(scan.numberOfElements(), axis.size()); EXPECT_EQ(scan.footprintFactor(), nullptr); EXPECT_EQ(scan.footprint(0, 1), std::vector<double>{1.0}); EXPECT_THROW(scan.footprint(1, axis.size()), std::runtime_error); @@ -129,7 +129,7 @@ TEST_F(SpecularScanTest, QScanInit) { auto check = [](const QSpecScan& scan, const IAxis& axis) { EXPECT_EQ(axis, *scan.coordinateAxis()); - EXPECT_EQ(scan.numberOfDiffuseElements(), axis.size()); + EXPECT_EQ(scan.numberOfElements(), axis.size()); EXPECT_EQ(scan.footprintFactor(), nullptr); EXPECT_EQ(scan.footprint(0, 1), std::vector<double>{1.0}); EXPECT_EQ(scan.offset(), 0.); @@ -204,16 +204,16 @@ TEST_F(SpecularScanTest, GenerateSimElements) AngularSpecScan scan(0.1, std::vector<double>{0.0, 0.2, 0.3}); const Instrument instrument; std::vector<SpecularElement> eles = scan.generateElements(instrument); - EXPECT_EQ(eles.size(), scan.numberOfDiffuseElements()); - EXPECT_EQ(scan.numberOfDiffuseElements(), 3u); + EXPECT_EQ(eles.size(), scan.numberOfElements()); + EXPECT_EQ(scan.numberOfElements(), 3u); for (size_t i = 0; i < eles.size(); ++i) EXPECT_TRUE(eles[i].isCalculated()); const auto scan2_qvector = std::vector<double>{0.0, 0.2, 0.3}; QSpecScan scan2(scan2_qvector); std::vector<SpecularElement> eles2 = scan2.generateElements(instrument); - EXPECT_EQ(eles2.size(), scan2.numberOfDiffuseElements()); - EXPECT_EQ(scan2.numberOfDiffuseElements(), 3u); + EXPECT_EQ(eles2.size(), scan2.numberOfElements()); + EXPECT_EQ(scan2.numberOfElements(), 3u); for (size_t i = 0; i < eles2.size(); ++i) EXPECT_TRUE(eles2[i].isCalculated());