Package hep.aida.ref
Class Histogram2D
- java.lang.Object
-
- hep.aida.ref.Histogram
-
- hep.aida.ref.AbstractHistogram2D
-
- hep.aida.ref.Histogram2D
-
- All Implemented Interfaces:
IHistogram,IHistogram2D,java.io.Serializable
public class Histogram2D extends AbstractHistogram2D implements IHistogram2D
A reference implementation of hep.aida.IHistogram2D. The goal is to provide a clear implementation rather than the most efficient implementation. However, performance seems fine - filling 6 * 10^5 points/sec, both using FixedAxis or VariableAxis.- Version:
- 1.0, 23/03/2000
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private int[][]entriesprivate double[][]errorsprivate double[][]heightsprivate doublemeanXprivate doublemeanYprivate intnEntryprivate doublermsXprivate doublermsYprivate doublesumWeightprivate doublesumWeightSquared-
Fields inherited from class hep.aida.ref.AbstractHistogram2D
xAxis, yAxis
-
Fields inherited from interface hep.aida.IHistogram
OVERFLOW, serialVersionUID, UNDERFLOW
-
-
Constructor Summary
Constructors Constructor Description Histogram2D(java.lang.String title, double[] xEdges, double[] yEdges)Creates a variable-width histogram.Histogram2D(java.lang.String title, int xBins, double xMin, double xMax, int yBins, double yMin, double yMax)Creates a fixed-width histogram.Histogram2D(java.lang.String title, IAxis xAxis, IAxis yAxis)Creates a histogram with the given axis binning.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intallEntries()Number of all entries in all (both in-range and under/overflow) bins in the histogram.intbinEntries(int indexX, int indexY)The number of entries (ie the number of times fill was called for this bin).doublebinError(int indexX, int indexY)The error on this bin.doublebinHeight(int indexX, int indexY)Total height of the corresponding bin (ie the sum of the weights in this bin).doubleequivalentBinEntries()Number of equivalent entries.voidfill(double x, double y)Fill the histogram with weight 1.voidfill(double x, double y, double weight)Fill the histogram with specified weight.protected IHistogram1DinternalSliceX(java.lang.String title, int indexY1, int indexY2)The precise meaning of the arguments to the public slice methods is somewhat ambiguous, so we define this internal slice method and clearly specify its arguments.protected IHistogram1DinternalSliceY(java.lang.String title, int indexX1, int indexX2)The precise meaning of the arguments to the public slice methods is somewhat ambiguous, so we define this internal slice method and clearly specify its arguments.doublemeanX()Returns the mean of the histogram, as calculated on filling-time projected on the X axis.doublemeanY()Returns the mean of the histogram, as calculated on filling-time projected on the Y axis.voidreset()Reset contents; as if just constructed.doublermsX()Returns the rms of the histogram as calculated on filling-time projected on the X axis.doublermsY()Returns the rms of the histogram as calculated on filling-time projected on the Y axis.(package private) voidsetContents(int[][] entries, double[][] heights, double[][] errors)Used internally for creating slices and projectionsdoublesumAllBinHeights()Sum of all (both in-range and under/overflow) bin heights in the histogram.-
Methods inherited from class hep.aida.ref.AbstractHistogram2D
binEntriesX, binEntriesY, binHeightX, binHeightY, dimensions, entries, extraEntries, mapX, mapY, minMaxBins, projectionX, projectionY, sliceX, sliceX, sliceY, sliceY, sumBinHeights, sumExtraBinHeights, xAxis, yAxis
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface hep.aida.IHistogram
dimensions, entries, extraEntries, sumBinHeights, sumExtraBinHeights, title
-
Methods inherited from interface hep.aida.IHistogram2D
binEntriesX, binEntriesY, binHeightX, binHeightY, minMaxBins, projectionX, projectionY, sliceX, sliceX, sliceY, sliceY, xAxis, yAxis
-
-
-
-
Field Detail
-
heights
private double[][] heights
-
errors
private double[][] errors
-
entries
private int[][] entries
-
nEntry
private int nEntry
-
sumWeight
private double sumWeight
-
sumWeightSquared
private double sumWeightSquared
-
meanX
private double meanX
-
rmsX
private double rmsX
-
meanY
private double meanY
-
rmsY
private double rmsY
-
-
Constructor Detail
-
Histogram2D
public Histogram2D(java.lang.String title, double[] xEdges, double[] yEdges)Creates a variable-width histogram. Example: xEdges = (0.2, 1.0, 5.0, 6.0), yEdges = (-5, 0, 7) yields 3*2 in-range bins.- Parameters:
title- The histogram title.xEdges- the bin boundaries the x-axis shall have; must be sorted ascending and must not contain multiple identical elements.yEdges- the bin boundaries the y-axis shall have; must be sorted ascending and must not contain multiple identical elements.- Throws:
java.lang.IllegalArgumentException- if xEdges.length < 1 || yEdges.length < 1.
-
Histogram2D
public Histogram2D(java.lang.String title, int xBins, double xMin, double xMax, int yBins, double yMin, double yMax)Creates a fixed-width histogram.- Parameters:
title- The histogram title.xBins- The number of bins on the X axis.xMin- The minimum value on the X axis.xMax- The maximum value on the X axis.yBins- The number of bins on the Y axis.yMin- The minimum value on the Y axis.yMax- The maximum value on the Y axis.
-
-
Method Detail
-
allEntries
public int allEntries()
Description copied from interface:IHistogramNumber of all entries in all (both in-range and under/overflow) bins in the histogram.- Specified by:
allEntriesin interfaceIHistogram- Overrides:
allEntriesin classAbstractHistogram2D
-
binEntries
public int binEntries(int indexX, int indexY)Description copied from interface:IHistogram2DThe number of entries (ie the number of times fill was called for this bin).- Specified by:
binEntriesin interfaceIHistogram2D- Parameters:
indexX- the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.indexY- the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-
binError
public double binError(int indexX, int indexY)Description copied from interface:IHistogram2DThe error on this bin.- Specified by:
binErrorin interfaceIHistogram2D- Parameters:
indexX- the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.indexY- the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-
binHeight
public double binHeight(int indexX, int indexY)Description copied from interface:IHistogram2DTotal height of the corresponding bin (ie the sum of the weights in this bin).- Specified by:
binHeightin interfaceIHistogram2D- Parameters:
indexX- the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.indexY- the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-
equivalentBinEntries
public double equivalentBinEntries()
Description copied from interface:IHistogramNumber of equivalent entries.- Specified by:
equivalentBinEntriesin interfaceIHistogram- Returns:
- SUM[ weight ] ^ 2 / SUM[ weight^2 ].
-
fill
public void fill(double x, double y)Description copied from interface:IHistogram2DFill the histogram with weight 1.- Specified by:
fillin interfaceIHistogram2D- Overrides:
fillin classAbstractHistogram2D
-
fill
public void fill(double x, double y, double weight)Description copied from interface:IHistogram2DFill the histogram with specified weight.- Specified by:
fillin interfaceIHistogram2D
-
internalSliceX
protected IHistogram1D internalSliceX(java.lang.String title, int indexY1, int indexY2)
The precise meaning of the arguments to the public slice methods is somewhat ambiguous, so we define this internal slice method and clearly specify its arguments.Note 0indexY1 and indexY2 use our INTERNAL bin numbering scheme Note 1The slice is done between indexY1 and indexY2 INCLUSIVE Note 2indexY1 and indexY2 may include the use of under and over flow bins Note 3There is no note 3 (yet)
- Specified by:
internalSliceXin classAbstractHistogram2D
-
internalSliceY
protected IHistogram1D internalSliceY(java.lang.String title, int indexX1, int indexX2)
The precise meaning of the arguments to the public slice methods is somewhat ambiguous, so we define this internal slice method and clearly specify its arguments.Note 0indexX1 and indexX2 use our INTERNAL bin numbering scheme Note 1The slice is done between indexX1 and indexX2 INCLUSIVE Note 2indexX1 and indexX2 may include the use of under and over flow bins Note 3There is no note 3 (yet)
- Specified by:
internalSliceYin classAbstractHistogram2D
-
meanX
public double meanX()
Description copied from interface:IHistogram2DReturns the mean of the histogram, as calculated on filling-time projected on the X axis.- Specified by:
meanXin interfaceIHistogram2D
-
meanY
public double meanY()
Description copied from interface:IHistogram2DReturns the mean of the histogram, as calculated on filling-time projected on the Y axis.- Specified by:
meanYin interfaceIHistogram2D
-
reset
public void reset()
Description copied from interface:IHistogramReset contents; as if just constructed.- Specified by:
resetin interfaceIHistogram
-
rmsX
public double rmsX()
Description copied from interface:IHistogram2DReturns the rms of the histogram as calculated on filling-time projected on the X axis.- Specified by:
rmsXin interfaceIHistogram2D
-
rmsY
public double rmsY()
Description copied from interface:IHistogram2DReturns the rms of the histogram as calculated on filling-time projected on the Y axis.- Specified by:
rmsYin interfaceIHistogram2D
-
setContents
void setContents(int[][] entries, double[][] heights, double[][] errors)Used internally for creating slices and projections
-
sumAllBinHeights
public double sumAllBinHeights()
Description copied from interface:IHistogramSum of all (both in-range and under/overflow) bin heights in the histogram.- Specified by:
sumAllBinHeightsin interfaceIHistogram- Overrides:
sumAllBinHeightsin classAbstractHistogram2D
-
-