Package hep.aida.ref
Class Histogram3D
java.lang.Object
hep.aida.ref.Histogram3D
- All Implemented Interfaces:
IHistogram,IHistogram3D,Serializable
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
- Author:
- Wolfgang Hoschek, Tony Johnson, and others.
- See Also:
-
Field Summary
FieldsFields inherited from interface hep.aida.IHistogram
OVERFLOW, serialVersionUID, UNDERFLOW -
Constructor Summary
ConstructorsConstructorDescriptionHistogram3D(String title, double[] xEdges, double[] yEdges, double[] zEdges) Creates a variable-width histogram.Histogram3D(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(String title, IAxis xAxis, IAxis yAxis, IAxis zAxis) Creates a histogram with the given axis binning. -
Method Summary
Modifier and TypeMethodDescriptionintNumber of all entries in all (both in-range and under/overflow) bins in the histogram.intbinEntries(int indexX, int indexY, int indexZ) The number of entries (ie the number of times fill was called for this bin).doublebinError(int indexX, int indexY, int indexZ) The error on this bin.doublebinHeight(int indexX, int indexY, int indexZ) Total height of the corresponding bin (ie the sum of the weights in this bin).intReturns 1 for one-dimensional histograms, 2 for two-dimensional histograms, and so on.intentries()Number of in-range entries in the histogram.doubleNumber of equivalent entries.intNumber of under and overflow entries in the histogram.voidfill(double x, double y, double z) Fill the histogram with weight 1; equivalent to fill(x,y,z,1)..voidfill(double x, double y, double z, double weight) Fill the histogram with specified weight.protected IHistogram2DinternalSliceXY(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 IHistogram2DinternalSliceXZ(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 IHistogram2DinternalSliceYZ(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.doublemeanZ()Returns the mean of the histogram, as calculated on filling-time projected on the Z axis.int[]Indexes of the in-range bins containing the smallest and largest binHeight(), respectively.Create a projection parallel to the XY plane.Create a projection parallel to the XZ plane.Create a projection parallel to the YZ plane.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.doublermsZ()Returns the rms of the histogram as calculated on filling-time projected on the Z axis.sliceXY(int indexZ) Create a slice parallel to the XY plane at bin indexZ and one bin wide.sliceXY(int indexZ1, int indexZ2) Create a slice parallel to the XY plane, between "indexZ1" and "indexZ2" (inclusive).sliceXZ(int indexY) Create a slice parallel to the XZ plane at bin indexY and one bin wide.sliceXZ(int indexY1, int indexY2) Create a slice parallel to the XZ plane, between "indexY1" and "indexY2" (inclusive).sliceYZ(int indexX) Create a slice parallel to the YZ plane at bin indexX and one bin wide.sliceYZ(int indexX1, int indexX2) Create a slice parallel to the YZ plane, between "indexX1" and "indexX2" (inclusive).doubleSum of all (both in-range and under/overflow) bin heights in the histogram.doubleSum of in-range bin heights in the histogram.doubleSum of under/overflow bin heights in the histogram.title()Title of the histogram (will be set only in the constructor).xAxis()Return the X axis.yAxis()Return the Y axis.zAxis()Return the Z axis.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface hep.aida.IHistogram
dimensions, entries, extraEntries, sumBinHeights, sumExtraBinHeights, titleMethods inherited from interface hep.aida.IHistogram3D
minMaxBins, projectionXY, projectionXZ, projectionYZ, sliceXY, sliceXY, sliceXZ, sliceXZ, sliceYZ, sliceYZ, xAxis, yAxis, zAxis
-
Field Details
-
xAxis
-
yAxis
-
zAxis
-
-
Constructor Details
-
Histogram3D
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:
IllegalArgumentException- if xEdges.length invalid input: '<' 1 || yEdges.length invalid input: '<' 1|| zEdges.length invalid input: '<' 1.
-
Histogram3D
public Histogram3D(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
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 Details
-
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
-
binEntries
public int binEntries(int indexX, int indexY, int indexZ) Description copied from interface:IHistogram3DThe number of entries (ie the number of times fill was called for this bin).- Specified by:
binEntriesin 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:IHistogram3DThe error on this bin.- Specified by:
binErrorin 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:IHistogram3DTotal height of the corresponding bin (ie the sum of the weights in this bin).- Specified by:
binHeightin 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:IHistogramNumber of equivalent entries.- Specified by:
equivalentBinEntriesin interfaceIHistogram- Returns:
- SUM[ weight ] ^ 2 / SUM[ weight^2 ].
-
fill
public void fill(double x, double y, double z) Description copied from interface:IHistogram3DFill the histogram with weight 1; equivalent to fill(x,y,z,1)..- Specified by:
fillin interfaceIHistogram3D
-
fill
public void fill(double x, double y, double z, double weight) Description copied from interface:IHistogram3DFill the histogram with specified weight.- Specified by:
fillin interfaceIHistogram3D
-
internalSliceXY
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)
-
internalSliceXZ
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)
-
internalSliceYZ
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)
-
meanX
public double meanX()Description copied from interface:IHistogram3DReturns the mean of the histogram, as calculated on filling-time projected on the X axis.- Specified by:
meanXin interfaceIHistogram3D
-
meanY
public double meanY()Description copied from interface:IHistogram3DReturns the mean of the histogram, as calculated on filling-time projected on the Y axis.- Specified by:
meanYin interfaceIHistogram3D
-
meanZ
public double meanZ()Description copied from interface:IHistogram3DReturns the mean of the histogram, as calculated on filling-time projected on the Z axis.- Specified by:
meanZin interfaceIHistogram3D
-
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:IHistogram3DReturns the rms of the histogram as calculated on filling-time projected on the X axis.- Specified by:
rmsXin interfaceIHistogram3D
-
rmsY
public double rmsY()Description copied from interface:IHistogram3DReturns the rms of the histogram as calculated on filling-time projected on the Y axis.- Specified by:
rmsYin interfaceIHistogram3D
-
rmsZ
public double rmsZ()Description copied from interface:IHistogram3DReturns the rms of the histogram as calculated on filling-time projected on the Z axis.- Specified by:
rmsZin interfaceIHistogram3D
-
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
-
dimensions
public int dimensions()Description copied from interface:IHistogramReturns 1 for one-dimensional histograms, 2 for two-dimensional histograms, and so on.- Specified by:
dimensionsin interfaceIHistogram
-
entries
public int entries()Description copied from interface:IHistogramNumber of in-range entries in the histogram.- Specified by:
entriesin interfaceIHistogram
-
extraEntries
public int extraEntries()Description copied from interface:IHistogramNumber of under and overflow entries in the histogram.- Specified by:
extraEntriesin interfaceIHistogram
-
minMaxBins
public int[] minMaxBins()Description copied from interface:IHistogram3DIndexes of the in-range bins containing the smallest and largest binHeight(), respectively.- Specified by:
minMaxBinsin interfaceIHistogram3D- Returns:
- {minBinX,minBinY,minBinZ, maxBinX,maxBinY,maxBinZ}.
-
projectionXY
Description copied from interface:IHistogram3DCreate a projection parallel to the XY plane. Equivalent to sliceXY(UNDERFLOW,OVERFLOW).- Specified by:
projectionXYin interfaceIHistogram3D
-
projectionXZ
Description copied from interface:IHistogram3DCreate a projection parallel to the XZ plane. Equivalent to sliceXZ(UNDERFLOW,OVERFLOW).- Specified by:
projectionXZin interfaceIHistogram3D
-
projectionYZ
Description copied from interface:IHistogram3DCreate a projection parallel to the YZ plane. Equivalent to sliceYZ(UNDERFLOW,OVERFLOW).- Specified by:
projectionYZin interfaceIHistogram3D
-
sliceXY
Description copied from interface:IHistogram3DCreate a slice parallel to the XY plane at bin indexZ and one bin wide. Equivalent to sliceXY(indexZ,indexZ).- Specified by:
sliceXYin interfaceIHistogram3D
-
sliceXY
Description copied from interface:IHistogram3DCreate a slice parallel to the XY plane, between "indexZ1" and "indexZ2" (inclusive). The returned IHistogram2D represents an instantaneous snapshot of the histogram at the time the slice was created.- Specified by:
sliceXYin interfaceIHistogram3D
-
sliceXZ
Description copied from interface:IHistogram3DCreate a slice parallel to the XZ plane at bin indexY and one bin wide. Equivalent to sliceXZ(indexY,indexY).- Specified by:
sliceXZin interfaceIHistogram3D
-
sliceXZ
Description copied from interface:IHistogram3DCreate a slice parallel to the XZ plane, between "indexY1" and "indexY2" (inclusive). The returned IHistogram2D represents an instantaneous snapshot of the histogram at the time the slice was created.- Specified by:
sliceXZin interfaceIHistogram3D
-
sliceYZ
Description copied from interface:IHistogram3DCreate a slice parallel to the YZ plane at bin indexX and one bin wide. Equivalent to sliceYZ(indexX,indexX).- Specified by:
sliceYZin interfaceIHistogram3D
-
sliceYZ
Description copied from interface:IHistogram3DCreate a slice parallel to the YZ plane, between "indexX1" and "indexX2" (inclusive). The returned IHistogram2D represents an instantaneous snapshot of the histogram at the time the slice was created.- Specified by:
sliceYZin interfaceIHistogram3D
-
sumBinHeights
public double sumBinHeights()Description copied from interface:IHistogramSum of in-range bin heights in the histogram.- Specified by:
sumBinHeightsin interfaceIHistogram
-
sumExtraBinHeights
public double sumExtraBinHeights()Description copied from interface:IHistogramSum of under/overflow bin heights in the histogram.- Specified by:
sumExtraBinHeightsin interfaceIHistogram
-
xAxis
Description copied from interface:IHistogram3DReturn the X axis.- Specified by:
xAxisin interfaceIHistogram3D
-
yAxis
Description copied from interface:IHistogram3DReturn the Y axis.- Specified by:
yAxisin interfaceIHistogram3D
-
zAxis
Description copied from interface:IHistogram3DReturn the Z axis.- Specified by:
zAxisin interfaceIHistogram3D
-
title
Description copied from interface:IHistogramTitle of the histogram (will be set only in the constructor).- Specified by:
titlein interfaceIHistogram
-