diff --git a/Device/Histo/Histogram2D.cpp b/Device/Histo/Histogram2D.cpp index 1f6185da9aa130033921826eb6e08135c47f4598..d407d8dd2647349c1c2a7b5c51f48c7b5819a28d 100644 --- a/Device/Histo/Histogram2D.cpp +++ b/Device/Histo/Histogram2D.cpp @@ -44,6 +44,20 @@ Histogram2D::Histogram2D(std::vector<std::vector<double>> data) this->setContent(data); } +void Histogram2D::initFromShape(const std::vector<std::vector<double>>& data) +{ + auto shape = DataUtils::Array::getShape(data); + const size_t nrows = shape.first; + const size_t ncols = shape.second; + + if (nrows == 0 || ncols == 0) + throw std::runtime_error("Histogram2D::Histogram2D() -> Error. " + "Not a two-dimensional numpy array"); + + m_data.addAxis(FixedBinAxis("x-axis", ncols, 0.0, static_cast<double>(ncols))); + m_data.addAxis(FixedBinAxis("y-axis", nrows, 0.0, static_cast<double>(nrows))); +} + Histogram2D* Histogram2D::clone() const { return new Histogram2D(*this); diff --git a/Device/Histo/Histogram2D.h b/Device/Histo/Histogram2D.h index 667ed67989979ddc704530258561d607dd67d4d4..a21833ae79fe29ac1b1b5c23ed4f459b21f75249 100644 --- a/Device/Histo/Histogram2D.h +++ b/Device/Histo/Histogram2D.h @@ -100,7 +100,7 @@ public: void addContent(const std::vector<std::vector<double>>& data); protected: - template <typename T> void initFromShape(const T& data); + void initFromShape(const std::vector<std::vector<double>>& data); //! Creates projection along X. The projections is made by collecting the data in the range //! between [ybinlow, ybinup]. @@ -111,18 +111,4 @@ protected: Histogram1D* create_projectionY(int xbinlow, int xbinup); }; -template <typename T> void Histogram2D::initFromShape(const T& data) -{ - auto shape = DataUtils::Array::getShape(data); - const size_t nrows = shape.first; - const size_t ncols = shape.second; - - if (nrows == 0 || ncols == 0) - throw std::runtime_error("Histogram2D::Histogram2D() -> Error. " - "Not a two-dimensional numpy array"); - - m_data.addAxis(FixedBinAxis("x-axis", ncols, 0.0, static_cast<double>(ncols))); - m_data.addAxis(FixedBinAxis("y-axis", nrows, 0.0, static_cast<double>(nrows))); -} - #endif // BORNAGAIN_DEVICE_HISTO_HISTOGRAM2D_H