はじめに

JASはいろいろなテクノロジーを駆使した高度なツールであり、最新の技術を 多く含む。それらを整理してまとめて置くのがこのメモの目的である。

JASのインストール

JASのキットを持ってくる最も簡単な方法は次のようにしてCVSを使う方法である。
setenv CVSROOT :pserver:anoncvs@sldl1.slac.stanford.edu:/nfs/slac/g/jas/cvsroot
cvs login
CVS Password: jascvs
cvs co -r v2_2_1 jas
また、 ダウンロードページに入って取る方法もある。

次のようなファイルががロードされる。

License.html  ReleaseNotes.html  SampleData/  bin/  extensions/  jas*  lib/

./SampleData:
pawdemo.hbook

./bin:
libhbook.so  libjhippo.so  libjstdhep.so

./extensions:
Fitting.jar  FlatFile.jar  HepEvt.jar  Hippo.jar  Paw.jar  TestServer.jar

./lib:
collections.jar  hep.jar  jc.jar  swingall.jar
help.jar         jas.jar  jh.jar  xml4j.jar

そして次はCLASSPATHとLD_LIBRARY_PATHにJAS関連のファイル名を 追加することである。CLASSPATHでは

を必要に応じて次のように追加する。
% setenv CLASSPATH $CLASSPATH\:/home/yasu/java/JAS/lib/jas.jar
また、LD_LIBRARY_PATHもHBOOK関連のデータフォーマットが必要なら
% setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH\:/home/yasu/java/JAS/bin/libhbook.so
として追加しておくこと。 最後に、jasコマンドをPATHに追加すか、jasを/usr/local/binなどに入れておくこと。
% setenv PATH $PATH\:/home/yasu/java/JAS/

例題を実行して見よう

さて例題実行においては大きく分けて2つの方法がある。 1つはjasコマンドを使って実行する方法で、2つ目はJavaのプログラムを JavaVMで実行する方法である。後者をまずやってから後者を試したい。

ヒストグラムを作って表示する

jas.hist.packageには基本的なプロットウィジェットが 含まれている。1-D, 2-Dヒストグラムとスキャタープロットの表示をサポートする。 GIFイメージやXMLファイルでセーブしたりすることができる。

次の例題はJava Memory Usageを動的に表示するプログラムである。
import jas.hist.*;
import jas.hist.test.MemoryDataSource;
import javax.swing.*;

public class Example1 extends JFrame {
    Example1() {
        super("Example 1");
        JASHist   plot = new JASHist();
                 
        JASHistData   data = plot.addData(new   MemoryDataSource());
        
        plot.setTitle("Java   Memory Usage");
        plot.setDataAreaBorderType(plot.ETCHED);
        plot.getYAxis().setLabel("MBytes");
        plot.getXAxis().setLabel("Time (seconds)");
        plot.setAllowUserInteraction(false);
        
        data.show(true);
        
        getContentPane().add(plot);
        setSize(400,400);
        show();
    }
    public static void main(String[] argv)
    {
        new   Example1();
    }
}
このプログラムは、JASHistオブジェクト(基本プロットオブジェクト)を 作り、SwingのトップレベルでウインドーであるJFrameの中にそれを 表示する。データはJavaのメモリ使用量を用意するMemoryDataSourceである。 これはjas.hist.test.packageにある。

コンパイルと実行はつぎのようにする。

% javac Example1.java
% java Example1
そうすると、新しくウインドーが開いてこのJavaプログラムのメモリの使用量が 動的に表示される。

次の例題はプログラムの中に簡単なデータアレーを用意し、ヒストグラムを 作る。
import jas.hist.*;
import javax.swing.*;

public class Example2 extends JFrame {
    Example2() {
        super("Example 2");
        JASHist   plot = new JASHist();
        
        double[] data = { 0, 1,   3, 5, 7, 9,   11,   13,   5, 0 };
            
        plot.addData(new ArrayDataSource(data)).show(true);
            
        getContentPane().add(plot);
        setSize(400,400);
        show();
    }
    public static void main(String[] argv)
    {
        new   Example2();
    }
}
import jas.hist.*;

class ArrayDataSource implements Rebinnable1DHistogramData
{
    ArrayDataSource(double[] data)
    {
        this(data,"Array Data Source");
    }
    ArrayDataSource(double[] data, String name)
    {
        this.data =   data;
        this.name =   name;
    }
    public double[][] rebin(int   rBins, double rMin,   double rMax, 
                            boolean   wantErrors,   boolean   hurry)
    {
        double[][] result = { data };
        return result;
    }
    public String[]   getAxisLabels() { return null; }
    public double getMin() { return   0; }
    public double getMax() { return   data.length; }
    public boolean isRebinnable() {   return false; }
    public int getBins() { return data.length; }
    public int getAxisType() { return DOUBLE; }
    public String getTitle() { return name; }
    
    private   double[] data;
    private   String name;
}

JAS用語の解説

JASに出る用語をここで解説する。

ソースコードの構成

ソースコードの一覧を見ると、Base, Hep, Fitting, FlatFile, HepEvt, Hippo, Paw, TestServerがリストされている。

Base

ここにはJASの基本ソフトが入っている。 などである。

Hep

物理解析関連のソフトで、analsys, io, physicsから成る。

Fitting

JASの拡張として位置付けられている。

FlatFile

これもJASの拡張だが、FlatFileEventSource.java, FlatFileServer.java, LocalFlatFileDIM.java, Register.javaからなる。