BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
One dimensional histogram. More...
Public Types | |
enum | DataType { INTEGRAL , AVERAGE , STANDARD_ERROR , NENTRIES } |
Public Member Functions | |
Histogram1D (const IAxis &axis) | |
Constructor for 1D histogram with custom axis. More... | |
Histogram1D (const OutputData< double > &data) | |
Constructor for 1D histograms from basic OutputData object. More... | |
Histogram1D (int nbinsx, const std::vector< double > &xbins) | |
Constructor for variable bin size histograms. More... | |
Histogram1D (int nbinsx, double xlow, double xup) | |
Constructor for fix bin size histograms. More... | |
void | addBinContent (size_t i, double value) |
Add the value to the bin. More... | |
PyObject * | array (DataType dataType=DataType::INTEGRAL) const |
Returns numpy array with bin content (accumulated values). More... | |
double | binAverage (size_t binx, size_t biny) const |
Returns average value of the bin with given indices (for 2D histograms). More... | |
double | binAverage (size_t i) const |
Returns average value in the bin with given index. More... | |
std::vector< double > | binCenters () const |
returns vector of histogram bin centers More... | |
PyObject * | binCentersNumpy () const |
double | binContent (size_t binx, size_t biny) const |
Returns content (accumulated value) of the 2D histogram bin. More... | |
double | binContent (size_t i) const |
Returns content (accumulated value) of bin i. More... | |
double | binError (size_t binx, size_t biny) const |
Returns error of the bin with given indices (for 2D histograms). More... | |
double | binError (size_t i) const |
Returns error of the bin with given index. More... | |
std::vector< double > | binErrors () const |
returns vector of bin errors More... | |
PyObject * | binErrorsNumpy () const |
int | binNumberOfEntries (size_t binx, size_t biny) const |
Returns number of entries in the bin with given indices (for 2D histograms). More... | |
int | binNumberOfEntries (size_t i) const |
Returns number of entries in the bin with given index. More... | |
std::vector< double > | binValues () const |
returns vector of bin content (the value accumulated by bins) More... | |
PyObject * | binValuesNumpy () const |
Histogram1D * | clone () const |
Returns clone of other histogram. More... | |
OutputData< double > * | createOutputData (DataType dataType=DataType::INTEGRAL) const |
creates new OutputData with histogram's shape and values corresponding to DataType More... | |
Histogram1D * | crop (double xmin, double xmax) |
Creates new histogram by applying crop on axis. More... | |
int | fill (double x, double weight=1.0) |
Increment bin with abscissa x with a weight. More... | |
size_t | findGlobalBin (double x, double y) const |
Returns closest global bin index for given axes coordinates. More... | |
PyObject * | getArray (DataType dataType=DataType::INTEGRAL) const |
OutputData< CumulativeValue > & | getData () |
const OutputData< CumulativeValue > & | getData () const |
size_t | getGlobalBin (size_t binx, size_t biny=0) const |
Returns global bin index for given axes indices. For 1D, just returns binx. More... | |
double | getMaximum () const |
Returns histogram maximum value (maximum of binContent() over all bins) More... | |
size_t | getMaximumBinIndex () const |
Returns globalbin index with maximum content. More... | |
double | getMinimum () const |
Returns histogram minimum value (minimum of binContent() over all bins) More... | |
size_t | getMinimumBinIndex () const |
Returns globalbin index with minimum content. More... | |
size_t | getNbinsX () const |
Returns number of bins on x-axis. More... | |
size_t | getNbinsY () const |
Returns number of bins on y-axis. More... | |
size_t | getTotalNumberOfBins () const |
Returns total number of histogram bins. More... | |
double | getXmax () const |
Returns x-axis max (upper edge of last bin). More... | |
double | getXmin () const |
Returns x-axis min (lower edge of first bin). More... | |
double | getYmax () const |
Returns y-axis max (upper edge of last bin) for 2D histograms. More... | |
double | getYmin () const |
Returns y-axis min (lower edge of first bin) for 2D histograms. More... | |
bool | hasSameDimensions (const IHistogram &other) const |
Returns true if object have same rank and number of axes bins. More... | |
bool | hasSameShape (const IHistogram &other) const |
Returns true if objects a) have same dimensions b) bin boundaries of axes coincide. More... | |
double | integral () const |
Returns integral of bins content (computed as a sum of all bin content). More... | |
void | load (const std::string &filename) |
Loads histogram from file, the shape of array in file should match Following formats are available: *.txt, *.tif, *.int (*.txt.gz, *.tif.gz, *.int.gz) Only bin content will be loaded, histogram axes remain the same. More... | |
const IHistogram & | operator+= (const IHistogram &right) |
addition-assignment operator for two histograms More... | |
size_t | rank () const |
Returns the number of histogram dimensions. More... | |
IHistogram * | relativeDifferenceHistogram (const IHistogram &rhs) |
returns histogram representing relative difference of two histograms. More... | |
void | reset () |
Reset histogram content (axes remains) More... | |
void | save (const std::string &filename) |
Saves histogram in file Following formats are available: *.txt, *.tif, *.int (*.txt.gz, *.tif.gz, *.int.gz) More... | |
void | scale (double value) |
Multiply this histogram (every bin content value) by a constant. More... | |
void | setBinContent (size_t i, double value) |
Sets content of the bin corresponding to the globalbin number. More... | |
const IAxis & | xAxis () const |
returns x-axis More... | |
size_t | xAxisIndex (size_t i) const |
Returns x-axis index for global bin index i. More... | |
double | xAxisValue (size_t i) |
Returns the center of bin i of the x axis. More... | |
const IAxis & | yAxis () const |
returns y-axis for 2D histograms More... | |
size_t | yAxisIndex (size_t i) const |
Returns y-axis index for global bin index i. More... | |
double | yAxisValue (size_t i) |
Returns the center of bin i of the y axis. More... | |
Static Public Member Functions | |
static IHistogram * | createFrom (const std::string &filename) |
create new histogram from file content More... | |
static IHistogram * | createFrom (const std::vector< std::vector< double >> &data) |
create new histogram from numpy array More... | |
static IHistogram * | createHistogram (const OutputData< double > &source) |
Protected Member Functions | |
double | binData (size_t i, DataType dataType) const |
returns data of requested type for globalbin number More... | |
void | check_x_axis () const |
void | check_y_axis () const |
void | copyContentFrom (const IHistogram &other) |
Copy content (but not the axes) from other histogram. Dimensions should be the same. More... | |
std::vector< double > | getDataVector (DataType dataType) const |
returns vector of values of requested DataType More... | |
void | init_from_data (const OutputData< double > &source) |
Protected Attributes | |
OutputData< CumulativeValue > | m_data |
One dimensional histogram.
Definition at line 23 of file Histogram1D.h.
|
inherited |
Histogram1D::Histogram1D | ( | int | nbinsx, |
double | xlow, | ||
double | xup | ||
) |
Constructor for fix bin size histograms.
nbinsx | number of bins |
xlow | low edge of the first bin |
xup | upper edge of the last bin |
Definition at line 20 of file Histogram1D.cpp.
References OutputData< T >::addAxis(), and IHistogram::m_data.
Referenced by clone(), and crop().
Histogram1D::Histogram1D | ( | int | nbinsx, |
const std::vector< double > & | xbins | ||
) |
Constructor for variable bin size histograms.
nbinsx | number of bins |
xbins | Array of size nbins+1 containing low-edges for each bin and upper edge of last bin. |
Definition at line 25 of file Histogram1D.cpp.
References OutputData< T >::addAxis(), and IHistogram::m_data.
Histogram1D::Histogram1D | ( | const IAxis & | axis | ) |
Constructor for 1D histogram with custom axis.
Definition at line 30 of file Histogram1D.cpp.
Histogram1D::Histogram1D | ( | const OutputData< double > & | data | ) |
Constructor for 1D histograms from basic OutputData object.
Definition at line 32 of file Histogram1D.cpp.
References IHistogram::init_from_data().
|
inherited |
Add the value to the bin.
Definition at line 151 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::operator+=().
Returns numpy array with bin content (accumulated values).
Definition at line 226 of file IHistogram.cpp.
References IHistogram::createOutputData().
Referenced by IHistogram::getArray().
|
inherited |
Returns average value of the bin with given indices (for 2D histograms).
Definition at line 171 of file IHistogram.cpp.
References IHistogram::binAverage(), and IHistogram::getGlobalBin().
|
inherited |
Returns average value in the bin with given index.
Definition at line 166 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::binAverage(), and IHistogram::binData().
std::vector< double > Histogram1D::binCenters | ( | ) | const |
returns vector of histogram bin centers
Definition at line 52 of file Histogram1D.cpp.
References IAxis::binCenters(), and IHistogram::xAxis().
Referenced by binCentersNumpy().
PyObject * Histogram1D::binCentersNumpy | ( | ) | const |
Definition at line 69 of file Histogram1D.cpp.
References binCenters(), and PyUtils::createNumpyArray().
|
inherited |
Returns content (accumulated value) of the 2D histogram bin.
Definition at line 141 of file IHistogram.cpp.
References IHistogram::binContent(), and IHistogram::getGlobalBin().
|
inherited |
Returns content (accumulated value) of bin i.
Definition at line 136 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::binContent(), IHistogram::binData(), Histogram2D::create_projectionX(), Histogram2D::create_projectionY(), IHistogram::operator+=(), and IHistogram::relativeDifferenceHistogram().
|
protectedinherited |
returns data of requested type for globalbin number
Definition at line 305 of file IHistogram.cpp.
References IHistogram::binAverage(), IHistogram::binContent(), IHistogram::binError(), and IHistogram::binNumberOfEntries().
Referenced by IHistogram::createOutputData(), and IHistogram::getDataVector().
|
inherited |
Returns error of the bin with given indices (for 2D histograms).
Definition at line 161 of file IHistogram.cpp.
References IHistogram::binError(), and IHistogram::getGlobalBin().
|
inherited |
Returns error of the bin with given index.
Definition at line 156 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::binData(), and IHistogram::binError().
std::vector< double > Histogram1D::binErrors | ( | ) | const |
returns vector of bin errors
Definition at line 62 of file Histogram1D.cpp.
References IHistogram::getDataVector().
Referenced by binErrorsNumpy().
PyObject * Histogram1D::binErrorsNumpy | ( | ) | const |
Definition at line 79 of file Histogram1D.cpp.
References binErrors(), and PyUtils::createNumpyArray().
|
inherited |
Returns number of entries in the bin with given indices (for 2D histograms).
Definition at line 181 of file IHistogram.cpp.
References IHistogram::binNumberOfEntries(), and IHistogram::getGlobalBin().
|
inherited |
Returns number of entries in the bin with given index.
Definition at line 176 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::binData(), and IHistogram::binNumberOfEntries().
std::vector< double > Histogram1D::binValues | ( | ) | const |
returns vector of bin content (the value accumulated by bins)
Definition at line 57 of file Histogram1D.cpp.
References IHistogram::getDataVector().
Referenced by binValuesNumpy().
PyObject * Histogram1D::binValuesNumpy | ( | ) | const |
Definition at line 74 of file Histogram1D.cpp.
References binValues(), and PyUtils::createNumpyArray().
|
protectedinherited |
Definition at line 268 of file IHistogram.cpp.
References IHistogram::rank().
Referenced by IHistogram::xAxis(), and IHistogram::xAxisValue().
|
protectedinherited |
Definition at line 278 of file IHistogram.cpp.
References IHistogram::rank().
Referenced by IHistogram::yAxis(), and IHistogram::yAxisValue().
|
virtual |
Returns clone of other histogram.
Implements IHistogram.
Definition at line 37 of file Histogram1D.cpp.
References Histogram1D().
|
protectedinherited |
Copy content (but not the axes) from other histogram. Dimensions should be the same.
Definition at line 331 of file IHistogram.cpp.
References IHistogram::getTotalNumberOfBins(), IHistogram::hasSameDimensions(), IHistogram::m_data, and IHistogram::reset().
Referenced by IHistogram::load().
|
staticinherited |
create new histogram from file content
Definition at line 258 of file IHistogram.cpp.
References FileSystemUtils::filename(), and IntensityDataIOFactory::readIntensityData().
|
staticinherited |
|
staticinherited |
Definition at line 243 of file IHistogram.cpp.
References OutputData< T >::rank().
Referenced by DetectorMask::createHistogram(), and IntensityDataIOFactory::readIntensityData().
|
inherited |
creates new OutputData with histogram's shape and values corresponding to DataType
creates new OutputData with histogram's shape and put there values corresponding to DataType
Definition at line 343 of file IHistogram.cpp.
References IHistogram::binData(), OutputData< T >::copyShapeFrom(), IHistogram::getTotalNumberOfBins(), and IHistogram::m_data.
Referenced by IHistogram::array(), HistoUtils::FindPeaks(), and IntensityDataIOFactory::writeIntensityData().
Histogram1D * Histogram1D::crop | ( | double | xmin, |
double | xmax | ||
) |
Creates new histogram by applying crop on axis.
Definition at line 86 of file Histogram1D.cpp.
References Histogram1D(), OutputData< T >::begin(), IAxis::contains(), OutputData< T >::end(), OutputData< T >::getAxisValue(), IHistogram::m_data, and IHistogram::xAxis().
int Histogram1D::fill | ( | double | x, |
double | weight = 1.0 |
||
) |
Increment bin with abscissa x with a weight.
Definition at line 42 of file Histogram1D.cpp.
References IAxis::contains(), IAxis::findClosestIndex(), IHistogram::m_data, and IHistogram::xAxis().
Referenced by Histogram2D::create_projectionX(), and Histogram2D::create_projectionY().
|
inherited |
Returns closest global bin index for given axes coordinates.
Definition at line 95 of file IHistogram.cpp.
References OutputData< T >::findGlobalIndex(), IHistogram::m_data, and IHistogram::rank().
Definition at line 232 of file IHistogram.cpp.
References IHistogram::array().
|
inherited |
Definition at line 131 of file IHistogram.cpp.
References IHistogram::m_data.
|
inherited |
Definition at line 126 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by HistoUtils::getRelativeDifference().
|
protectedinherited |
returns vector of values of requested DataType
Definition at line 320 of file IHistogram.cpp.
References IHistogram::binData(), and IHistogram::getTotalNumberOfBins().
Referenced by binErrors(), and binValues().
|
inherited |
Returns global bin index for given axes indices. For 1D, just returns binx.
Definition at line 86 of file IHistogram.cpp.
References IHistogram::m_data, IHistogram::rank(), and OutputData< T >::toGlobalIndex().
Referenced by IHistogram::binAverage(), IHistogram::binContent(), IHistogram::binError(), and IHistogram::binNumberOfEntries().
|
inherited |
Returns histogram maximum value (maximum of binContent() over all bins)
Definition at line 186 of file IHistogram.cpp.
References OutputData< T >::begin(), OutputData< T >::end(), and IHistogram::m_data.
|
inherited |
Returns globalbin index with maximum content.
Definition at line 192 of file IHistogram.cpp.
References OutputData< T >::begin(), OutputData< T >::end(), and IHistogram::m_data.
|
inherited |
Returns histogram minimum value (minimum of binContent() over all bins)
Definition at line 198 of file IHistogram.cpp.
References OutputData< T >::begin(), OutputData< T >::end(), and IHistogram::m_data.
|
inherited |
Returns globalbin index with minimum content.
Definition at line 204 of file IHistogram.cpp.
References OutputData< T >::begin(), OutputData< T >::end(), and IHistogram::m_data.
|
inherited |
Returns number of bins on x-axis.
Definition at line 66 of file IHistogram.cpp.
References IAxis::size(), and IHistogram::xAxis().
|
inherited |
Returns number of bins on y-axis.
Definition at line 81 of file IHistogram.cpp.
References IAxis::size(), and IHistogram::yAxis().
|
inherited |
Returns total number of histogram bins.
For 2D histograms the result will be the product of bin numbers along X and Y axes.
Definition at line 39 of file IHistogram.cpp.
References OutputData< T >::getAllocatedSize(), and IHistogram::m_data.
Referenced by IHistogram::copyContentFrom(), Histogram2D::create_projectionX(), Histogram2D::create_projectionY(), IHistogram::createOutputData(), IHistogram::getDataVector(), IHistogram::integral(), IHistogram::operator+=(), IHistogram::relativeDifferenceHistogram(), and IHistogram::scale().
|
inherited |
Returns x-axis max (upper edge of last bin).
Definition at line 61 of file IHistogram.cpp.
References IAxis::upperBound(), and IHistogram::xAxis().
|
inherited |
Returns x-axis min (lower edge of first bin).
Definition at line 56 of file IHistogram.cpp.
References IAxis::lowerBound(), and IHistogram::xAxis().
|
inherited |
Returns y-axis max (upper edge of last bin) for 2D histograms.
Definition at line 76 of file IHistogram.cpp.
References IAxis::upperBound(), and IHistogram::yAxis().
|
inherited |
Returns y-axis min (lower edge of first bin) for 2D histograms.
Definition at line 71 of file IHistogram.cpp.
References IAxis::lowerBound(), and IHistogram::yAxis().
|
inherited |
Returns true if object have same rank and number of axes bins.
Definition at line 358 of file IHistogram.cpp.
References OutputData< T >::hasSameDimensions(), and IHistogram::m_data.
Referenced by IHistogram::copyContentFrom(), IHistogram::operator+=(), and IHistogram::relativeDifferenceHistogram().
|
inherited |
Returns true if objects a) have same dimensions b) bin boundaries of axes coincide.
Definition at line 353 of file IHistogram.cpp.
References OutputData< T >::hasSameShape(), and IHistogram::m_data.
|
protectedinherited |
Definition at line 288 of file IHistogram.cpp.
References OutputData< T >::copyShapeFrom(), OutputData< T >::getAllocatedSize(), IHistogram::m_data, OutputData< T >::rank(), and IHistogram::rank().
Referenced by Histogram1D(), and Histogram2D::Histogram2D().
|
inherited |
Returns integral of bins content (computed as a sum of all bin content).
Definition at line 216 of file IHistogram.cpp.
References IHistogram::getTotalNumberOfBins(), and IHistogram::m_data.
|
inherited |
Loads histogram from file, the shape of array in file should match Following formats are available: *.txt, *.tif, *.int (*.txt.gz, *.tif.gz, *.int.gz) Only bin content will be loaded, histogram axes remain the same.
Definition at line 394 of file IHistogram.cpp.
References IHistogram::copyContentFrom(), FileSystemUtils::filename(), and IntensityDataIOFactory::readIntensityData().
|
inherited |
addition-assignment operator for two histograms
Definition at line 363 of file IHistogram.cpp.
References IHistogram::addBinContent(), IHistogram::binContent(), IHistogram::getTotalNumberOfBins(), and IHistogram::hasSameDimensions().
|
inlinevirtual |
Returns the number of histogram dimensions.
Implements IHistogram.
Definition at line 47 of file Histogram1D.h.
|
inherited |
returns histogram representing relative difference of two histograms.
Definition at line 373 of file IHistogram.cpp.
References IHistogram::binContent(), IHistogram::clone(), Numeric::GetRelativeDifference(), IHistogram::getTotalNumberOfBins(), IHistogram::hasSameDimensions(), IHistogram::reset(), and IHistogram::setBinContent().
|
inherited |
Reset histogram content (axes remains)
Definition at line 238 of file IHistogram.cpp.
References IHistogram::m_data, and OutputData< T >::setAllTo().
Referenced by IHistogram::copyContentFrom(), IHistogram::relativeDifferenceHistogram(), and Histogram2D::setContent().
|
inherited |
Saves histogram in file Following formats are available: *.txt, *.tif, *.int (*.txt.gz, *.tif.gz, *.int.gz)
Definition at line 389 of file IHistogram.cpp.
References FileSystemUtils::filename(), and IntensityDataIOFactory::writeIntensityData().
|
inherited |
Multiply this histogram (every bin content value) by a constant.
Definition at line 209 of file IHistogram.cpp.
References IHistogram::getTotalNumberOfBins(), and IHistogram::m_data.
|
inherited |
Sets content of the bin corresponding to the globalbin number.
Definition at line 146 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::relativeDifferenceHistogram().
|
inherited |
returns x-axis
Definition at line 44 of file IHistogram.cpp.
References OutputData< T >::axis(), IHistogram::check_x_axis(), and IHistogram::m_data.
Referenced by binCenters(), Histogram2D::create_projectionX(), crop(), Histogram2D::crop(), fill(), Histogram2D::fill(), HistoUtils::FindPeaks(), IHistogram::getNbinsX(), IHistogram::getXmax(), IHistogram::getXmin(), Histogram2D::projectionX(), and Histogram2D::projectionY().
|
inherited |
Returns x-axis index for global bin index i.
Definition at line 104 of file IHistogram.cpp.
References OutputData< T >::getAxisBinIndex(), and IHistogram::m_data.
Referenced by Histogram2D::create_projectionY().
|
inherited |
Returns the center of bin i of the x axis.
Definition at line 114 of file IHistogram.cpp.
References IHistogram::check_x_axis(), OutputData< T >::getAxisValue(), and IHistogram::m_data.
Referenced by Histogram2D::create_projectionX().
|
inherited |
returns y-axis for 2D histograms
Definition at line 50 of file IHistogram.cpp.
References OutputData< T >::axis(), IHistogram::check_y_axis(), and IHistogram::m_data.
Referenced by Histogram2D::create_projectionY(), Histogram2D::crop(), Histogram2D::fill(), HistoUtils::FindPeaks(), IHistogram::getNbinsY(), IHistogram::getYmax(), IHistogram::getYmin(), and Histogram2D::projectionX().
|
inherited |
Returns y-axis index for global bin index i.
Definition at line 109 of file IHistogram.cpp.
References OutputData< T >::getAxisBinIndex(), and IHistogram::m_data.
Referenced by Histogram2D::create_projectionX().
|
inherited |
Returns the center of bin i of the y axis.
Definition at line 120 of file IHistogram.cpp.
References IHistogram::check_y_axis(), OutputData< T >::getAxisValue(), and IHistogram::m_data.
Referenced by Histogram2D::create_projectionY().
|
protectedinherited |
Definition at line 193 of file IHistogram.h.
Referenced by Histogram1D(), Histogram2D::Histogram2D(), IHistogram::IHistogram(), IHistogram::addBinContent(), Histogram2D::addContent(), IHistogram::binAverage(), IHistogram::binContent(), IHistogram::binError(), IHistogram::binNumberOfEntries(), IHistogram::copyContentFrom(), IHistogram::createOutputData(), crop(), Histogram2D::crop(), fill(), Histogram2D::fill(), IHistogram::findGlobalBin(), IHistogram::getData(), IHistogram::getGlobalBin(), IHistogram::getMaximum(), IHistogram::getMaximumBinIndex(), IHistogram::getMinimum(), IHistogram::getMinimumBinIndex(), IHistogram::getTotalNumberOfBins(), IHistogram::hasSameDimensions(), IHistogram::hasSameShape(), IHistogram::init_from_data(), Histogram2D::initFromShape(), IHistogram::integral(), IHistogram::reset(), IHistogram::scale(), IHistogram::setBinContent(), IHistogram::xAxis(), IHistogram::xAxisIndex(), IHistogram::xAxisValue(), IHistogram::yAxis(), IHistogram::yAxisIndex(), and IHistogram::yAxisValue().