Package hep.aida.ref
Class Histogram3D
- java.lang.Object
-
- hep.aida.ref.Histogram
-
- hep.aida.ref.AbstractHistogram3D
-
- hep.aida.ref.Histogram3D
-
- All Implemented Interfaces:
IHistogram
,IHistogram3D
,java.io.Serializable
public class Histogram3D extends AbstractHistogram3D implements IHistogram3D
A reference implementation of hep.aida.IHistogram3D. The goal is to provide a clear implementation rather than the most efficient implementation. However, performance seems fine - filling 3 * 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[][][]
entries
private double[][][]
errors
private double[][][]
heights
private double
meanX
private double
meanY
private double
meanZ
private int
nEntry
private double
rmsX
private double
rmsY
private double
rmsZ
private double
sumWeight
private double
sumWeightSquared
-
Fields inherited from class hep.aida.ref.AbstractHistogram3D
xAxis, yAxis, zAxis
-
Fields inherited from interface hep.aida.IHistogram
OVERFLOW, serialVersionUID, UNDERFLOW
-
-
Constructor Summary
Constructors Constructor Description Histogram3D(java.lang.String title, double[] xEdges, double[] yEdges, double[] zEdges)
Creates a variable-width histogram.Histogram3D(java.lang.String title, int xBins, double xMin, double xMax, int yBins, double yMin, double yMax, int zBins, double zMin, double zMax)
Creates a fixed-width histogram.Histogram3D(java.lang.String title, IAxis xAxis, IAxis yAxis, IAxis zAxis)
Creates a histogram with the given axis binning.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
allEntries()
Number of all entries in all (both in-range and under/overflow) bins in the histogram.int
binEntries(int indexX, int indexY, int indexZ)
The number of entries (ie the number of times fill was called for this bin).double
binError(int indexX, int indexY, int indexZ)
The error on this bin.double
binHeight(int indexX, int indexY, int indexZ)
Total height of the corresponding bin (ie the sum of the weights in this bin).double
equivalentBinEntries()
Number of equivalent entries.void
fill(double x, double y, double z)
Fill the histogram with weight 1; equivalent to fill(x,y,z,1)..void
fill(double x, double y, double z, double weight)
Fill the histogram with specified weight.protected IHistogram2D
internalSliceXY(java.lang.String title, int indexZ1, int indexZ2)
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 IHistogram2D
internalSliceXZ(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 IHistogram2D
internalSliceYZ(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.double
meanX()
Returns the mean of the histogram, as calculated on filling-time projected on the X axis.double
meanY()
Returns the mean of the histogram, as calculated on filling-time projected on the Y axis.double
meanZ()
Returns the mean of the histogram, as calculated on filling-time projected on the Z axis.void
reset()
Reset contents; as if just constructed.double
rmsX()
Returns the rms of the histogram as calculated on filling-time projected on the X axis.double
rmsY()
Returns the rms of the histogram as calculated on filling-time projected on the Y axis.double
rmsZ()
Returns the rms of the histogram as calculated on filling-time projected on the Z axis.double
sumAllBinHeights()
Sum of all (both in-range and under/overflow) bin heights in the histogram.-
Methods inherited from class hep.aida.ref.AbstractHistogram3D
dimensions, entries, extraEntries, mapX, mapY, mapZ, minMaxBins, projectionXY, projectionXZ, projectionYZ, sliceXY, sliceXY, sliceXZ, sliceXZ, sliceYZ, sliceYZ, sumBinHeights, sumExtraBinHeights, xAxis, yAxis, zAxis
-
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.IHistogram3D
minMaxBins, projectionXY, projectionXZ, projectionYZ, sliceXY, sliceXY, sliceXZ, sliceXZ, sliceYZ, sliceYZ, xAxis, yAxis, zAxis
-
-
-
-
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
-
meanZ
private double meanZ
-
rmsZ
private double rmsZ
-
-
Constructor Detail
-
Histogram3D
public Histogram3D(java.lang.String title, double[] xEdges, double[] yEdges, double[] zEdges)
Creates a variable-width histogram. Example: xEdges = (0.2, 1.0, 5.0, 6.0), yEdges = (-5, 0, 7), zEdges = (-5, 0, 7) yields 3*2*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.zEdges
- the bin boundaries the z-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|| zEdges.length < 1.
-
Histogram3D
public Histogram3D(java.lang.String title, int xBins, double xMin, double xMax, int yBins, double yMin, double yMax, int zBins, double zMin, double zMax)
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.zBins
- The number of bins on the Z axis.zMin
- The minimum value on the Z axis.zMax
- The maximum value on the Z axis.
-
Histogram3D
public Histogram3D(java.lang.String title, IAxis xAxis, IAxis yAxis, IAxis zAxis)
Creates a histogram with the given axis binning.- Parameters:
title
- The histogram title.xAxis
- The x-axis description to be used for binning.yAxis
- The y-axis description to be used for binning.zAxis
- The z-axis description to be used for binning.
-
-
Method Detail
-
allEntries
public int allEntries()
Description copied from interface:IHistogram
Number of all entries in all (both in-range and under/overflow) bins in the histogram.- Specified by:
allEntries
in interfaceIHistogram
- Overrides:
allEntries
in classAbstractHistogram3D
-
binEntries
public int binEntries(int indexX, int indexY, int indexZ)
Description copied from interface:IHistogram3D
The number of entries (ie the number of times fill was called for this bin).- Specified by:
binEntries
in interfaceIHistogram3D
- 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.indexZ
- the z bin number (0...Nz-1) or OVERFLOW or UNDERFLOW.
-
binError
public double binError(int indexX, int indexY, int indexZ)
Description copied from interface:IHistogram3D
The error on this bin.- Specified by:
binError
in interfaceIHistogram3D
- 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.indexZ
- the z bin number (0...Nz-1) or OVERFLOW or UNDERFLOW.
-
binHeight
public double binHeight(int indexX, int indexY, int indexZ)
Description copied from interface:IHistogram3D
Total height of the corresponding bin (ie the sum of the weights in this bin).- Specified by:
binHeight
in interfaceIHistogram3D
- 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.indexZ
- the z bin number (0...Nz-1) or OVERFLOW or UNDERFLOW.
-
equivalentBinEntries
public double equivalentBinEntries()
Description copied from interface:IHistogram
Number of equivalent entries.- Specified by:
equivalentBinEntries
in interfaceIHistogram
- Returns:
- SUM[ weight ] ^ 2 / SUM[ weight^2 ].
-
fill
public void fill(double x, double y, double z)
Description copied from interface:IHistogram3D
Fill the histogram with weight 1; equivalent to fill(x,y,z,1)..- Specified by:
fill
in interfaceIHistogram3D
- Overrides:
fill
in classAbstractHistogram3D
-
fill
public void fill(double x, double y, double z, double weight)
Description copied from interface:IHistogram3D
Fill the histogram with specified weight.- Specified by:
fill
in interfaceIHistogram3D
-
internalSliceXY
protected IHistogram2D internalSliceXY(java.lang.String title, int indexZ1, int indexZ2)
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:
internalSliceXY
in classAbstractHistogram3D
-
internalSliceXZ
protected IHistogram2D internalSliceXZ(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:
internalSliceXZ
in classAbstractHistogram3D
-
internalSliceYZ
protected IHistogram2D internalSliceYZ(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:
internalSliceYZ
in classAbstractHistogram3D
-
meanX
public double meanX()
Description copied from interface:IHistogram3D
Returns the mean of the histogram, as calculated on filling-time projected on the X axis.- Specified by:
meanX
in interfaceIHistogram3D
-
meanY
public double meanY()
Description copied from interface:IHistogram3D
Returns the mean of the histogram, as calculated on filling-time projected on the Y axis.- Specified by:
meanY
in interfaceIHistogram3D
-
meanZ
public double meanZ()
Description copied from interface:IHistogram3D
Returns the mean of the histogram, as calculated on filling-time projected on the Z axis.- Specified by:
meanZ
in interfaceIHistogram3D
-
reset
public void reset()
Description copied from interface:IHistogram
Reset contents; as if just constructed.- Specified by:
reset
in interfaceIHistogram
-
rmsX
public double rmsX()
Description copied from interface:IHistogram3D
Returns the rms of the histogram as calculated on filling-time projected on the X axis.- Specified by:
rmsX
in interfaceIHistogram3D
-
rmsY
public double rmsY()
Description copied from interface:IHistogram3D
Returns the rms of the histogram as calculated on filling-time projected on the Y axis.- Specified by:
rmsY
in interfaceIHistogram3D
-
rmsZ
public double rmsZ()
Description copied from interface:IHistogram3D
Returns the rms of the histogram as calculated on filling-time projected on the Z axis.- Specified by:
rmsZ
in interfaceIHistogram3D
-
sumAllBinHeights
public double sumAllBinHeights()
Description copied from interface:IHistogram
Sum of all (both in-range and under/overflow) bin heights in the histogram.- Specified by:
sumAllBinHeights
in interfaceIHistogram
- Overrides:
sumAllBinHeights
in classAbstractHistogram3D
-
-