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  }