jhplot
Class H1D

java.lang.Object
  extended by jhplot.DrawOptions
      extended by jhplot.H1D
All Implemented Interfaces:
java.io.Serializable

public class H1D
extends DrawOptions
implements java.io.Serializable

Class to create a histogram in one dimension (1D). Based on JAIDA Histogram1D class.

See Also:
Serialized Form

Constructor Summary
H1D()
          Build 1D histogram.
H1D(Histogram1D h1)
          Create H1D histogram from JAIDA Histogram1D class.
H1D(hep.aida.IHistogram1D h1)
          Create H1D histogram from JAIDA IHistogram1D class
H1D(java.lang.String title, double[] edges)
          Create 1D histogram with variable bin size.
H1D(java.lang.String title, H1D h1d)
          Create H1D from another instance.
H1D(java.lang.String title, hep.aida.IAxis axis)
          Create 1D histogram with variable bin size.
H1D(java.lang.String title, int bins, double min, double max)
          Build 1D histogram
H1D(hep.io.root.interfaces.TH1 h1t)
          Create H1D histogram from JAIDA TH1 histogram class
 
Method Summary
 int allEntries()
          Get number of all entries
 double binCenter(int index)
          Get bin centres.
 double[] binCenters()
          Get all bin centers in form of array
 int[] binEntries()
          Get all entries of the histogram as an array
 int binEntries(int index)
          Number of entries in a bin with index i
 double binError(int index)
          Error on the bin with index i
 double[] binErrors()
          Get all bin errors of the histogram as an array
 double binHeight(int index)
          Height of the corresponding bin
 double[] binHeights()
          Get all heights of the histogram as an array
 double binLowerEdge(int index)
          Get bin lower edge.
 double[] binLowerEdges()
          Get all lower edges in form of array
 double binMean(int index)
          Mean in a single bin with index
 double binRms(int index)
          RMS of a single bin with index
 double binUpperEdge(int index)
          Get bin upper edge.
 double[] binUpperEdges()
          Get all upper edges in form of array
 void clear()
          Make a copy of the data holder
 H1D copy()
          Make a copy of the data holder
 H1D copy(java.lang.String newtitle)
          Get exact copy of the current histogram.
 void doc()
          Show online documentation.
 int entries()
          Number of in-range entries in the histogram
 int extraEntries()
          Number of under and overflow entries in the histogram.
 void fill(double value)
          Fill histogram with a value
 void fill(double[] values)
          Fill histogram with array of double values
 void fill(double[] values, double[] weights)
          Fill histogram with array of double values.
 void fill(double value, double weight)
          Fill histogram a with weight
 void fill(int[] values)
          Fill histogram with array of integer values
 void fill(P0D p0d)
          Fill histogram from P0D array
 void fill(P0I p0i)
          Fill histogram from P0I array
 void fill(PND pnd)
          Fill histogram with values from a PND array.
 void fill(PND pnd, PND weigths)
          Fill histograms with values from PND array.
 void fillInvBinSizeWeight(double value)
          Fill histogram with a value, weighting it by inverse of bin size.
 int findBin(double x)
          Convert a coordinate on the axis to a bin number
 Histogram1D get()
          Get JAIDA histogram
 hep.aida.IAxis getAxis()
          Get histogram Axis class.
 int getBins()
          Get the number of bins
 double getBinSize()
          Get bin width in case of fixed-size bins.
 H1D getDensity()
          Get a density distribution dividing each bin of the histogram by the bin width and the total number of heights for all bins.
 double getEntropy()
          Returns the entropy of the histogram.
 double getMax()
          Get Maximum value of axis
 double getMin()
          Get Minimum value of the axis
 int getOverflow()
          Number of overflow entries
 double getOverflowlowHeight()
          Overflow height
 H1D getProbability()
          Return q probability distribution derived from a histogram.
 java.lang.String getTitle()
          get Title of the histogram
 int getUnderflow()
          Number of underflow entries
 double getUnderflowHeight()
          Underflow height
 double[][] getValues(int mode)
          Get positions in X,Y and Errors.
 double integral()
          Sum of all heights
 double integral(int BinMin, int BinMax)
          Integrate a histogram between two bin indices (between 1 and max number) By default the integral is computed as the sum of bin contents in the range.
 double integral(int BinMin, int BinMax, boolean timesBinWidth)
          Integrate a histogram between two bin indices (between 1 and max number) The integral is computed as the sum of bin contents in the range if the last parameter is false.
 double integralRegion(double xmin, double xmax)
          Integrate histogram in a region between Xmin and Xmax.
 double integralRegion(double xmin, double xmax, boolean timesBinWidth)
          Integrate histogram in a region between Xmin and Xmax.
 boolean isFixedBinning()
          Return true if bins have constant bin width
 double maxBinHeight()
          Max value of all bins
 double mean()
          Get mean of the histogram
 double minBinHeight()
          Min value of all bins
 H1D oper(H1D a, java.lang.String what)
          Various manipulations with histograms (+,-,*,/).
 H1D oper(H1D a, java.lang.String title, java.lang.String what)
          Various manipulations with histograms (+,-,*,/).
 H1D operScale(java.lang.String title, double scaleFactor)
          Scale the histogram and return scaled object.
 H1D operSmooth(boolean isWeighted, int k)
          Smooth the histogram.
 H1D operSmoothGauss(double standardDeviation)
          Computes a Gaussian smoothed version of the histogram.
 void print()
          Print histogram on screen
 double rms()
          Get RMS of histogram
 void scale(double scaleFactor)
          Scale the histogram.
 void scale(java.lang.String title, double scaleFactor)
          Scale the histogram.
 void setBins(int bins)
          Sets the number of bins
 void setContents(double[] values, double[] errors)
          Sets the content of H1D histogram.
 void setContents(double[] heights, double[] errors, int[] entries, double[] means, double[] rmss)
          Set the content of the whole Histogram at once.
 void setMax(double max)
          Set Maximum value of axis
 void setMeanAndRms(double mean, double rms)
          Sets the Mean and RMS of H1D histogram
 void setMin(double min)
          Set Min value of axis
 void setNEntries(int entries)
          Sets number of entries of H1D histogram.
 void setTitle(java.lang.String title)
          Sets the title
 void setValidEntries(int entries)
          Sets number of valid entries.
 void shift(double d)
          Shift all bins by some value
 double sumAllBinHeights()
          Sum of all heights
 void toFile(java.lang.String name)
          Write the H1D histogram to a file
 java.lang.String toString()
          Convert the histogram to a string
 void toTable()
          Print a H1D histogram to a Table in a separate frame.
 void toTable(boolean format)
          Print the H1D histogram to a Table in a separate Frame.
 
Methods inherited from class jhplot.DrawOptions
copyLinePars, getBinWidth, getColor, getDrawOption, getDrawOptions, getLegend, getLineParm, getNameX, getNameY, getNameZ, getSymbol, getType, printDrawOptions, printDrawOptions, setBinWidth, setColor, setDrawLine, setDrawLineKey, setDrawOption, setDrawSymbol, setErr, setErrAll, setErrColor, setErrColorX, setErrColorY, setErrFill, setErrFillColor, setErrFillColor, setErrSys, setErrSysFill, setErrSysFillColor, setErrSysFillColor, setErrSysX, setErrSysY, setErrTicSize, setErrX, setErrY, setFill, setFillColor, setFillColorTransparency, setGraphStyle, setLegend, setNameX, setNameY, setNameZ, setPenDash, setPenDash, setPenWidth, setPenWidthErr, setPenWidthErrSys, setStyle, setSymbol, setSymbolSize, setType
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

H1D

public H1D()
Build 1D histogram. Default constructor. Does not do anything.


H1D

public H1D(java.lang.String title,
           int bins,
           double min,
           double max)
Build 1D histogram

Parameters:
title - Title
bins - Number of bins
min - Minimum value
max - Maximum value

H1D

public H1D(java.lang.String title,
           double[] edges)
Create 1D histogram with variable bin size.

Parameters:
title - Title of histogram.
edges - edges

H1D

public H1D(java.lang.String title,
           hep.aida.IAxis axis)
Create 1D histogram with variable bin size.

Parameters:
title - Title of histogram.
edges - edges

H1D

public H1D(Histogram1D h1)
Create H1D histogram from JAIDA Histogram1D class.

Parameters:
h1 - Histogram1D histogram from JAIDA

H1D

public H1D(hep.aida.IHistogram1D h1)
Create H1D histogram from JAIDA IHistogram1D class

Parameters:
h1 - IHistogram1D histogram from JAIDA

H1D

public H1D(java.lang.String title,
           H1D h1d)
Create H1D from another instance.

Parameters:
title - new title
h1d - input H1D

H1D

public H1D(hep.io.root.interfaces.TH1 h1t)
Create H1D histogram from JAIDA TH1 histogram class

Parameters:
h1t - TH1 histogram from JAIDA
Method Detail

print

public void print()
Print histogram on screen


toString

public java.lang.String toString()
Convert the histogram to a string

Overrides:
toString in class java.lang.Object
Returns:
string representing a histogram

toTable

public void toTable()
Print a H1D histogram to a Table in a separate frame. The numbers are formatted to scientific format. One can sort and search the data in this table (cannot be modified).


fill

public void fill(P0D p0d)
Fill histogram from P0D array

Parameters:
p0d - input P0D array

fill

public void fill(P0I p0i)
Fill histogram from P0I array

Parameters:
p0i - input P0I array

getAxis

public hep.aida.IAxis getAxis()
Get histogram Axis class.

Returns:
Axis used for this histogram.

binCenter

public double binCenter(int index)
Get bin centres.

Parameters:
index - bin index
Returns:
bin centre.

binCenters

public double[] binCenters()
Get all bin centers in form of array

Returns:
double[] array of bin centers

binLowerEdge

public double binLowerEdge(int index)
Get bin lower edge.

Parameters:
index - bin index
Returns:
lower edge

binLowerEdges

public double[] binLowerEdges()
Get all lower edges in form of array

Returns:
double[] array of low edges

binUpperEdge

public double binUpperEdge(int index)
Get bin upper edge.

Parameters:
index - bin index
Returns:
upper edge

binUpperEdges

public double[] binUpperEdges()
Get all upper edges in form of array

Returns:
double[] array of upper edges

toTable

public void toTable(boolean format)
Print the H1D histogram to a Table in a separate Frame. One can sort and search the data in this table (but not modify)

Parameters:
format - if true, the numbers will be formatted using the Java scientific format.

toFile

public void toFile(java.lang.String name)
Write the H1D histogram to a file

Parameters:
name - File name

setContents

public void setContents(double[] values,
                        double[] errors)
Sets the content of H1D histogram. Start from 1 to bins+2.

Parameters:
values - array with values in Y (dimension: bins + 2)
errors - array with errors on Y (dimension: bins + 2)

setContents

public void setContents(double[] heights,
                        double[] errors,
                        int[] entries,
                        double[] means,
                        double[] rmss)
Set the content of the whole Histogram at once. This is a convenience method for saving/restoring Histograms. Of the arguments below the heights array cannot be null. The errors array should in general be non-null, but this depends on the specific binner. The entries array can be null, in which case the entry of a bin is taken to be the integer part of the height. If the means array is null, the mean is defaulted to the geometric center of the bin. If the rms array is null, the rms is taken to be the bin width over the root of 12.

Parameters:
heights - The bins heights
errors - The bins errors
entries - The bin entries.
means - The means of the bins.
rmss - The rmss of the bins

setMeanAndRms

public void setMeanAndRms(double mean,
                          double rms)
Sets the Mean and RMS of H1D histogram

Parameters:
mean - mean of the histogram
rms - RMS to be set

setNEntries

public void setNEntries(int entries)
Sets number of entries of H1D histogram.

Parameters:
entries - Number of entries

setValidEntries

public void setValidEntries(int entries)
Sets number of valid entries.

Parameters:
entries - Number of valid entries

setTitle

public void setTitle(java.lang.String title)
Sets the title

Overrides:
setTitle in class DrawOptions
Parameters:
title - Title

getTitle

public java.lang.String getTitle()
get Title of the histogram

Overrides:
getTitle in class DrawOptions
Returns:
Title of histogram

get

public Histogram1D get()
Get JAIDA histogram

Returns:
JAIDA Histogram1D histogram

setMin

public void setMin(double min)
Set Min value of axis

Parameters:
min - Minimum value of axis

getMin

public double getMin()
Get Minimum value of the axis

Returns:
Minimum value of the axis

setMax

public void setMax(double max)
Set Maximum value of axis

Parameters:
max - Maximum value of axis

getMax

public double getMax()
Get Maximum value of axis

Returns:
Maximum value of axis

setBins

public void setBins(int bins)
Sets the number of bins

Parameters:
bins - Number of bins

getBins

public int getBins()
Get the number of bins

Returns:
Number of bins

getBinSize

public double getBinSize()
Get bin width in case of fixed-size bins.

Returns:
bin width (max-min) /bins

shift

public void shift(double d)
Shift all bins by some value

Parameters:
d - parameter used to shift bins

isFixedBinning

public boolean isFixedBinning()
Return true if bins have constant bin width

Returns:
true if bin width is fixed

fill

public void fill(double value)
Fill histogram with a value

Parameters:
value - Value to be filled

fill

public void fill(PND pnd)
Fill histogram with values from a PND array. This means that every entry from PND contributes to histogram. All weights are 1.

Parameters:
pnd - PND used to fill histogram

fill

public void fill(PND pnd,
                 PND weigths)
Fill histograms with values from PND array. Also specify weigths in a form of PND. Make sure that both arrays has the size size and dimension.

Parameters:
pnd - input value
weigths - PND with weights

fill

public void fill(double[] values)
Fill histogram with array of double values

Parameters:
values - array of double values

fill

public void fill(double[] values,
                 double[] weights)
Fill histogram with array of double values. Take into account weights.

Parameters:
values - array of double values
weights - array of double weights

fill

public void fill(int[] values)
Fill histogram with array of integer values

Parameters:
values - array of integer values

fill

public void fill(double value,
                 double weight)
Fill histogram a with weight

Parameters:
value - Value to be filled
weight - Weight of the value

mean

public double mean()
Get mean of the histogram

Returns:
Mean of histogram

rms

public double rms()
Get RMS of histogram

Returns:
RMS of histogram

allEntries

public int allEntries()
Get number of all entries

Returns:
Number of all entries

extraEntries

public int extraEntries()
Number of under and overflow entries in the histogram.

Returns:
Number of under and overflow entries

entries

public int entries()
Number of in-range entries in the histogram

Returns:
Number of in-range entries

getUnderflow

public int getUnderflow()
Number of underflow entries

Returns:
Number of underflow

getUnderflowHeight

public double getUnderflowHeight()
Underflow height

Returns:
height of underflow

getOverflowlowHeight

public double getOverflowlowHeight()
Overflow height

Returns:
Height of underflow

getOverflow

public int getOverflow()
Number of overflow entries

Returns:
Number of overflow entries

fillInvBinSizeWeight

public void fillInvBinSizeWeight(double value)
Fill histogram with a value, weighting it by inverse of bin size. Should be useful for histograms with irregular binning.

Parameters:
value - Value to filled histogram with.

scale

public void scale(java.lang.String title,
                  double scaleFactor)
Scale the histogram.

Parameters:
title - New title
scaleFactor - Scale factor

operScale

public H1D operScale(java.lang.String title,
                     double scaleFactor)
Scale the histogram and return scaled object.

Parameters:
title - New title
scaleFactor - Scale factor

scale

public void scale(double scaleFactor)
Scale the histogram.

Parameters:
scaleFactor - Scale factor

operSmooth

public H1D operSmooth(boolean isWeighted,
                      int k)
Smooth the histogram.

Each band of the histogram is smoothed by averaging over a moving window of a size specified by the method parameter: if the value of the parameter is k then the width of the window is 2*k + 1. If the window runs off the end of the histogram only those values which intersect the histogram are taken into consideration. The smoothing may optionally be weighted to favor the central value using a "triangular" weighting. For example, for a value of k equal to 2 the central bin would have weight 1/3, the adjacent bins 2/9, and the next adjacent bins 1/9. Errors are kept the same as before.

Parameters:
isWeighted - Whether bins will be weighted using a triangular weighting scheme favoring bins near the central bin.
k - The smoothing parameter which must be non-negative. If zero, the histogram object will be returned with no smoothing applied.
Returns:
A smoothed version of the histogram.

operSmoothGauss

public H1D operSmoothGauss(double standardDeviation)
Computes a Gaussian smoothed version of the histogram.

Each band of the histogram is smoothed by discrete convolution with a kernel approximating a Gaussian impulse response with the specified standard deviation.

Parameters:
standardDeviation - The standard deviation of the Gaussian smoothing kernel which must be non-negative or an IllegalArgumentException will be thrown. If zero, the histogram object will be returned with no smoothing applied.
Returns:
A Gaussian smoothed version of the histogram.

getEntropy

public double getEntropy()
Returns the entropy of the histogram.

The entropy is defined to be the negation of the sum of the products of the probability associated with each bin with the base-2 log of the probability.

Returns:
The entropy of the histogram.

copy

public H1D copy()
Make a copy of the data holder

Returns:
New data holder

clear

public void clear()
Make a copy of the data holder


copy

public H1D copy(java.lang.String newtitle)
Get exact copy of the current histogram. This means it makes a new object.

Parameters:
newtitle - New title
Returns:
a new copy of the histogram

binEntries

public int binEntries(int index)
Number of entries in a bin with index i

Parameters:
index - Bin index
Returns:
Number of entries

binEntries

public int[] binEntries()
Get all entries of the histogram as an array

Returns:
array with histogram entries.

binError

public double binError(int index)
Error on the bin with index i

Parameters:
index - Bin index
Returns:
Error

binHeight

public double binHeight(int index)
Height of the corresponding bin

Parameters:
index - Bin index
Returns:
Bin Height

binHeights

public double[] binHeights()
Get all heights of the histogram as an array

Returns:
array with histogram heights.

binErrors

public double[] binErrors()
Get all bin errors of the histogram as an array

Returns:
array with histogram errors.

binMean

public double binMean(int index)
Mean in a single bin with index

Parameters:
index - Bin index
Returns:
Mean value inside of this bin

binRms

public double binRms(int index)
RMS of a single bin with index

Parameters:
index - Bin index
Returns:
RMS of this bin

maxBinHeight

public double maxBinHeight()
Max value of all bins

Returns:
Max value

minBinHeight

public double minBinHeight()
Min value of all bins

Returns:
Min value

sumAllBinHeights

public double sumAllBinHeights()
Sum of all heights

Returns:
Sum of all Heights

integral

public double integral()
Sum of all heights

Returns:
Sum of all Heights

findBin

public int findBin(double x)
Convert a coordinate on the axis to a bin number

Parameters:
x - coordinate on axis
Returns:
index of the corresponding bin

integral

public double integral(int BinMin,
                       int BinMax,
                       boolean timesBinWidth)
Integrate a histogram between two bin indices (between 1 and max number) The integral is computed as the sum of bin contents in the range if the last parameter is false. If it is true, the integral is the sum of the bin contents multiplied by the bin width in x.

Parameters:
BinMin - Min index for integration starting from 1 (included to integration)
BinMax - Max index for integration (start from 1, included to integration)
timesBinWidth - If true, the integral is the sum of the bin contents multiplied by the bin width in x.
Returns:
integral (sum of all heights)

integral

public double integral(int BinMin,
                       int BinMax)
Integrate a histogram between two bin indices (between 1 and max number) By default the integral is computed as the sum of bin contents in the range.

Parameters:
BinMin - Min index for integration starting from 1 (included to integration)
BinMax - Max index for integration (included to integration)
Returns:
integral (sum of all heights)

integralRegion

public double integralRegion(double xmin,
                             double xmax,
                             boolean timesBinWidth)
Integrate histogram in a region between Xmin and Xmax. This will sum up all bin content between the regions.

Parameters:
Xmin - Min index for integration
Xmax - Max index for integration
timesBinWidth - if true, multiply by the bin width.
Returns:
integral (sum of all heights)

integralRegion

public double integralRegion(double xmin,
                             double xmax)
Integrate histogram in a region between Xmin and Xmax. This will sum up all bin content between the regions.

Parameters:
Xmin - Min index for integration
Xmax - Max index for integration
Returns:
integral (sum of all heights)

getProbability

public H1D getProbability()
Return q probability distribution derived from a histogram. The histogram is scaled by the sum of all contents.

Returns:
probability distribution

getDensity

public H1D getDensity()
Get a density distribution dividing each bin of the histogram by the bin width and the total number of heights for all bins.

Returns:
density distribution

oper

public H1D oper(H1D a,
                java.lang.String what)
Various manipulations with histograms (+,-,*,/). Keep the original title. No new histogram object created.

Parameters:
a - H1D histogram.
what - String representing the operation: "+" add a histogram to the original "-" subtract a histogram from the original "*" multiply "/" divide
Returns:
modified H1D histogram

getValues

public double[][] getValues(int mode)
Get positions in X,Y and Errors. For x, we take mean values

Parameters:
mode - if =1, take center of the bins. In all other cases - mean value in each bin
Returns:
array with X,Y, and Error on Y, double[3][bins];

oper

public H1D oper(H1D a,
                java.lang.String title,
                java.lang.String what)
Various manipulations with histograms (+,-,*,/). Note: no new object will be created.

Parameters:
a - H1D histogram.
title - New Title
Returns:
same H1D object but modified

doc

public void doc()
Show online documentation.



jHepWork 2.1 (C) S.Chekanov