Gromacs  2024.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions
gmx::AbstractAverageHistogram Class Reference

#include <gromacs/analysisdata/modules/histogram.h>

+ Inheritance diagram for gmx::AbstractAverageHistogram:
+ Collaboration diagram for gmx::AbstractAverageHistogram:

Description

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 AnalysisHistogramSettingssettings () 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 AnalysisDataValuevalue (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...
 
AnalysisDataValuevalue (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...
 
AnalysisDataModuleManagermoduleManager ()
 Returns the module manager to use for calling notification methods.
 
const AnalysisDataModuleManagermoduleManager () 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...
 

Constructor & Destructor Documentation

gmx::AbstractAverageHistogram::AbstractAverageHistogram ( )
protected

Creates a histogram module with undefined bins.

Bin parameters must be defined with init() before data input is started.

Member Function Documentation

AverageHistogramPointer gmx::AbstractAverageHistogram::clone ( ) const

Creates a deep copy of the histogram.

Exceptions
std::bad_allocif 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.

void gmx::AbstractAverageHistogram::done ( )
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.

Parameters
[in]bIntegerBinsIf 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.
Exceptions
std::bad_allocif out of memory.

The caller is responsible of deleting the returned object.


The documentation for this class was generated from the following files: