This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository colt.

commit ee6d650cd13336a42676f394bf7cceb23e2c9cdd
Author: Andreas Tille <[email protected]>
Date:   Sun Feb 22 21:25:51 2015 +0100

    Imported Upstream version 1.2.0+dfsg2
---
 src/hep/aida/IAxis.java        |  53 -------
 src/hep/aida/IHistogram.java   |  62 --------
 src/hep/aida/IHistogram1D.java |  56 -------
 src/hep/aida/IHistogram2D.java | 119 ---------------
 src/hep/aida/IHistogram3D.java | 134 -----------------
 src/hep/aida/package.html      | 324 -----------------------------------------
 6 files changed, 748 deletions(-)

diff --git a/src/hep/aida/IAxis.java b/src/hep/aida/IAxis.java
deleted file mode 100644
index 0399d16..0000000
--- a/src/hep/aida/IAxis.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package hep.aida;
-
-/**
-An IAxis represents a binned histogram axis. A 1D Histogram would have
-one Axis representing the X axis, while a 2D Histogram would have two
-axes representing the X and Y Axis. 
-
-@author Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony Johnson, 
Andreas Pfeiffer, and others.
-@version 1.0, 23/03/2000
-*/
-public interface IAxis extends java.io.Serializable {
-       static final long serialVersionUID = 1020;
-       /**
-        * Centre of the bin specified.
-        * @param index Bin number (0...bins()-1) or OVERFLOW or UNDERFLOW.
-        */ 
-       public double binCentre(int index );
-       /**
-        * Lower edge of the specified bin.
-        * @param index Bin number (0...bins()-1) or OVERFLOW or UNDERFLOW.
-        * @return the lower edge of the bin; for the underflow bin this is 
<tt>Double.NEGATIVE_INFINITY</tt>.
-        */
-       public double binLowerEdge(int index );
-       /** 
-        * The number of bins (excluding underflow and overflow) on the axis.
-        */
-       public int bins();
-       /**
-        * Upper edge of the specified bin.
-        * @param index Bin number (0...bins()-1) or OVERFLOW or UNDERFLOW.
-        * @return the upper edge of the bin; for the overflow bin this is 
<tt>Double.POSITIVE_INFINITY</tt>.
-        */ 
-       public double binUpperEdge(int index );
-       /**
-        * Width of the bin specified.
-        * @param index Bin number (0...bins()-1) or OVERFLOW or UNDERFLOW.
-        */ 
-       public double binWidth(int index);
-       /**
-        * Converts a coordinate on the axis to a bin number. If the coordinate
-        * is < lowerEdge returns UNDERFLOW, and if the coordinate is >= 
-        * upperEdge returns OVERFLOW.
-        */
-       public int coordToIndex(double coord);
-       /**
-        *  Lower axis edge.
-        */
-       public double lowerEdge();
-       /**
-        *  Upper axis edge.
-        */
-       public double upperEdge();
-}
diff --git a/src/hep/aida/IHistogram.java b/src/hep/aida/IHistogram.java
deleted file mode 100644
index 7127c8b..0000000
--- a/src/hep/aida/IHistogram.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package hep.aida;
-
-/**
-A common base interface for IHistogram1D, IHistogram2D and IHistogram3D.
-
-@author Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony Johnson, 
Andreas Pfeiffer, and others.
-@version 1.0, 23/03/2000
-*/
-public interface IHistogram extends java.io.Serializable
-{
-       /**
-        * Constant specifying the overflow bin (can be passed to any method 
expecting a bin number).
-        */
-       public final static int OVERFLOW = -1;
-       /**
-        * Constant specifying the underflow bin (can be passed to any method 
expecting a bin number).
-        */
-       public final static int UNDERFLOW = -2;
-       
-       static final long serialVersionUID = 1020;
-       /**
-        * Number of all entries in all (both in-range and under/overflow) bins 
in the histogram.
-        */ 
-       public int allEntries();
-       /**
-        * Returns 1 for one-dimensional histograms, 2 for two-dimensional 
histograms, and so on.
-        */ 
-       public int dimensions();
-       /**
-        * Number of in-range entries in the histogram.
-        */ 
-       public int entries();
-       /** 
-        * Number of equivalent entries.
-        * @return <tt>SUM[ weight ] ^ 2 / SUM[ weight^2 ]</tt>.
-        */ 
-       public double equivalentBinEntries();
-       /**
-        * Number of under and overflow entries in the histogram.
-        */ 
-       public int extraEntries();
-       /**
-        * Reset contents; as if just constructed.
-        */
-       public void reset();
-       /**
-        * Sum of all (both in-range and under/overflow) bin heights in the 
histogram.
-        */ 
-       public double sumAllBinHeights();
-       /**
-        * Sum of in-range bin heights in the histogram.
-        */ 
-       public double sumBinHeights();
-       /**
-        * Sum of under/overflow bin heights in the histogram.
-        */ 
-       public double sumExtraBinHeights();
-       /**
-        *  Title of the histogram (will be set only in the constructor).
-        */ 
-       public String title();
-}
diff --git a/src/hep/aida/IHistogram1D.java b/src/hep/aida/IHistogram1D.java
deleted file mode 100644
index 2373fa6..0000000
--- a/src/hep/aida/IHistogram1D.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package hep.aida;
-
-/**
-A Java interface corresponding to the AIDA 1D Histogram.
-<p> 
-<b>Note</b> All methods that accept a bin number as an argument will
-also accept the constants OVERFLOW or UNDERFLOW as the argument, and 
-as a result give the contents of the resulting OVERFLOW or UNDERFLOW
-bin.
-@see <a href="http://wwwinfo.cern.ch/asd/lhc++/AIDA/";>AIDA</a>
-@author Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony Johnson, 
Andreas Pfeiffer, and others.
-@version 1.0, 23/03/2000
-*/
-public interface IHistogram1D extends IHistogram
-{
-       /**
-        * Number of entries in the corresponding bin (ie the number of times 
fill was called for this bin).
-        * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW.
-        */
-       public int binEntries(int index);
-       /**
-        * The error on this bin.
-        * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW.
-        */ 
-       public double binError(int index );
-       /**
-        * Total height of the corresponding bin (ie the sum of the weights in 
this bin).
-        * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW.
-        */ 
-       public double binHeight(int index);
-       /**
-        * Fill histogram with weight 1.
-        */ 
-       public void fill(double x);
-       /**
-        * Fill histogram with specified weight.
-        */
-       public void fill(double x, double weight);
-       /**
-        * Returns the mean of the whole histogram as calculated on 
filling-time.
-        */ 
-       public double mean();
-       /** 
-        * Indexes of the in-range bins containing the smallest and largest 
binHeight(), respectively.
-        * @return <tt>{minBin,maxBin}</tt>.
-        */ 
-       public int[] minMaxBins();
-       /**
-        * Returns the rms of the whole histogram as calculated on filling-time.
-        */ 
-       public double rms();
-       /**
-        * Returns the X Axis.
-        */
-       public IAxis xAxis();
-}
diff --git a/src/hep/aida/IHistogram2D.java b/src/hep/aida/IHistogram2D.java
deleted file mode 100644
index 9566b9e..0000000
--- a/src/hep/aida/IHistogram2D.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package hep.aida;
-
-/**
-A Java interface corresponding to the AIDA 2D Histogram.
-<p> 
-<b>Note</b> All methods that accept a bin number as an argument will
-also accept the constants OVERFLOW or UNDERFLOW as the argument, and 
-as a result give the contents of the resulting OVERFLOW or UNDERFLOW
-bin.
-@see <a href="http://wwwinfo.cern.ch/asd/lhc++/AIDA/";>AIDA</a>
-@author Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony Johnson, 
Andreas Pfeiffer, and others.
-@version 1.0, 23/03/2000
-*/
-public interface IHistogram2D extends IHistogram
-{
-       /**
-        * The number of entries (ie the number of times fill was called for 
this bin).
-        * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.
-        * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-        */
-       public int binEntries(int indexX, int indexY );
-       /**
-        * Equivalent to <tt>projectionX().binEntries(indexX)</tt>.
-        */
-       public int binEntriesX(int indexX);
-       /**
-        * Equivalent to <tt>projectionY().binEntries(indexY)</tt>.
-        */
-       public int binEntriesY(int indexY);
-       /**
-        * The error on this bin.
-        * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.
-        * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-        */ 
-       public double binError(int indexX,int indexY );
-       /**
-        * Total height of the corresponding bin (ie the sum of the weights in 
this bin).
-        * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.
-        * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-        */ 
-       public double binHeight(int indexX,int indexY );
-       /**
-        * Equivalent to <tt>projectionX().binHeight(indexX)</tt>.
-        */
-       public double binHeightX(int indexX);
-       /**
-        * Equivalent to <tt>projectionY().binHeight(indexY)</tt>.
-        */
-       public double binHeightY(int indexY);
-       /**
-        * Fill the histogram with weight 1.
-        */
-       public void fill( double x, double y);
-       /**
-        * Fill the histogram with specified weight.
-        */
-       public void fill( double x, double y, double weight);
-       /**
-        *  Returns the mean of the histogram, as calculated on filling-time 
projected on the X axis.
-        */ 
-       public double meanX();
-       /**
-        *  Returns the mean of the histogram, as calculated on filling-time 
projected on the Y axis.
-        */ 
-       public double meanY();
-       /** 
-        * Indexes of the in-range bins containing the smallest and largest 
binHeight(), respectively.
-        * @return <tt>{minBinX,minBinY, maxBinX,maxBinY}</tt>.
-        */ 
-       public int[] minMaxBins();
-       /**
-        * Create a projection parallel to the X axis.
-        * Equivalent to <tt>sliceX(UNDERFLOW,OVERFLOW)</tt>.
-        */
-       public IHistogram1D projectionX();
-       /**
-        * Create a projection parallel to the Y axis.
-        * Equivalent to <tt>sliceY(UNDERFLOW,OVERFLOW)</tt>.
-        */
-       public IHistogram1D projectionY();
-       /**
-        * Returns the rms of the histogram as calculated on filling-time 
projected on the X axis.
-        */
-       public double rmsX();
-       /**
-        * Returns the rms of the histogram as calculated on filling-time 
projected on the Y axis.
-        */
-       public double rmsY();
-       /**
-        * Slice parallel to the Y axis at bin indexY and one bin wide.
-        * Equivalent to <tt>sliceX(indexY,indexY)</tt>.
-        */
-       public IHistogram1D sliceX(int indexY );
-       /**
-        * Create a slice parallel to the axis X axis, between "indexY1" and 
"indexY2" (inclusive).
-        * The returned IHistogram1D represents an instantaneous snapshot of the
-        * histogram at the time the slice was created.
-        */ 
-       public IHistogram1D sliceX(int indexY1, int indexY2);
-       /**
-        * Slice parallel to the X axis at bin indexX and one bin wide.
-        * Equivalent to <tt>sliceY(indexX,indexX)</tt>.
-        */
-       public IHistogram1D sliceY(int indexX );
-       /**
-        * Create a slice parallel to the axis Y axis, between "indexX1" and 
"indexX2" (inclusive)
-        * The returned IHistogram1D represents an instantaneous snapshot of the
-        * histogram at the time the slice was created.
-        */ 
-       public IHistogram1D sliceY(int indexX1, int indexX2);
-       /**
-        * Return the X axis.
-        */
-       public IAxis xAxis();
-       /**
-        * Return the Y axis.
-        */
-       public IAxis yAxis();
-}
diff --git a/src/hep/aida/IHistogram3D.java b/src/hep/aida/IHistogram3D.java
deleted file mode 100644
index ad50575..0000000
--- a/src/hep/aida/IHistogram3D.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package hep.aida;
-
-/**
-A Java interface corresponding to the AIDA 3D Histogram.
-<p> 
-<b>Note</b> All methods that accept a bin number as an argument will
-also accept the constants OVERFLOW or UNDERFLOW as the argument, and 
-as a result give the contents of the resulting OVERFLOW or UNDERFLOW
-bin.
-@see <a href="http://wwwinfo.cern.ch/asd/lhc++/AIDA/";>AIDA</a>
-@author Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony Johnson, 
Andreas Pfeiffer, and others.
-@version 1.0, 23/03/2000
-*/
-public interface IHistogram3D extends IHistogram
-{
-       /**
-        * The number of entries (ie the number of times fill was called for 
this bin).
-        * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.
-        * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-        * @param indexZ the z bin number (0...Nz-1) or OVERFLOW or UNDERFLOW.
-        */
-       public int binEntries(int indexX, int indexY, int indexZ);
-       /**
-        * The error on this bin.
-        * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.
-        * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-        * @param indexZ the z bin number (0...Nz-1) or OVERFLOW or UNDERFLOW.
-        */ 
-       public double binError(int indexX,int indexY,int indexZ );
-       /**
-        * Total height of the corresponding bin (ie the sum of the weights in 
this bin).
-        * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW.
-        * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW.
-        * @param indexZ the z bin number (0...Nz-1) or OVERFLOW or UNDERFLOW.
-        */ 
-       public double binHeight(int indexX,int indexY,int indexZ);
-       /**
-        * Fill the histogram with weight 1; equivalent to 
<tt>fill(x,y,z,1)</tt>..
-        */
-       public void fill( double x, double y, double z);
-       /**
-        * Fill the histogram with specified weight.
-        */
-       public void fill( double x, double y, double z, double weight);
-       /**
-        *  Returns the mean of the histogram, as calculated on filling-time 
projected on the X axis.
-        */ 
-       public double meanX();
-       /**
-        *  Returns the mean of the histogram, as calculated on filling-time 
projected on the Y axis.
-        */ 
-       public double meanY();
-       /**
-        *  Returns the mean of the histogram, as calculated on filling-time 
projected on the Z axis.
-        */ 
-       public double meanZ();
-       /** 
-        * Indexes of the in-range bins containing the smallest and largest 
binHeight(), respectively.
-        * @return <tt>{minBinX,minBinY,minBinZ, maxBinX,maxBinY,maxBinZ}</tt>.
-        */ 
-       public int[] minMaxBins();
-       /**
-        * Create a projection parallel to the XY plane.
-        * Equivalent to <tt>sliceXY(UNDERFLOW,OVERFLOW)</tt>.
-        */
-       public IHistogram2D projectionXY();
-       /**
-        * Create a projection parallel to the XZ plane.
-        * Equivalent to <tt>sliceXZ(UNDERFLOW,OVERFLOW)</tt>.
-        */
-       public IHistogram2D projectionXZ();
-       /**
-        * Create a projection parallel to the YZ plane.
-        * Equivalent to <tt>sliceYZ(UNDERFLOW,OVERFLOW)</tt>.
-        */
-       public IHistogram2D projectionYZ();
-       /**
-        * Returns the rms of the histogram as calculated on filling-time 
projected on the X axis.
-        */
-       public double rmsX();
-       /**
-        * Returns the rms of the histogram as calculated on filling-time 
projected on the Y axis.
-        */
-       public double rmsY();
-       /**
-        * Returns the rms of the histogram as calculated on filling-time 
projected on the Z axis.
-        */
-       public double rmsZ();
-       /**
-        * Create a slice parallel to the XY plane at bin indexZ and one bin 
wide.
-        * Equivalent to <tt>sliceXY(indexZ,indexZ)</tt>.
-        */
-       public IHistogram2D sliceXY(int indexZ );
-       /**
-        * Create 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.
-        */ 
-       public IHistogram2D sliceXY(int indexZ1, int indexZ2);
-       /**
-        * Create a slice parallel to the XZ plane at bin indexY and one bin 
wide.
-        * Equivalent to <tt>sliceXZ(indexY,indexY)</tt>.
-        */
-       public IHistogram2D sliceXZ(int indexY );
-       /**
-        * Create 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.
-        */ 
-       public IHistogram2D sliceXZ(int indexY1, int indexY2);
-       /**
-        * Create a slice parallel to the YZ plane at bin indexX and one bin 
wide.
-        * Equivalent to <tt>sliceYZ(indexX,indexX)</tt>.
-        */
-       public IHistogram2D sliceYZ(int indexX );
-       /**
-        * Create 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.
-        */ 
-       public IHistogram2D sliceYZ(int indexX1, int indexX2);
-       /**
-        * Return the X axis.
-        */
-       public IAxis xAxis();
-       /**
-        * Return the Y axis.
-        */
-       public IAxis yAxis();
-       /**
-        * Return the Z axis.
-        */
-       public IAxis zAxis();
-}
diff --git a/src/hep/aida/package.html b/src/hep/aida/package.html
deleted file mode 100644
index 0997fb6..0000000
--- a/src/hep/aida/package.html
+++ /dev/null
@@ -1,324 +0,0 @@
-<HTML>
-<HEAD>
-<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
-<TITLE></TITLE>
-</HEAD>
-<BODY>
-<P>Interfaces for compact, extensible, modular and performant histogramming 
functionality. 
-</P>
-<h1><a name="Overview"></a>Getting Started</h1>
-<h2>1. Overview</h2>
-Aida itself offers the histogramming features of HTL and HBOOK, the 
<em>de-facto</em> 
-standard for histogramming for many years. It also offers a number of useful 
extensions, 
-with an object-oriented approach. These features include the following: 
-<p></p>
-<ul>
-  <li>creating and filling of 1D, 2D (and profile histograms, in the 
future)</li>
-  <li>computation of statistics such as the mean, rms, etc. of a histogram</li>
-  <li>support for operations between histograms (in the future)</li>
-  <li>browsing of and access to characteristics of individual histograms</li>
-</ul>
-<p> File-based I/O can be achieved through the standard Java built-in 
serialization 
-  mechanism. All classes implement the {@link java.io.Serializable} interface. 
-  However, the toolkit is entirely decoupled from advanced I/O and 
visualisation 
-  techniques. It provides data structures and algorithms only. 
-<p> This toolkit borrows many concepts from HBOOK and the CERN <a 
href="http://wwwinfo.cern.ch/asd/lhc++/HTL";> 
-  HTL</a> package (C++) largely written by Savrak Sar.
-<p> The definition of an abstract histogram interface allows functionality 
that 
-  is provided by external packages, such as plotting or fitting, to be 
decoupled 
-  from the actual implementation of the histogram. This feature paves the way 
-  for co-existence of different histogram packages that conform to the 
abstract 
-  interface. </p>
-<p>A reference implementation of the interfaces is provided by package {@link 
-  hep.aida.ref}. </p>
-<h2>2. AIDA at a glance</h2>
-<h3>Fixed-width histogram</h3>
-<p>The following code snippet demonstrates example usage: </p>
-<h4> 
-  <table>
-      <td class="PRE"> 
-        <pre>
- IHistogram1D h1 = new Histogram1D("my histo 1",10, -2, +2); // 10 bins, 
min=-2, max=2<br> IHistogram2D h2 = new Histogram2D("my histo 2",10, -2, +2,    
5, -2, +2);
- IHistogram2D h3 = new Histogram3D("my histo 3",10, -2, +2,    5, -2, +2,    
3, -2, +2);
-
- // equivalent
- // IHistogram1D h1 = new Histogram1D("my histo 1",new FixedAxis(10, -2, +2)); 
<br> // IHistogram2D h2 = new Histogram2D("my histo 2",new FixedAxis(10, -2, 
+2),new FixedAxis(5, -2, +2));<br><br> // your favourite distribution goes here
- cern.jet.random.AbstractDistribution gauss = new 
cern.jet.random.Normal(0,1,new cern.jet.random.engine.MersenneTwister());
-<br> for (int i=0; i &lt; 10000; i++) {    <br>    h1.{@link 
hep.aida.IHistogram1D#fill fill}(gauss.nextDouble());
-    h2.{@link hep.aida.IHistogram2D#fill 
fill}(gauss.nextDouble(),gauss.nextDouble());
-    h3.{@link hep.aida.IHistogram3D#fill 
fill}(gauss.nextDouble(),gauss.nextDouble(),gauss.nextDouble());
- }
-
- System.out.println(h1);
- System.out.println(h2);
- System.out.println(h3);
- rms=h1.rms();
- sum=h1.sumBinHeights();
- ...</pre>
-      </td>
-  </table>
-</h4>
-<h3>Variable-width histogram</h3>
-<p>The following code snippet demonstrates example usage: </p>
-<h4> 
-  <table>
-      <td class="PRE"> 
-        <pre>
- double[] xedges = { -5, -1, 0, 1, 5 };
- double[] yedges = { -5, -1, 0.2, 0, 0.2, 1, 5 };
- double[] zedges = { -5, 0, 7 };
- IHistogram1D h1 = new Histogram1D("my histo 1",xedges); //<br> IHistogram2D 
h2 = new Histogram2D("my histo 2",xedges,yedges);
- IHistogram2D h3 = new Histogram3D("my histo 3",xedges,yedges,zedges);
-
- // equivalent
- // IHistogram1D h1 = new Histogram1D("my histo 1",new VariableAxis(xedges)); 
<br> // IHistogram2D h2 = new Histogram2D("my histo 2",new 
VariableAxis(xedges),new VariableAxis(yedges));<br><br> // your favourite 
distribution goes here
- cern.jet.random.AbstractDistribution gauss = new 
cern.jet.random.Normal(0,1,new cern.jet.random.engine.MersenneTwister());
-<br> for (int i=0; i &lt; 10000; i++) {    <br>    h1.{@link 
hep.aida.IHistogram1D#fill fill}(gauss.nextDouble());
-    h2.{@link hep.aida.IHistogram2D#fill 
fill}(gauss.nextDouble(),gauss.nextDouble());
-    h3.{@link hep.aida.IHistogram3D#fill 
fill}(gauss.nextDouble(),gauss.nextDouble(),gauss.nextDouble());
- }
-
- System.out.println(h1);
- System.out.println(h2);
- System.out.println(h3);
- rms=h1.rms();
- sum=h1.sumBinHeights();
- ...</pre>
-      </td>
-  </table>
-</h4>
-<p>Here are some example histograms, as rendered by <a 
href="http://www-sldnt.slac.stanford.edu/jasweb/";>Java 
-  Analysis Studio</a>. </p>
-<table width="75%" border="0">
-  <tr>
-    <td valign="bottom"><img 
-  src="ref/doc-files/aida1.gif" width="322" height="230"></td>
-    <td valign="bottom"><img 
-  src="ref/doc-files/aida2.gif" width="316" height="270"></td>
-  </tr>
-</table>
-<p>And here is an example output of {@link 
hep.aida.ref.Converter#toString(IHistogram2D)}. 
-</p>
-<blockquote style="MARGIN-RIGHT: 0px"> 
-  <table>
-    <td class="PRE"> 
-        <pre>
-my histo 2:
-&nbsp;&nbsp;&nbsp;Entries=5000, ExtraEntries=0
-&nbsp;&nbsp;&nbsp;MeanX=4.9838, RmsX=NaN
-&nbsp;&nbsp;&nbsp;MeanY=2.5304, RmsY=NaN
-&nbsp;&nbsp;&nbsp;xAxis: Bins=11, Min=0, Max=11<br>&nbsp;&nbsp;&nbsp;yAxis: 
Bins=6, Min=0, Max=6
-Heights:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| X
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| 0   1   2   3   4   5   6   7   8   9   
10  | Sum 
-----------------------------------------------------------
-Y 5   |  30  53  51  52  57  39  65  61  55  49  22 |  534
-&nbsp;&nbsp;4   |  43 106 112  96  92  94 107  98  98 110  47 | 1003
-&nbsp;&nbsp;3   |  39 134  87  93 102 103 110  90 114  98  51 | 1021
-&nbsp;&nbsp;2   |  44  81 113  96 101  86 109  83 111  93  42 |  959
-&nbsp;&nbsp;1   |  54  94 103  99 115  92  98  97 103  90  44 |  989
-&nbsp;&nbsp;0   |  24  54  52  44  42  56  46  47  56  53  20 |  494
-----------------------------------------------------------
-&nbsp;&nbsp;Sum | 234 522 518 480 509 470 535 476 537 493 226 |     
-</pre>
-    </td>
-  </table>
-</blockquote>
-<p>And <a href="doc-files/hist3d.txt">here</a> is a sample 3d histogram 
output.</p>
-<h2>3. Histograms</h2>
-<h3>3.1 Axes</h3>
-<p>An <i>axis</i> ({@link hep.aida.IAxis}) describes how one dimension of the 
problem 
-  space is divided into intervals. Consider the case of a 10 bin histogram in 
-  the range <tt>[0,100]</tt>. An axis object containing the number of bins 
-  and the interval limits will describe completely how we divide such an 
interval: 
-  a set of 10 sub-intervals of equal width. This is termed a {@link 
hep.aida.ref.FixedAxis} 
-  and can be constructed as follows </p>
-<table>
-  <td class="PRE"> 
-      <pre>
-IAxis axis = new FixedAxis(10, 0.0, 100.0); 
-</pre>
-  </td>
-</table>
-It may be required to work with an histogram over the same range as the 
example 
-above, but with bins of variable widths. In this case, an axis containing the 
-bin edges will describe completely how the interval <tt>[0,100]</tt> is 
divided. 
-Such an axis is termed a {@link hep.aida.ref.VariableAxis} and can be 
constructed 
-as follows 
-<table>
-  <td class="PRE"> 
-      <pre>
-double[] edges = { 0.0, 10.0, 40.0, 49.0, 50.0, 51.0, 60.0, 100.0 };
-IAxis axis = new VariableAxis(edges); 
-</pre>
-  </td>
-</table>
-An <tt>n</tt>-dimensional histogram thus contains <tt>n</tt> axes, one for 
each 
-dimension. The only concern of an axis is to associate any ordered 1D space 
with 
-a discrete numbered space. Thus it associates an interval to an integer. 
Hence, 
-an axis knows about the width of the intervals and their lower point/bound or 
-upper point/bound. An axis can be asked for such information as follows: 
-<table>
-    <td class="PRE"> 
-      <pre>
-IAxis axis = new FixedAxis(2, 0.0, 20.0); // 2 bins, min=0, max=20<br>... 
-axis.{@link hep.aida.IAxis#bins bins()};          // Number of in-range bins 
(excluding underflow and overflow bins) 
-axis.{@link hep.aida.IAxis#binLowerEdge binLowerEdge(i)}; // and the lower 
edge of bin i
-axis.{@link hep.aida.IAxis#binWidth binWidth(i)};     // and its width
-axis.{@link hep.aida.IAxis#binUpperEdge binUpperEdge(i)}; // and its upper edge
-double point = 1.23;
-int binIndex = axis.{@link hep.aida.Iaxis#coordToIndex coordToIndex(point)}; 
// Obtain index of bin the point falls into (maps to)
-</pre>
-  </td>
-</table>
-<p> In this package, a histogram delegates to its axes the task of locating a 
-  bin. In other words, information about the lower and upper edges of a bin or 
-  the width of a given bin are obtained from the corresponding axis. This is 
shown 
-  in the following code fragment, which demonstrates how the lower and upper 
edges 
-  and width of a given bin can be obtained. 
-<table>
-  <tr> 
-    <td class="PRE"> 
-      <pre>
-IHistogram1D histo = new Histogram1D("Histo1D", 10, 0.0, 100.0 ); 
-... 
-histo.{@link hep.aida.IHistogram1D#xAxis xAxis()}.bins()           // Obtain 
the number of bins (excluding underflow and overflow bins)
-histo.xAxis().binLowerEdge(i)  // and the lower edge of bin i
-histo.xAxis().binWidth(i)      // and its width
-histo.xAxis().binUpperEdge(i)  // and its upper edge
-</pre>
-    </td>
-  </tr>
-</table>
-<p>An axis always sucessfully maps any arbitrary point drawn from the universe 
-  <tt>[-infinity,+infinity]</tt> to a bin index, because it implicitly defines 
-  an additional <i>underflow</i> and <i>overflow</i> bin, both together called 
-  <i>extra bins</i>. </p>
-<table>
-  <td class="LISTING"> 
-      <pre>
- IHistogram2D h = new Histogram2D(new FixedAxis(2, 0.0, 100.0), new 
FixedAxis(2, 0.0, 100.0), ...);
-
-          y ^                          i ... in-range bin, e .. extra bins
-            |                           
-       +inf |                           
-            |   e | e | e | e           
-        100 -  ---------------
-            |   e | i | i | e          --> in-range == [0,100]<sup>2</sup>
-            |  ---------------         --> universe == 
[-infinity,+infinity]<sup>2</sup>
-            |   e | i | i | e          --> extra bins == universe - inrange
-          0 -  ---------------         
-            |   e | e | e | e          
-        -inf|  
-             -----|-------|------> x
-             -inf 0      100   +inf
-</pre>
-  </td>
-</table>
-<p>For example if an axis is defined to be <tt>new FixedAxis(2, 0.0, 
20.0)</tt>, 
-  it has 2 in-range bins plus one for underflow and one for overflow. 
<tt>axis.bins()==2</tt>. 
-  Its boundaries are <tt>[Double.NEGATIVE_INFINITY,0.0), [0.0, 10.0), [10.0, 
20.0), 
-  [20.0, Double.POSITIVE_INFINITY]</tt>. As a consequence point -5.0 maps to 
bin 
-  index <tt>IHistogram.UNDERFLOW</tt>, point 5.0 maps to bin index 0, 15.0 
maps 
-  to bin index 1 and 25.0 maps to bin index <tt>IHistogram.OVERFLOW</tt>. </p>
-<p> As a further example, consider the following case: <tt>new 
VariableAxis(new 
-  double[] { 10.0, 20.0 })</tt>. The axis has 1 in-range bin: 
<tt>axis.bins()==1</tt>. 
-  Its boundaries are <tt>[Double.NEGATIVE_INFINITY,10.0), [10.0, 20.0), [20.0, 
-  Double.POSITIVE_INFINITY]</tt>. Point 5.0 maps to bin index 
<tt>IHistogram.UNDERFLOW</tt>, 
-  point 15.0 maps to bin index 0 and 25.0 maps to bin index 
<tt>IHistogram.OVERFLOW</tt>.
-<p> As can be seen, underflow bins always have an index of 
<tt>IHistogram.UNDERFLOW</tt>, 
-  whereas overflow outlier bins always have an index of 
<tt>IHistogram.OVERFLOW</tt>. 
-<h3>3.2 Bins</h3>
-<p> Bins themselves contain information about the data filled into them. They 
-  can be asked for various descriptive statistical measures, such as the 
minimum, 
-  maximum, size, mean, rms, variance, etc. 
-<p> Note that bins (of any kind) only know about their contents. They do not 
know 
-  where they are are located in the histogram to which they belong, nor about 
-  their widths or bounds - this information is stored in the axis to which 
they 
-  belong, which also defines the bin layout within a histogram. 
-<h2>4. Advanced Histogramming</h2>
-TODO. 
-<h1><a name="Comparison"></a>Comparison with the old AIDA interfaces</h1>
-<h2></h2>
-<P>A proposed simpler alternative to the current hep.aida.flat classes.</P>
-<P>The classes in this directory have been proposed by Mark Donselmann, 
Wolfgang 
-Hoschek and Tony Johnson as a simpler, easier to use alternative to the 
classes 
-orignally proposed as the AIDA standard. </P>
-<P>Our goals were:</P>
-<OL>
-  <LI>Eliminate methods that are primarily for developers 
-  writing display packages, they should not be complicating the public user 
-  interfaces. 
-  <LI>Reduce unnecessary duplication which makes the 
-  interfaces very long without adding any additional functionality or 
-  ease-of-use 
-  <LI> Eliminate methods that are hard to use (we 
-  could not think of any occasion where the 8 separate methods for getting the 
2D 
-  overflows bins would be convenient for anyone).</LI></OL>
-Note that 
-ease of implementation was <STRONG>NOT </STRONG>a primary goal. 
-Following these goals we were able to reduce the number of methods as 
-follows:
-
-<TABLE border=1 cellPadding=1 cellSpacing=1>
-  
-  <TR>
-    <TD>OLD</TD>
-    <TD># methods</TD>
-    <TD>NEW</TD>
-    <TD>#methods</TD></TR>
-  <TR>
-    <TD>IHistogram1D</TD>
-    <TD>45</TD>
-    <TD>IHistogram</TD>
-    <TD>
-      <DIV><FONT face=Arial size=2>9</FONT></DIV></TD></TR>
-  <TR>
-    <TD>IHistogram2D</TD>
-    <TD>89</TD>
-    <TD>IHistogram1D</TD>
-    <TD>9 (+ inherited from IHistogram)</TD></TR>
-  <TR>
-    <TD></TD>
-    <TD></TD>
-    <TD>IHistogram2D</TD>
-    <TD>23(+9 inherited from IHistogram)</TD></TR>
-  <TR>
-    <TD></TD>
-    <TD></TD>
-    <TD>Axis</TD>
-    <TD>8</TD></TR></TABLE>
-<DIV></DIV>The primary differences between the old classes and the new classes 
-are: 
-<OL>
-  <LI>Introduction of an IAxis class, to describe the X 
-  axis for 1D histograms, and the X and Y axes of 2D histograms. We understand 
-  that the desire is to keep the interfaces as flat as possible, but feel this 
-  introduces a significant improvement in terms of reducing complexity, and is 
-  an abstraction that is easy for even the most object-phobic physicist to 
-  grasp. 
-  <LI>We define constants OVERFLOW and UNDERFLOW to 
-  represent the underflow and overflow bins on an axis. This eliminates the 
need 
-  for special routines that deal with overflows/underflows. It also improves 
the 
-  interface since it exposes the full set of overflow/underflow bins for 2D 
-  histograms. Under the previous proposal it was necessary for the 
-  implementation to keep the full set of overflow/underflow bins, in order to 
be 
-  able to do the projections correctly, but there was no way for the end-user 
to 
-  access them (they were restricted to the 8 overflow bins 
N,E,S,W,NE,SE,SW,NW). 
-
-  <LI>We eliminated the methods which return information 
-  about bins based on coordinate (as opposed to index). We felt these 
functions 
-  were rarely used, were in some cases ambiguous (for example when 
-  projections/slices were specified in terms of coordinates what exactly was 
the 
-  meaning) and the same functionality with less ambiguity was available by 
-  calling coordToIndex() first.</LI></OL>
-<P>A UML diagram of the classes is given below:</P>
-<P><U><FONT color=#0000ff><IMG 
-src="doc-files/simpleaida.png"></FONT></U></P>       
-               
-             
-              
-           
- 
-</BODY>
-</HTML>

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/debian-med/colt.git

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to