View Javadoc

    1   package baseCode.io.writer;
    2
    3   import hep.aida.IHistogram1D;
    4
    5   import java.io.IOException;
    6   import java.io.OutputStream;
    7   import java.io.OutputStreamWriter;
    8   import java.io.Writer;
    9
    10  import corejava.Format;
    11
    12  /***
    13   * Print an {@link hep.aidia.IHistogram1D}object to a text file.
    14   * <p>
    15   * Copyright (c) 2004
    16   * </p>
    17   * <p>
    18   * Institution: Columbia University
    19   * </p>
    20   *
    21   * @see <a href="http://hoschek.home.cern.ch/hoschek/colt/V1.0.3/doc/hep/aida/IHistogram1D.html">hep.aida.IHistogram1D
    22   *      </a>
    23   * @author Paul Pavlidis
    24   * @version $Id: HistogramWriter.java,v 1.5 2005/01/05 02:01:02 pavlidis Exp $
    25   */
    26  public class HistogramWriter {
    27
    28     /***
    29      * Print out a IHistogram1D object.
    30      *
    31      * @param h IHistogram1D to be printed.
    32      * @param s PrintStream to be printed to.
    33      * @throws IOException
    34      */
    35     public void write( IHistogram1D h, Writer s ) throws IOException {
    36        Format k = new Format( "%1.5g" );
    37        int total = h.entries();
    38        s.write( "Bin\tCount\tFraction\n" );
    39        for ( int i = 0; i < h.xAxis().bins(); i++ ) {
    40           s.write( k.format( h.xAxis().binLowerEdge( i ) ) + "\t"
    41                 + h.binEntries( i ) + "\t"
    42                 + k.format( ( double ) h.binEntries( i ) / ( double ) total )
    43                 + "\n" );
    44        }
    45     }
    46
    47     /***
    48      * Print to a stream.
    49      * @param h
    50      * @param s
    51      * @throws IOException
    52      */
    53     public void write (IHistogram1D h, OutputStream s ) throws IOException {
    54        this.write(h, new OutputStreamWriter(s) );
    55     }
    56
    57  }