BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Types | |
enum | DataType { INTEGRAL , AVERAGE , STANDARD_ERROR , NENTRIES } |
Public Member Functions | |
Histogram2D (int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup) | |
Histogram2D (int nbinsx, const std::vector< double > &xbins, int nbinsy, const std::vector< double > &ybins) | |
Histogram2D (const IAxis &axis_x, const IAxis &axis_y) | |
Histogram2D (const OutputData< double > &data) | |
Histogram2D (std::vector< std::vector< double >> data) | |
Histogram2D * | clone () const |
size_t | getRank () const |
int | fill (double x, double y, double weight=1.0) |
Histogram1D * | projectionX () |
Histogram1D * | projectionX (double yvalue) |
Histogram1D * | projectionX (double ylow, double yup) |
Histogram1D * | projectionY () |
Histogram1D * | projectionY (double xvalue) |
Histogram1D * | projectionY (double xlow, double xup) |
Histogram2D * | crop (double xmin, double ymin, double xmax, double ymax) |
void | setContent (const std::vector< std::vector< double >> &data) |
void | addContent (const std::vector< std::vector< double >> &data) |
size_t | getTotalNumberOfBins () const |
const IAxis & | getXaxis () const |
const IAxis & | getYaxis () const |
double | getXmin () const |
double | getXmax () const |
size_t | getNbinsX () const |
double | getYmin () const |
double | getYmax () const |
size_t | getNbinsY () const |
size_t | getGlobalBin (size_t binx, size_t biny=0) const |
size_t | findGlobalBin (double x, double y) const |
size_t | getXaxisIndex (size_t i) const |
size_t | getYaxisIndex (size_t i) const |
double | getXaxisValue (size_t i) |
double | getYaxisValue (size_t i) |
double | getBinContent (size_t i) const |
double | getBinContent (size_t binx, size_t biny) const |
const OutputData< CumulativeValue > & | getData () const |
OutputData< CumulativeValue > & | getData () |
void | setBinContent (size_t i, double value) |
void | addBinContent (size_t i, double value) |
double | getBinError (size_t i) const |
double | getBinError (size_t binx, size_t biny) const |
double | getBinAverage (size_t i) const |
double | getBinAverage (size_t binx, size_t biny) const |
int | getBinNumberOfEntries (size_t i) const |
int | getBinNumberOfEntries (size_t binx, size_t biny) const |
double | getMaximum () const |
size_t | getMaximumBinIndex () const |
double | getMinimum () const |
size_t | getMinimumBinIndex () const |
void | scale (double value) |
double | integral () const |
PyObject * | array (DataType dataType=DataType::INTEGRAL) const |
PyObject * | getArray (DataType dataType=DataType::INTEGRAL) const |
void | reset () |
OutputData< double > * | createOutputData (DataType dataType=DataType::INTEGRAL) const |
bool | hasSameShape (const IHistogram &other) const |
bool | hasSameDimensions (const IHistogram &other) const |
const IHistogram & | operator+= (const IHistogram &right) |
IHistogram * | relativeDifferenceHistogram (const IHistogram &rhs) |
void | save (const std::string &filename) |
void | load (const std::string &filename) |
Static Public Member Functions | |
static IHistogram * | createHistogram (const OutputData< double > &source) |
static IHistogram * | createFrom (const std::string &filename) |
static IHistogram * | createFrom (const std::vector< std::vector< double >> &data) |
Protected Member Functions | |
template<typename T > | |
void | initFromShape (const T &data) |
Histogram1D * | create_projectionX (int ybinlow, int ybinup) |
Histogram1D * | create_projectionY (int xbinlow, int xbinup) |
void | check_x_axis () const |
void | check_y_axis () const |
void | init_from_data (const OutputData< double > &source) |
double | getBinData (size_t i, DataType dataType) const |
std::vector< double > | getDataVector (DataType dataType) const |
void | copyContentFrom (const IHistogram &other) |
Protected Attributes | |
OutputData< CumulativeValue > | m_data |
Two dimensional histogram.
Definition at line 24 of file Histogram2D.h.
|
inherited |
Histogram2D::Histogram2D | ( | int | nbinsx, |
double | xlow, | ||
double | xup, | ||
int | nbinsy, | ||
double | ylow, | ||
double | yup | ||
) |
Constructor for fix bin size histograms.
nbinsx | number of bins on X-axis |
xlow | low edge of the first bin of X-axis |
xup | upper edge of the last bin of X-axis |
nbinsy | number of bins on Y axis |
ylow | low edge of the first bin of Y-axis |
yup | upper edge of the last bin of Y-axis |
Definition at line 20 of file Histogram2D.cpp.
References OutputData< T >::addAxis(), and IHistogram::m_data.
Referenced by clone(), and crop().
Histogram2D::Histogram2D | ( | int | nbinsx, |
const std::vector< double > & | xbins, | ||
int | nbinsy, | ||
const std::vector< double > & | ybins | ||
) |
Constructor for variable bin size histograms.
nbinsx | number of bins on X-axis |
xbins | Array of size nbins+1 containing low-edges for each bin and upper edge of last bin. |
nbinsy | number of bins on Y-axis |
ybins | Array of size nbins+1 containing low-edges for each bin and upper edge of last bin. |
Definition at line 26 of file Histogram2D.cpp.
References OutputData< T >::addAxis(), and IHistogram::m_data.
Constructor for 2D histogram with custom axes.
Definition at line 33 of file Histogram2D.cpp.
Histogram2D::Histogram2D | ( | const OutputData< double > & | data | ) |
Constructor for 2D histograms from basic OutputData object.
Definition at line 35 of file Histogram2D.cpp.
References IHistogram::init_from_data().
Histogram2D::Histogram2D | ( | std::vector< std::vector< double >> | data | ) |
Constructor for 2D histograms from numpy array (thanks to swig)
Definition at line 41 of file Histogram2D.cpp.
References initFromShape(), and setContent().
|
virtual |
Returns clone of other histogram.
Implements IHistogram.
Definition at line 47 of file Histogram2D.cpp.
References Histogram2D().
|
inlinevirtual |
Returns the number of histogram dimensions.
Implements IHistogram.
Definition at line 59 of file Histogram2D.h.
int Histogram2D::fill | ( | double | x, |
double | y, | ||
double | weight = 1.0 |
||
) |
Increment bin with abscissa x and ordinate y with a weight.
Definition at line 52 of file Histogram2D.cpp.
References OutputData< T >::findGlobalIndex(), IHistogram::getXaxis(), IHistogram::getYaxis(), and IHistogram::m_data.
Histogram1D * Histogram2D::projectionX | ( | ) |
Project a 2D histogram into 1D histogram along X.
The projection is made from all bins along y-axis.
Definition at line 63 of file Histogram2D.cpp.
References create_projectionX(), and IHistogram::getXaxis().
Histogram1D * Histogram2D::projectionX | ( | double | yvalue | ) |
Project a 2D histogram into 1D histogram along X.
The projection is made from the y-bin closest to given ordinate yvalue.
yvalue | the value on y-axis at which projection is taken |
Definition at line 68 of file Histogram2D.cpp.
References create_projectionX(), IAxis::findClosestIndex(), and IHistogram::getYaxis().
Histogram1D * Histogram2D::projectionX | ( | double | ylow, |
double | yup | ||
) |
Project a 2D histogram into 1D histogram along X.
The projection is made from all y-bins corresponding to ordinate between ylow and yup.
ylow | lower edje on y-axis |
yup | upper edje on y-axis |
Definition at line 74 of file Histogram2D.cpp.
References create_projectionX(), IAxis::findClosestIndex(), and IHistogram::getYaxis().
Histogram1D * Histogram2D::projectionY | ( | ) |
Project a 2D histogram into 1D histogram along Y.
The projection is made from all bins along x-axis.
Definition at line 81 of file Histogram2D.cpp.
References create_projectionY(), and IHistogram::getXaxis().
Histogram1D * Histogram2D::projectionY | ( | double | xvalue | ) |
Project a 2D histogram into 1D histogram along Y.
The projection is made from the x-bin closest to given abscissa xvalue.
xvalue | the value on x-axis at which projection is taken |
Definition at line 86 of file Histogram2D.cpp.
References create_projectionY(), IAxis::findClosestIndex(), and IHistogram::getXaxis().
Histogram1D * Histogram2D::projectionY | ( | double | xlow, |
double | xup | ||
) |
Project a 2D histogram into 1D histogram along Y.
The projection is made from all x-bins corresponding to abscissa between xlow and xup.
xlow | lower edje on x-axis |
xup | upper edje on x-axis |
Definition at line 92 of file Histogram2D.cpp.
References create_projectionY(), IAxis::findClosestIndex(), and IHistogram::getXaxis().
Histogram2D * Histogram2D::crop | ( | double | xmin, |
double | ymin, | ||
double | xmax, | ||
double | ymax | ||
) |
Creates new histogram by applying rectangular clip.
Definition at line 99 of file Histogram2D.cpp.
References OutputData< T >::begin(), IAxis::contains(), OutputData< T >::end(), OutputData< T >::getAxisValue(), IHistogram::getXaxis(), IHistogram::getYaxis(), Histogram2D(), and IHistogram::m_data.
void Histogram2D::setContent | ( | const std::vector< std::vector< double >> & | data | ) |
Sets the values in histograms channels from numpy array,.
Definition at line 119 of file Histogram2D.cpp.
References addContent(), and IHistogram::reset().
Referenced by Histogram2D().
void Histogram2D::addContent | ( | const std::vector< std::vector< double >> & | data | ) |
Add to values in histograms channels from numpy array,.
Definition at line 125 of file Histogram2D.cpp.
References OutputData< T >::getAxis(), ArrayUtils::getShape(), IHistogram::m_data, and IAxis::size().
Referenced by setContent().
|
protected |
Definition at line 115 of file Histogram2D.h.
References OutputData< T >::addAxis(), ArrayUtils::getShape(), and IHistogram::m_data.
Referenced by Histogram2D().
|
protected |
Creates projection along X.
The projections is made by collecting the data in the range between [ybinlow, ybinup].
Definition at line 148 of file Histogram2D.cpp.
References Histogram1D::fill(), IHistogram::getBinContent(), IHistogram::getTotalNumberOfBins(), IHistogram::getXaxis(), IHistogram::getXaxisValue(), and IHistogram::getYaxisIndex().
Referenced by projectionX().
|
protected |
Creates projection along Y.
The projections is made by collecting the data in the range between [xbinlow, xbinup].
Definition at line 163 of file Histogram2D.cpp.
References Histogram1D::fill(), IHistogram::getBinContent(), IHistogram::getTotalNumberOfBins(), IHistogram::getXaxisIndex(), IHistogram::getYaxis(), and IHistogram::getYaxisValue().
Referenced by projectionY().
|
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(), create_projectionX(), create_projectionY(), IHistogram::createOutputData(), IHistogram::getDataVector(), IHistogram::integral(), IHistogram::operator+=(), IHistogram::relativeDifferenceHistogram(), and IHistogram::scale().
|
inherited |
returns x-axis
Definition at line 44 of file IHistogram.cpp.
References IHistogram::check_x_axis(), OutputData< T >::getAxis(), and IHistogram::m_data.
Referenced by create_projectionX(), Histogram1D::crop(), crop(), Histogram1D::fill(), fill(), SpectrumUtils::FindPeaks(), Histogram1D::getBinCenters(), IHistogram::getNbinsX(), IHistogram::getXmax(), IHistogram::getXmin(), projectionX(), and projectionY().
|
inherited |
returns y-axis for 2D histograms
Definition at line 50 of file IHistogram.cpp.
References IHistogram::check_y_axis(), OutputData< T >::getAxis(), and IHistogram::m_data.
Referenced by create_projectionY(), crop(), fill(), SpectrumUtils::FindPeaks(), IHistogram::getNbinsY(), IHistogram::getYmax(), IHistogram::getYmin(), and projectionX().
|
inherited |
Returns x-axis min (lower edge of first bin).
Definition at line 56 of file IHistogram.cpp.
References IAxis::getMin(), and IHistogram::getXaxis().
|
inherited |
Returns x-axis max (upper edge of last bin).
Definition at line 61 of file IHistogram.cpp.
References IAxis::getMax(), and IHistogram::getXaxis().
|
inherited |
Returns number of bins on x-axis.
Definition at line 66 of file IHistogram.cpp.
References IHistogram::getXaxis(), and IAxis::size().
|
inherited |
Returns y-axis min (lower edge of first bin) for 2D histograms.
Definition at line 71 of file IHistogram.cpp.
References IAxis::getMin(), and IHistogram::getYaxis().
|
inherited |
Returns y-axis max (upper edge of last bin) for 2D histograms.
Definition at line 76 of file IHistogram.cpp.
References IAxis::getMax(), and IHistogram::getYaxis().
|
inherited |
Returns number of bins on y-axis.
Definition at line 81 of file IHistogram.cpp.
References IHistogram::getYaxis(), and IAxis::size().
|
inherited |
Returns global bin index for given axes indices. For 1D, just returns binx.
Definition at line 86 of file IHistogram.cpp.
References IHistogram::getRank(), IHistogram::m_data, and OutputData< T >::toGlobalIndex().
Referenced by IHistogram::getBinAverage(), IHistogram::getBinContent(), IHistogram::getBinError(), and IHistogram::getBinNumberOfEntries().
|
inherited |
Returns closest global bin index for given axes coordinates.
Definition at line 95 of file IHistogram.cpp.
References OutputData< T >::findGlobalIndex(), IHistogram::getRank(), and IHistogram::m_data.
|
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 create_projectionY().
|
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 create_projectionX().
|
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 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 create_projectionY().
|
inherited |
Returns content (accumulated value) of bin i.
Definition at line 126 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by create_projectionX(), create_projectionY(), IHistogram::getBinContent(), IHistogram::getBinData(), IHistogram::operator+=(), and IHistogram::relativeDifferenceHistogram().
|
inherited |
Returns content (accumulated value) of the 2D histogram bin.
Definition at line 131 of file IHistogram.cpp.
References IHistogram::getBinContent(), and IHistogram::getGlobalBin().
|
inlineinherited |
Definition at line 92 of file IHistogram.h.
References IHistogram::m_data.
Referenced by IntensityDataFunctions::getRelativeDifference().
|
inlineinherited |
|
inherited |
Sets content of the bin corresponding to the globalbin number.
Definition at line 136 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::relativeDifferenceHistogram().
|
inherited |
Add the value to the bin.
Definition at line 141 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::operator+=().
|
inherited |
Returns error of the bin with given index.
Definition at line 146 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::getBinData(), and IHistogram::getBinError().
|
inherited |
Returns error of the bin with given indices (for 2D histograms).
Definition at line 151 of file IHistogram.cpp.
References IHistogram::getBinError(), and IHistogram::getGlobalBin().
|
inherited |
Returns average value in the bin with given index.
Definition at line 156 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::getBinAverage(), and IHistogram::getBinData().
|
inherited |
Returns average value of the bin with given indices (for 2D histograms).
Definition at line 161 of file IHistogram.cpp.
References IHistogram::getBinAverage(), and IHistogram::getGlobalBin().
|
inherited |
Returns number of entries in the bin with given index.
Definition at line 166 of file IHistogram.cpp.
References IHistogram::m_data.
Referenced by IHistogram::getBinData(), and IHistogram::getBinNumberOfEntries().
|
inherited |
Returns number of entries in the bin with given indices (for 2D histograms).
Definition at line 171 of file IHistogram.cpp.
References IHistogram::getBinNumberOfEntries(), and IHistogram::getGlobalBin().
|
inherited |
Returns histogram maximum value (maximum of getBinContent() over all bins)
Definition at line 176 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 182 of file IHistogram.cpp.
References OutputData< T >::begin(), OutputData< T >::end(), and IHistogram::m_data.
|
inherited |
Returns histogram minimum value (minimum of getBinContent() over all bins)
Definition at line 188 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 194 of file IHistogram.cpp.
References OutputData< T >::begin(), OutputData< T >::end(), and IHistogram::m_data.
|
inherited |
Multiply this histogram (every bin content value) by a constant.
Definition at line 199 of file IHistogram.cpp.
References IHistogram::getTotalNumberOfBins(), and IHistogram::m_data.
|
inherited |
Returns integral of bins content (computed as a sum of all bin content).
Definition at line 206 of file IHistogram.cpp.
References IHistogram::getTotalNumberOfBins(), and IHistogram::m_data.
Returns numpy array with bin content (accumulated values).
Definition at line 216 of file IHistogram.cpp.
References IHistogram::createOutputData().
Referenced by IHistogram::getArray().
Definition at line 222 of file IHistogram.cpp.
References IHistogram::array().
|
inherited |
Reset histogram content (axes remains)
Definition at line 228 of file IHistogram.cpp.
References IHistogram::m_data, and OutputData< T >::setAllTo().
Referenced by IHistogram::copyContentFrom(), IHistogram::relativeDifferenceHistogram(), and setContent().
|
staticinherited |
Definition at line 233 of file IHistogram.cpp.
References OutputData< T >::getRank().
Referenced by DetectorMask::createHistogram(), and IntensityDataIOFactory::readIntensityData().
|
staticinherited |
create new histogram from file content
Definition at line 248 of file IHistogram.cpp.
References FileSystemUtils::filename(), and IntensityDataIOFactory::readIntensityData().
|
staticinherited |
create new histogram from numpy array
Definition at line 253 of file IHistogram.cpp.
|
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 334 of file IHistogram.cpp.
References OutputData< T >::copyShapeFrom(), IHistogram::getBinData(), IHistogram::getTotalNumberOfBins(), and IHistogram::m_data.
Referenced by IHistogram::array(), SpectrumUtils::FindPeaks(), and IntensityDataIOFactory::writeIntensityData().
|
inherited |
Returns true if objects a) have same dimensions b) bin boundaries of axes coincide.
Definition at line 344 of file IHistogram.cpp.
References OutputData< T >::hasSameShape(), and IHistogram::m_data.
|
inherited |
Returns true if object have same rank and number of axes bins.
Definition at line 349 of file IHistogram.cpp.
References OutputData< T >::hasSameDimensions(), and IHistogram::m_data.
Referenced by IHistogram::copyContentFrom(), IHistogram::operator+=(), and IHistogram::relativeDifferenceHistogram().
|
inherited |
addition-assignment operator for two histograms
Definition at line 354 of file IHistogram.cpp.
References IHistogram::addBinContent(), IHistogram::getBinContent(), IHistogram::getTotalNumberOfBins(), and IHistogram::hasSameDimensions().
|
inherited |
returns histogram representing relative difference of two histograms.
Definition at line 364 of file IHistogram.cpp.
References IHistogram::clone(), IHistogram::getBinContent(), Numeric::GetRelativeDifference(), IHistogram::getTotalNumberOfBins(), IHistogram::hasSameDimensions(), IHistogram::reset(), and IHistogram::setBinContent().
|
inherited |
Saves histogram in file Following formats are available: *.txt, *.tif, *.int (*.txt.gz, *.tif.gz, *.int.gz)
Definition at line 380 of file IHistogram.cpp.
References FileSystemUtils::filename(), and IntensityDataIOFactory::writeIntensityData().
|
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 385 of file IHistogram.cpp.
References IHistogram::copyContentFrom(), FileSystemUtils::filename(), and IntensityDataIOFactory::readIntensityData().
|
protectedinherited |
Definition at line 258 of file IHistogram.cpp.
References IHistogram::getRank().
Referenced by IHistogram::getXaxis(), and IHistogram::getXaxisValue().
|
protectedinherited |
Definition at line 268 of file IHistogram.cpp.
References IHistogram::getRank().
Referenced by IHistogram::getYaxis(), and IHistogram::getYaxisValue().
|
protectedinherited |
Definition at line 278 of file IHistogram.cpp.
References OutputData< T >::copyShapeFrom(), OutputData< T >::getAllocatedSize(), OutputData< T >::getRank(), IHistogram::getRank(), and IHistogram::m_data.
Referenced by Histogram1D::Histogram1D(), and Histogram2D().
|
protectedinherited |
returns data of requested type for globalbin number
Definition at line 295 of file IHistogram.cpp.
References IHistogram::getBinAverage(), IHistogram::getBinContent(), IHistogram::getBinError(), and IHistogram::getBinNumberOfEntries().
Referenced by IHistogram::createOutputData(), and IHistogram::getDataVector().
|
protectedinherited |
returns vector of values of requested DataType
Definition at line 311 of file IHistogram.cpp.
References IHistogram::getBinData(), and IHistogram::getTotalNumberOfBins().
Referenced by Histogram1D::getBinErrors(), and Histogram1D::getBinValues().
|
protectedinherited |
Copy content (but not the axes) from other histogram. Dimensions should be the same.
Definition at line 322 of file IHistogram.cpp.
References IHistogram::getTotalNumberOfBins(), IHistogram::hasSameDimensions(), IHistogram::m_data, and IHistogram::reset().
Referenced by IHistogram::load().
|
protectedinherited |
Definition at line 193 of file IHistogram.h.
Referenced by IHistogram::addBinContent(), addContent(), IHistogram::copyContentFrom(), IHistogram::createOutputData(), Histogram1D::crop(), crop(), Histogram1D::fill(), fill(), IHistogram::findGlobalBin(), IHistogram::getBinAverage(), IHistogram::getBinContent(), IHistogram::getBinError(), IHistogram::getBinNumberOfEntries(), IHistogram::getData(), IHistogram::getGlobalBin(), IHistogram::getMaximum(), IHistogram::getMaximumBinIndex(), IHistogram::getMinimum(), IHistogram::getMinimumBinIndex(), IHistogram::getTotalNumberOfBins(), IHistogram::getXaxis(), IHistogram::getXaxisIndex(), IHistogram::getXaxisValue(), IHistogram::getYaxis(), IHistogram::getYaxisIndex(), IHistogram::getYaxisValue(), IHistogram::hasSameDimensions(), IHistogram::hasSameShape(), Histogram1D::Histogram1D(), Histogram2D(), IHistogram::IHistogram(), IHistogram::init_from_data(), initFromShape(), IHistogram::integral(), IHistogram::reset(), IHistogram::scale(), and IHistogram::setBinContent().