diff --git a/include/ITAHDFTSpectra.h b/include/ITAHDFTSpectra.h index 4e2d2c5eb97a0a1e38812fe4b6899b672b62dd35..9a0d95135c7dcf6076f6aae46cc289dda65ce8cd 100644 --- a/include/ITAHDFTSpectra.h +++ b/include/ITAHDFTSpectra.h @@ -92,6 +92,9 @@ public: //! Copy from another Spectra void CopyFrom(const ITAHDFTSpectra* otherSpectra); + //! Returns maximum energy from all spectra + float GetMaxEnergy( int* piChannelIndex = nullptr ) const; + //! Subscript operator gives direct access to spectrum channel const ITAHDFTSpectrum* operator[]( const int ) const; ITAHDFTSpectrum* operator[]( const int ); diff --git a/src/ITAHDFTSpectra.cpp b/src/ITAHDFTSpectra.cpp index 4cd78268b0a56d97c03ed1c9a394abba4bda722f..9502141decc79036a77e4f9194981d75a4225ab0 100644 --- a/src/ITAHDFTSpectra.cpp +++ b/src/ITAHDFTSpectra.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include #include @@ -41,6 +42,23 @@ ITAHDFTSpectra::~ITAHDFTSpectra() delete m_vpSpectra[i]; } +float ITAHDFTSpectra::GetMaxEnergy( int* piIdx ) const +{ + float fEnergyTemp; + float fEnergyMax = -1.0f; + for (size_t n = 0; n < m_vpSpectra.size(); n++) + { + fEnergyTemp = m_vpSpectra[n]->getEnergy(); + if (fEnergyTemp > fEnergyMax) + { + fEnergyMax = fEnergyTemp; + *piIdx = n; + } + } + + return fEnergyMax; +} + void ITAHDFTSpectra::CopyFrom(const ITAHDFTSpectra *otherSpectra) { int iNumChannels=otherSpectra->GetNumChannels();