東京工業大学 >
大学院理工学研究科 >
基礎物理学専攻 >
中村研究室 >
メンバー >
Takayuki Sako >
ANAPAW マクロ自作したANAPAWのマクロ。ここに置いてあるものは相互に連関しているため他のマクロを入れておかないと動かないものもある。 また、ヒストグラムIDが101以上であることを利用しているマクロがあるため、ヒストグラムIDを100以下にしたときバグるものがある。 注意ある時点から自作のコマンドCIDを利用して現在のヒストグラムIDを取得できるのが前提になっている。 その場合は前述のページのような改造を行なって、ANAPAW_WORK/kumac/以下にread_cid.kumacが存在しないとマクロが正しく動かない。oldとなっているのはこれを前提としていない標準のANAPAWで動くバージョン。 ただし、更新されていないためにこのページに書いてある通りの動作をするとは限らない。基本的にはこのコマンドによりヒストグラムIDの入力が必要なマクロはIDを省略すると現在のヒストグラムに対して作用するようになる。 Macro List
エイリアスのかけ方例としてxleのエイリアスを作成する。xfit_le.kumacをANAPAWのanaloginした先のkumac以下に置いておく。これは編集を容易にする為である。
~/exp/****/users/****/kumac$ ls
このままでも良いがANAPAW上から実行するためには
xfit_le.kumac
ANAPAW> exec kumac/xfit_le ID
と打たねばならない。これは面倒。そこでエイリアスをかける。ANAPAWの起動時の.analogon.kumacにより
exec ini_alias
が実行されている。これは
~/usr/local/anapaw/Macros/ini_alias.kumac
に実体がある。中身は
alias/create pson 'exec ps_on'
ここでalias/createによりエイリアスが張られている。そこでここに追加する。
alias/create pson2 'exec ps_on2' alias/create psoff 'exec ps_close' alias/create psclose 'exec ps_close' alias/create bl 'exec hblow' alias/create xbl 'exec xblow' alias/create ybl 'exec yblow' alias/create xybl 'exec xyblow' alias/create xmami 'exec xmaxmin' alias/create xfit 'exec xfiting' alias/create xp 'exec xpfit' alias/create lgx 'gra/opt logx' alias/create lnx 'gra/opt linx' alias/create lgy 'gra/opt logy' alias/create lny 'gra/opt liny' alias/create lgz 'gra/opt logz' alias/create lnz 'gra/opt linz' alias/create ntc 'exec ntcopy' alias/create px 'exec projx' alias/create py 'exec projy' alias/create bx 'exec bandx' alias/create by 'exec bandy' alias/create sx 'exec slicex' alias/create sy 'exec slicey' alias/create i 'hlist' alias/create ni 'nt/print' alias/create alist 'alias/list' alias/create table 'exec table1d' alias/create table-e 'exec table1derr' alias/create h 'mess;mess Use HT Command!!;mess' alias/create xrms 'exec rms' alias/create hrms 'exec rms2' alias/create mrms 'exec mulrms' alias/create hrebin 'exec historebin' alias/create hcop 'exec hcopy' alias/create histent 'exec histentry' alias/create hipl 'exec histoplo' alias/create xhistent 'exec xhistentry' alias/create htp 'ht ! '
alias/create xle 'exec xfit_le'
ここで注意すべきことはマクロ名と違う名前でエイリアスを張る点。同じだとエラーになる。
さらにxfit_le.kumacの実体をanalogin先に置いてあるのでここにシンボリックリンクを張っておく。
alias/create pson 'exec ps_on' alias/create pson2 'exec ps_on2' alias/create psoff 'exec ps_close' (略)
~/usr/local/anapaw/Macros$ ln -s ~/exp/****/users/****/kumac/xfit_le.kumac xfit_le.kumac
これで準備は完了した。このようにエイリアスをかけておけば
ANAPAW> exec kumac/xfit_le ID
と打たなくても
ANAPAW> xle ID
と打つだけでマクロを実行出来る。さらにEVTLOOPの際は普通にexecとしてマクロを実行することができないようだが、エイリアスをかけておけばEVTLOOPを抜けることなく
マクロを実行出来る。
以降、このページのマクロはエイリアスをかけておくのが前提としておく。 read_cidread_cid.kumac現在のヒストグラムを取得する。 基本的に他のマクロから実行することを前提にしている。
HID = $exec(kumac/read_cid)
とするとHIDに現在のヒストグラムIDが格納される。コマンドラインから実行するとターミナル上に現在のヒストグラムIDが表示される。また、 ANAPAW_WORK/CurrentHID.txtにその値が書き出される。
ANAPAW> exec kumac/read_cid
Current HID : 357 xlexfit_le.kumacxfit_le.kumac (old) 宇宙線の作るエネルギー損失分布をランダウ分布(landau distribution) + exponentialで楽にフィッティングする。
ANAPAW> xle [ID] [textfile] [chopt]
xlpxfit_lp.kumacxfit_lp.kumac (old) 宇宙線の作るエネルギー損失分布をランダウ分布(landau distribution) + 一次関数で楽にフィッティングする。
ANAPAW> xlp [ID] [textfile] [chopt]
nwnw_org.kumac新たなワークステーション(ウィンドウ)にプロットする。
ANAPAW> nw IWKID CMD
別ウィンドウでCMDを実行後、そのウィンドウは自動的にDeactiveとなり、元のウィンドウに操作が戻る。しかも元のウィンドウのヒストグラムIDを保持しているため、 hnやhbが別ウィンドウに左右されない。また、ワークステーションを開くと左上にそのワークステーションのIDが表示される。 既に存在するワークステーションに対してはewを使う。 ewew_org.kumac別の(既存の)ワークステーション(ウィンドウ)にプロットする。
ANAPAW> ew IWKID CMD
hh_org.kumach_org.kumac (old) ヒストグラムを表示する。
ANAPAW> h [HID] [CHOPT]
nn_org.kumacn_org.kumac (old) 次のヒストグラムを表示する(#基準)。
ANAPAW> n [CHOPT]
ANAPAW標準では
ANAPAW> hn colz
と打たねばならないが、この面倒さを回避できる。
nnnn_org.kumac次のヒストグラムを表示する(HID基準)。
ANAPAW> nn [CHOPT]
bb_org.kumacb_org.kumac (old) 前のヒストグラムを表示する(#基準)。
ANAPAW> b [CHOPT]
bbbb_org.kumac前のヒストグラムを表示する(HID基準)。
ANAPAW> b [CHOPT]
mhmulti_h.kumacZONEを自動定義して任意の個数のヒストグラムを連続表示/指定表示する。
ANAPAW> mh Arg1 Arg2,....
このコマンドは第一引数Arg1および第二引数Arg2の値により挙動が変化する
(ヒストグラムIDが101以上であることを前提とすることで同一のコマンドに複数の動作を設定している)。
連続表示モード(#基準)ヒストグラムIDと連続表示するヒストグラムの個数を指定した後、zoneの横を指定する。 順番は#基準。つまり、hnの順番。
ANAPAW> mh i HID1 Hnumber [HORIZON]
指定表示モードzoneの横を指定し、表示するヒストグラムIDを一つひとつ指定して表示する。
ANAPAW> mh HORIZON HID1 HID2 [HID3] [HID4],.... [HID#]
ANAPAW> mh 3 101 103 105 107 108
とするとzoneの横が3に変更された後,ヒストグラム101,103,105,107,108が表示される。
連続表示モード(HID基準)/ヒストグラムID指定連続表示する最初と最後のヒストグラムIDを指定した後、zoneの横を指定する。
ANAPAW> mh HID1 [HID2] [HORIZON]
ANAPAW> mh 101 105 2
連続表示モード(HID基準)/個数指定連続表示する最初のヒストグラムIDと連続表示するヒストグラムの個数を指定した後、zoneの横を指定する。
ANAPAW> mh HID1 Hnumber [HORIZON]
ANAPAW> mh 101 5 2
とすると先のヒストグラムID指定の時と同じ結果を得る。
挙動はhiplに似ているが実情に即して使いやすくしたつもり。 hstaの統計情報が自動的にターミナルに表示され、二次元ヒストグラムの際にはcolzが自動で補完される。 cbacba_org.kumacclearしてbookしてana/loopする。
ANAPAW> cba anafile runNO
これ単体ではあまり意味がないが、epson, epsoffと組み合わせた時、anaファイルとrunナンバーが自動的に補完されることによって真価を発揮する。 epsoneps_on.kumacepsを保存するためにファイルを開く。
ANAPAW> epson filename [CHOPT]
ファイルは./eps以下に保存されるので予めANAPAWのワーキングディレクトリにepsというディレクトリを作っておく。 以下、細かい話。epsonを作った背景にはpsonで生成されるpsファイルが扱いづらいからである。 psは他の文章に挿入されることを想定しておらず、一方でepsは元々挿入することを前提としたファイルである。そのため、すぐにTeXに張り付けたい時などは大変に不便。そこで便利な機能を加えたepsonを作るに至った。 epsoffeps_off.kumacepsを保存するためにファイルを開く。
ANAPAW> epsoff [CHOPT] [Print_flag]
例えば、ファイル名の補完はするが、印刷はしないとき、
ANAPAW> epsoff ! n
とすればよい。
cba, epson, epsoffを組み合わせた時の出力結果。 |