Package hep.aida.ref

Source Code of hep.aida.ref.Test

package hep.aida.ref;

import hep.aida.IHistogram1D;
import hep.aida.IHistogram2D;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

/**
* A very(!) basic test of the reference implementations of AIDA histograms.
*/
public class Test
{
  public static void main(String[] argv)
  {
    Random r = new Random();
    IHistogram1D h1 = new Histogram1D("AIDA 1D Histogram",40,-3,3);
    for (int i=0; i<10000; i++) h1.fill(r.nextGaussian());
   
    IHistogram2D h2 = new Histogram2D("AIDA 2D Histogram",40,-3,3,40,-3,3);
    for (int i=0; i<10000; i++) h2.fill(r.nextGaussian(),r.nextGaussian());
   
    // Write the results as a PlotML files!
    writeAsXML(h1,"aida1.xml");
    writeAsXML(h2,"aida2.xml");
   
    // Try some projections
   
    writeAsXML(h2.projectionX(),"projectionX.xml");
    writeAsXML(h2.projectionY(),"projectionY.xml");
  }
  private static void writeAsXML(IHistogram1D h,String filename)
  {
    try
    {
      PrintWriter out = new PrintWriter(new FileWriter(filename));
      out.println("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>");
      out.println("<!DOCTYPE plotML SYSTEM \"plotML.dtd\">");
      out.println("<plotML>");
      out.println("<plot>");
      out.println("<dataArea>");
      out.println("<data1d>");
      out.println("<bins1d title=\""+h.title()+"\">");
      for (int i=0; i<h.xAxis().bins(); i++)
      {
        out.println(h.binEntries(i)+","+h.binError(i));
      }
      out.println("</bins1d>");
      out.print("<binnedDataAxisAttributes type=\"double\" axis=\"x0\"");
        out.print(" min=\""+h.xAxis().lowerEdge()+"\"");
        out.print(" max=\""+h.xAxis().upperEdge()+"\"");
        out.print(" numberOfBins=\""+h.xAxis().bins()+"\"");
        out.println("/>");
      out.println("<statistics>");
      out.println("<statistic name=\"Entries\" value=\""+h.entries()+"\"/>");
      out.println("<statistic name=\"Underflow\" value=\""+h.binEntries(h.UNDERFLOW)+"\"/>");
      out.println("<statistic name=\"Overflow\" value=\""+h.binEntries(h.OVERFLOW)+"\"/>");
      if (!Double.isNaN(h.mean())) out.println("<statistic name=\"Mean\" value=\""+h.mean()+"\"/>");
      if (!Double.isNaN(h.rms())) out.println("<statistic name=\"RMS\" value=\""+h.rms()+"\"/>");
      out.println("</statistics>");
      out.println("</data1d>");
      out.println("</dataArea>");
      out.println("</plot>");
      out.println("</plotML>");
      out.close();
    }
    catch (IOException x) { x.printStackTrace(); }
  }
  private static void writeAsXML(IHistogram2D h,String filename)
  {
    try
    {
      PrintWriter out = new PrintWriter(new FileWriter(filename));
      out.println("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>");
      out.println("<!DOCTYPE plotML SYSTEM \"plotML.dtd\">");
      out.println("<plotML>");
      out.println("<plot>");
      out.println("<dataArea>");
      out.println("<data2d type=\"xxx\">");
      out.println("<bins2d title=\""+h.title()+"\" xSize=\""+h.xAxis().bins()+"\" ySize=\""+h.yAxis().bins()+"\">");
      for (int i=0; i<h.xAxis().bins(); i++)
        for (int j=0; j<h.yAxis().bins(); j++)
      {
        out.println(h.binEntries(i,j)+","+h.binError(i,j));
      }
      out.println("</bins2d>");
      out.print("<binnedDataAxisAttributes type=\"double\" axis=\"x0\"");
        out.print(" min=\""+h.xAxis().lowerEdge()+"\"");
        out.print(" max=\""+h.xAxis().upperEdge()+"\"");
        out.print(" numberOfBins=\""+h.xAxis().bins()+"\"");
        out.println("/>");
      out.print("<binnedDataAxisAttributes type=\"double\" axis=\"y0\"");
        out.print(" min=\""+h.yAxis().lowerEdge()+"\"");
        out.print(" max=\""+h.yAxis().upperEdge()+"\"");
        out.print(" numberOfBins=\""+h.yAxis().bins()+"\"");
        out.println("/>");
      //out.println("<statistics>");
      //out.println("<statistic name=\"Entries\" value=\""+h.entries()+"\"/>");
      //out.println("<statistic name=\"MeanX\" value=\""+h.meanX()+"\"/>");
      //out.println("<statistic name=\"RmsX\" value=\""+h.rmsX()+"\"/>");
      //out.println("<statistic name=\"MeanY\" value=\""+h.meanY()+"\"/>");
      //out.println("<statistic name=\"RmsY\" value=\""+h.rmsY()+"\"/>");
      //out.println("</statistics>");
      out.println("</data2d>");
      out.println("</dataArea>");
      out.println("</plot>");
      out.println("</plotML>");
      out.close();
    }
    catch (IOException x) { x.printStackTrace(); }
  }
}
TOP

Related Classes of hep.aida.ref.Test

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.