Gromacs
2024.3
|
#include <gromacs/analysisdata/modules/histogram.h>
Base class for representing histograms averaged over frames.
The averaging module for a per-frame histogram is always created by the histogram module class (e.g., AnalysisDataSimpleHistogramModule), and can be accessed using, e.g., AnalysisDataSimpleHistogramModule::averager(). The user can alter some properties of the average histogram directly, but the main use of the object is to postprocess the histogram once the calculation is finished.
This class can represent multiple histograms in one object: each column in the data is an independent histogram. The X values correspond to center of the bins, except for a cumulative histogram made with makeCumulative().
Public Member Functions | |
const AnalysisHistogramSettings & | settings () const |
Returns bin properties for the histogram. | |
AverageHistogramPointer | resampleDoubleBinWidth (bool bIntegerBins) const |
Creates a copy of the histogram with double the bin width. More... | |
AverageHistogramPointer | clone () const |
Creates a deep copy of the histogram. More... | |
void | normalizeProbability () |
Normalizes the histogram such that the integral over it is one. | |
void | makeCumulative () |
Makes the histograms cumulative by summing up each bin to all bins after it. More... | |
void | scaleSingle (int index, real factor) |
Scales a single histogram by a uniform scaling factor. | |
void | scaleAll (real factor) |
Scales all histograms by a uniform scaling factor. | |
void | scaleAllByVector (const real factor[]) |
Scales the value of each bin by a different scaling factor. | |
void | done () |
Notifies attached modules of the histogram data. More... | |
Public Member Functions inherited from gmx::AbstractAnalysisArrayData | |
int | frameCount () const override |
Returns the total number of frames in the data. More... | |
int | rowCount () const |
Returns the number of rows in the data array. More... | |
bool | isAllocated () const |
Returns true if values have been allocated. | |
real | xstart () const |
Returns the x value of the first frame. | |
real | xstep () const |
Returns the step between frame x values. | |
real | xvalue (int row) const |
Returns the x value of a row. | |
const AnalysisDataValue & | value (int row, int col) const |
Returns a given array element. | |
Public Member Functions inherited from gmx::AbstractAnalysisData | |
bool | isMultipoint () const |
Whether the data can have multiple points in the same column in the same frame. More... | |
int | dataSetCount () const |
Returns the number of data sets in the data object. More... | |
int | columnCount (int dataSet) const |
Returns the number of columns in a data set. More... | |
int | columnCount () const |
Returns the number of columns in the data. More... | |
AnalysisDataFrameRef | tryGetDataFrame (int index) const |
Access stored data. More... | |
AnalysisDataFrameRef | getDataFrame (int index) const |
Access stored data. More... | |
bool | requestStorage (int nframes) |
Request storage of frames. More... | |
void | addModule (const AnalysisDataModulePointer &module) |
Adds a module to process the data. More... | |
void | addColumnModule (int col, int span, const AnalysisDataModulePointer &module) |
Adds a module that processes only a subset of the columns. More... | |
void | applyModule (IAnalysisDataModule *module) |
Applies a module to process data that is ready. More... | |
Protected Member Functions | |
AbstractAverageHistogram () | |
Creates a histogram module with undefined bins. More... | |
AbstractAverageHistogram (const AnalysisHistogramSettings &settings) | |
Creates a histogram module with defined bin parameters. | |
void | init (const AnalysisHistogramSettings &settings) |
(Re)initializes the histogram from settings. | |
Protected Member Functions inherited from gmx::AbstractAnalysisArrayData | |
AbstractAnalysisArrayData () | |
Initializes an empty array data object. More... | |
void | setColumnCount (int ncols) |
Sets the number of columns in the data array. More... | |
void | setRowCount (int rowCount) |
Sets the number of rows in the data array. More... | |
void | allocateValues () |
Allocates memory for the values. More... | |
void | setXAxis (real start, real step) |
Sets the values reported as x values for frames. More... | |
void | setXAxisValue (int row, real value) |
Sets a single value reported as x value for frames. More... | |
AnalysisDataValue & | value (int row, int col) |
Returns a reference to a given array element. | |
void | valuesReady () |
Notifies modules of the data. More... | |
Protected Member Functions inherited from gmx::AbstractAnalysisData | |
AbstractAnalysisData () | |
Initializes a new analysis data object. More... | |
void | setDataSetCount (int dataSetCount) |
Sets the number of data sets. More... | |
void | setColumnCount (int dataSet, int columnCount) |
Sets the number of columns for a data set. More... | |
void | setMultipoint (bool bMultipoint) |
Sets whether the data has multiple points per column in a frame. More... | |
AnalysisDataModuleManager & | moduleManager () |
Returns the module manager to use for calling notification methods. | |
const AnalysisDataModuleManager & | moduleManager () const |
Returns the module manager to use for calling notification methods. | |
Additional Inherited Members | |
Static Protected Member Functions inherited from gmx::AbstractAnalysisArrayData | |
static void | copyContents (const AbstractAnalysisArrayData *src, AbstractAnalysisArrayData *dest) |
Copies the contents into a new object. More... | |
|
protected |
Creates a histogram module with undefined bins.
Bin parameters must be defined with init() before data input is started.
AverageHistogramPointer gmx::AbstractAverageHistogram::clone | ( | ) | const |
Creates a deep copy of the histogram.
std::bad_alloc | if out of memory. |
The returned histogram is not necessarily of the same dynamic type as the original object, but contains the same data from the point of view of the AbstractAverageHistogram interface.
The caller is responsible of deleting the returned object.
|
inline |
Notifies attached modules of the histogram data.
After this function has been called, it is no longer possible to alter the histogram.
void gmx::AbstractAverageHistogram::makeCumulative | ( | ) |
Makes the histograms cumulative by summing up each bin to all bins after it.
The X values in the data are adjusted such that they match the right edges of bins instead of bin centers.
AverageHistogramPointer gmx::AbstractAverageHistogram::resampleDoubleBinWidth | ( | bool | bIntegerBins | ) | const |
Creates a copy of the histogram with double the bin width.
[in] | bIntegerBins | If true , the first bin in the result will cover the first bin from the source. Otherwise, the first bin will cover first two bins from the source. |
std::bad_alloc | if out of memory. |
The caller is responsible of deleting the returned object.