This documentation was copied from RCNPAX::
Directory LIB$DISK:[QPAW.DOC]

QPAW-SYSTEM.TXT;8         25/28       15-SEP-1995 16:05:06.52

 QPAW system    〜市原Qシステム用〜

1.QPAWシステム

 QPAWシステムは、CERNで開発されたPAWシステムに、今後のオンライン
での操作性を考えてQシステムがもつ使い勝手の良さを加えたものです.市原Qシス
テムで作られたローデータから、これまでQシステムで使われていた解析プログラム
をそのまま使ってヒストグラムを作ります.ただし、アルファ上でフォートランのプ
ログラムを動かすため、若干の変更が必要かもしれません.

2.プログラムのインストール

<ディレクトリの設定>
以下のようにディレクトリを設定します.

USER$DISK:[username.QPAW]          QPAWシステムを使うホームディレクトリ
USER$DISK:[username.QPAW.MACRO]    PAWシステムのマクロ、プログラム
USER$DISK:[username.QPAW.PAR]      各種パラメーターファイル
USER$DISK:[username.QPAW.PROGRAM]  実験グループ固有のプログラム

<ファイルのコピー>
以下のディレクトリに入っているファイルをコピーします.
また,実験グループ固有のプログラムやテストファイル,パラメーターファイルは、
Qシステムで使っていたものを使います.

ライブラリから
LIB$DISK:[QPAW.USER_COM]
     qstart.com,qend.com,qtt.com  --->  USER$DISK:[username.QPAW]
     compile.com,link.com         --->  USER$DISK:[username.QPAW.PROGRAM]
LIB$DISK:[QPAW.MACRO]
     *.kumac,*.for                --->  USER$DISK:[username.QPAW.MACRO]
LIB$DISK:[QPAW.PROGRAM]
     p2p_scaler_proc.for          --->  USER$DISK:[username.QPAW.PROGRAM]

Qシステムのファイル
USER$DISK:[username.Q.PROGRAM]
     *.for                        ---> USER$DISK:[username.QPAW.PROGRAM]
USER$DISK:[username.Q.HISTOGRAM]
     *.hse                        ---> USER$DISK:[username.QPAW.HISTOGRAM]
USER$DISK:[username.Q.PAR]
     *.par                        ---> USER$DISK:[username.QPAW.PAR]*.par
     def.par                      ---> USER$DISK:[username.QPAW.PAR]prm.def
USER$DISK:[username.Q.TST]
     *.tst                        ---> USER$DISK:[username.QPAW.PAR]*.tst

<ファイルの書き換え>
PAWのログインコマンドPAWLOGON.KUMACの中の、Global-sectionを定義する部分を自
分のユーザー名に書き換えます.

.....
  macro/default 'QPAW$MACRO:'
  global username$P
  exec Init
....

<プログラムのコンパイル、リンク>
次の順序でアナライザーを作ります.
(1)コンパイル
$ set default [username.QPAW.PROGRAM]
$ @compile
=== Now, Compiling P2P_AINIT1.FOR ===
=== Now, Compiling P2P_CNTL.FOR ===
=== Now, Compiling P2P_LIB.FOR ===
=== Now, Compiling P2P_PROC4.FOR ===
=== Now, Compiling P2P_PROC5.FOR ===
=== Now, Compiling P2P_PROC6.FOR ===
=== Now, Compiling P2P_PROC7.FOR ===
=== Now, Compiling P2P_SCALER_PROC.FOR ===
$ .....
(2)リンク
$ @link
Analyzer Name: analyzer
LIB$ = CERN:[NEW.LIB]MATHLIB/LIB,PHTOOLS/LIB,PACKLIB/LIB,KERNLIB/LIB
$ .....

3.使い方

<アナライザーの起動>
アナライザは以下のように起動します.アナライザを起動すると、username$HISTと
username$CHARの2つのサブプロセスが同時に走ります.アナライザを起動したら、この
2つのプロセスが走っていることを確認してください.
また、QPAWシステムに必要なロジカル名の設定は同時に行われます.

$ @qstart
%DCL-I-SUPERSEDE, previous value of QPAW$EXE has been superseded
%DCL-I-SUPERSEDE, previous value of QPAW$TEMP_DISK has been superseded
ANALYZER NAME: analyzer
%DCL-S-SPAWNED, process username$HIST spawned
QPAW> ..........

QPAW> show process /sub
25-FEB-1995 04:26:35.96   User: username     Process ID:   44E01854
                          Node: RCNPAX       Process name: "username$HIST"

There are 3 processes in this job:

  username;0
    username$HIST (*)
    username$Char
QPAW> ..........

QPAW> @qend
=== Analyzer was ended.
$...

<他のプロセスで>
他のプロセス(ウインドウ)ではロジカル名の設定をする必要があります.

QPAW> @qtt

<入力ファイル>
入力ファイルは市原Qシステムで作られたローデータです。市原Qシステムではスケー
ラーイベントは各バッファーの最後にスケーラーのチャンネル数のデータが入っている
ため、入力ファイルを定義する度にチャンネル数を入力する必要があります。
QPAW> qnt temp$disk1:[***]run1001.iii
How many scaler CHANNELs ? (Def. = 96ch. ) ; 64

<RUNのスタート>
この時に、解析したいイベントのイベント番号を同時に入力します。ただし、イベント
番号の8と9はスケーラーイベントのために既に使われているので使用しないでくださ
い.
QPAW> qru 4,5,6,7
または、
QPAW> qru
EVENT to Process = 4,5,6

<RUNの中断>
QPAW> qsu
QPAW> qre

<RUNの終了>
QPAW> qfi

<別の入力ファイル>
QPAW> qnt temp$disk1:[***]run1002.iii
How many scaler CHANNELs ? (Def. = 96ch. ) ; 64

<新しいRUNのスタート>
QPAW> qru/rw 5,6
このとき、解析したいイベント番号を変えたいときは、イベント番号も入力します.
また、前回のRUNと同じであれば、イベント番号は省略できます。

<RUNの状態>
QPAW> qst
 === Now, the time is 22:33:12.67, on 20-FEB-1995 ===

 === RUN status : RUN has started.
    INIT =  0
    TAPE =  1  SCALER =  64  FILENAME = DATA1:APR94P2P2036.III

    RUN  =  1   SUS =  0   RUN# = 2036    RW =  0
    Process Event =  4   5   6   7   8   9

    START TIME : 20-FEB-1995 22:33:05.57
       Comment : (10:29:30)40CA(P2P) (GR,LAS)=(25.5,59.95)(911.607,693.72) :
    ENDED TIME :
       Comment :

    ANALYZED EVENT      =       2171
    ANALYZED BLOCK SIZE =        768

<ヒストグラムの定義>
ヒストグラムの定義はQシステムと同様にできます。入力ファイルも全く同じものが使
えます。また、ヒストグラムや以下で説明するテスト、パラメーターはRUNの途中で
も定義あるいは再定義ができます.

=1次元ヒストグラム=
QPAW> hsu x4/xp:11:-1000:1000:2/te:10/bl:1
          name/xp:IND:low:up:step/te:tst/bl:blk

=2次元ヒストグラム=
QPAW> hsu x4y4/xp:11:-1000:1000:2/yp:12:-500:500:10/te:10/bl:1
          name/xp:IND:low:up:step/yp:IND:low:up:step[/te:tst][/bl:blk]

定義されたヒストグラムを消すときは
QPAW> hsu ad7/de
          name/de

ヒストグラムを定義し直すときは
QPAW> hsu x4/xp:11:-2000:2000:4/te:20/su
          name/xp:IND:low:up:step[/te:tst][/bl:blk]/su

これらをファイルにまとめて、
QPAW> hsu @p2p.hse
QPAW> hsu @p2p.hse/de
QPAW> hsu @p2p.hse/su
とすることもできます。

定義されたヒストグラムは、houtで画面に表示されます。
QPAW> hout
 --- Max Number ---
          BLK1  BLK2  BLK3  BLK4  BLK5  BLK6  BLK7  BLK8  BLK9 BLK10   TOTAL
 1D-Hist     4     1     0     0     0     0     0     0     0     0       5
 2D-Hist     3     0     0     0     0     0     0     0     0     0       3

 --- 1D Histogram ---
  No    NAME    INDx    MIN    MAX BIN  INDy    MIN    MAX BIN  TST BLK
     1  AD1     1001      0   2000   1     0      0      0   0    0   1
     2  AD2     1002      0   2000   1     0      0      0   0    0   1
     3  AD3     1003      0   2000   1     0      0      0   0    0   1
     4  AD4     1004      0   2000   1     0      0      0   0    0   1
     5  ESEP     505  -6000   6000   2     0      0      0   0  121   2

 --- 2D Histogram ---
  No    NAME    INDx    MIN    MAX BIN  INDy    MIN    MAX BIN  TST BLK
  1001  X4A4      21  -6000   6000 100    22    700   1300  10  121   1
  1002  X4Y4      21  -6000   6000 100    23   -300    300  10  121   1
  1003  X4X0      21  -6000   6000 100   221  -3000   3000 100  121   1

ひとつのヒストグラムのみを見る時は,
QPAW> hout x4a4
 No    NAME        INDx    MIN    MAX BIN  INDy    MIN    MAX BIN  TST BLK
 1001  X4A4          21  -6000   6000 100    22    700   1300  10  121   1

ファイルに書き出すには
QPAW> hout 10
とすると,ファイル"FOR010.dat"に定義されたヒストグラムが書き出されます。

<テスト>
ヒストグラムにかけるゲートのことです.定義の仕方は同様にできます。また、テスト
ファイルもQシステムと全く同じものが使えます。テストは定義する度に前のテストが
消去されます.

QPAW> tsu 14,AND,10,11
または、ファイルにまとめて、
QPAW> tsu @p2p.tst

<パラメーターの設定>
これもQシステムと同様に定義できます。

QPAW> prm kcalib=1
または、ファイルにまとめて、
QPAW> prm @p2p.par

設定したパラメーターの値を見るときは、
QPAW> prm kcalib
KCALIB=    0

<スケーラーの表示>
スケーラーはRUNの開始とともにカウントされ始めます.また、RUNを再開すると
きには自動的にリセットされます.

QPAW> scl
Event_No.(Block_No.)=    678 Number_of_scalers = 64

  CH    Module-1  Module-2  Module-3  Modele-4  Module-5  Module-6  Module-7
   0       10591     10514       925       905
   1      884612   1112502     12621     22485
   2     3743100   4200447     21718     11647
   3     2113536         0     19125     19156
   4     2550121   2712097     23006     22363
   5        7357      8790      1027         0
   6        8463      8987       857       723
   7       11234     15704      2570      2492
   8       16060     23377      5920      5775
   9       94107     93895         0         0
  10       80882     77205         0         0
  11      746977    894658         0         0
  12           0         0         0         0
  13           0         0         0         0
  14           0         0         0         0
  15           0         0         0         0

4.ヒストグラム

<PAWの起動>
アナライザーで作られたヒストグラムは、PAWを起動して見ることができます.
ただし、HBOOKを使っているため、ヒストグラムは番号で指定し、ゲートの機能は
使えません.RUNの開始とともにヒストグラムのフィリングを始め、また、RUNを
再開するときには自動的にリセットされます.
その他、PAWのコマンドを使うことができます。PAWの使い方についてはマニュア
ルを参照して下さい.

$ paw
The PRO version of the PAW X11 driver for PAW is selected.
Executing LIB$DISK:[CERNLIB.CERNAXP.PRO.EXE]PAWX11_U.EXE;3
******************************************************
*                                                    *
*            W E L C O M E    to   P A W             *
*                                                    *
*       Version 2.05/22      21 October 1994         *
*                                                    *
******************************************************
Workstation type (?=HELP) =1 :
Version 1.21/10 of HIGZ started
 => Start of system login
 => End of system login. User login commands now starting
*** Using default PAWLOGON file "QPAW$MACRO:PAWLOGON.KUMAC"

 Macro search order is Command
PAW >

<hpl>
上記のように、PAWではヒストグラムを番号で指定しますが、hpl.macroを起動する
と、Qシステムの主なコマンドが同様に使えます。

PAW> exec hpl           hplの起動
HPL> ...
HPL> x4              ヒストグラムの名前 ---> 表示
HPL> Cntl-Z            hplの終了
PAW> ...

<ヘルプ>
HPL> /h
        Command list (HPL)
        /logx   set log scale for x-axis (1-dim and 2-dim)
        /linx   set linear scale for x-axis (1-dim and 2-dim)
        /logy   set log scale for y-axis (1-dim and 2-dim)
        /liny   set linear scale for y-axis (1-dim and 2-dim)
        /logz   set log scale for z-axis (2-dim)
        /linz   set linear scale for z-axis (2-dim)
        /cut    set graphical cut  Usage: /cut  ( means test number)
        /rcut   reset graphical cut Usage: /rcut  ( means test number)
        /csum   sum up events in the bound of cursor position
        /cur    set marker with graphical cursor
                Usage:  /cut; set graphical cursor;
                set marker number [Macro cursor: num ? (=) ]
        /rcur   reset marker    Usage: /rcur  ( means marker number)
        . execute  for PAW
        cnt+z   exit from HPL

<ゲート>
HPL> /cut 1  ---> ゲートをかけたい位置でマウスをクリック  ---> ダブルクリック
Maximum number of points=  2  reached
          1     11   72.36420       203.3520
HPL> 
 MINUIT RELEASE 94.09  INITIALIZED.   DIMENSIONS 100/ 50  EPSMAC=  0.44E-15
**********
**    1 **SET EPS  0.1000E-06
**********
FLOATING-POINT NUMBERS ASSUMED ACCURATE TO   0.100E-06
**********
**    2 **SET ERR   1.000
**********

<x軸、y軸の範囲、スケール>
HPL> /logx        --->  戻るとき   HPL> /linx
HPL> /logy        --->  戻るとき   HPL> /liny

HPL> /x:100:150   --->  戻るとき   HPL> /x
HPL> /y:10:100    --->  戻るとき   HPL> /y

5.UNIXへの移植

QPAWシステムはVMSのシステムライブラリやRTL、Lexical-Function等を
使っているため、UNIXに移す際には、VMSのシステムライブラリに変わるものを
用意する必要があります。具体的には、
(1)システムライブラリ
    イベントフラグ
         SYS$ASCEFC,SYS$SETEF,SYS$WAITEF,SYS$READEF,SYS$DACEFC
    シェアードコモン
         SYS$CRMPSC,SYS$MGBLSC
    サブプロセス
         SYS$CREPRC,SYS$DELPRC
    その他
         SYS$TRNLNM,SYS$GETJPIW
(2)Lexical Function
         F$SEARCH,F$EXTRACT,F$LOCATE
(3)RTL(RunTimeLibrary)
         LIB$GET_FOREIGN

yoshiMASA yuasa
Last Update : 28-MAR-1996