Rin-memo

Personal Web Site of Rin Yokoyama

ANAPAW/Analyzer/encファイルの書き方

Memo-ANAPAW-Analyzerへ戻る

enc ファイルで行うのは、rawdata(idata, id) を処理して val(x, y)に詰めていく作業。
val 配列は、anapaw 側で頭から読まれていくので隙間を開けず1から順に詰めなくてはならない。というか、val 配列のサイズを必要最低限にするためにこのような仕様になっていると思われる。
一列目、val(1,y) には ana ファイルで呼び出す際の id を入れ、2列目以降にデータを詰める。これにより、ana ファイルで analyzer,id,id,x 書いたときに、analyzer 番目の Analyzer で詰めた val(1,y)=id となる val(x,y) を表すことになる。

割りと最低限のenc
val の2列目に raw data, 3列目に calibrated data を入れる。


      SUBROUTINE enc○○(val,nx,ny,naok,
     &     rawdata,nhitdata,hitdet,nhitdet,ndet,ndata)

      implicit none
      include 'analyslogic.fh'
      include 'analysevent.fh'
      include 'commonprm.fh'
      include '○○prm.fh'

 1    INTEGER nx, ny, ndet, ndata, naok
      INTEGER rawdata(ndata,ndet)
      INTEGER nhitdata(ndet)
      INTEGER hitdet(ndet)		
      INTEGER nhitdet
      REAL    val(nx,ny)

      integer iHit, id

      if (initencflag([analyzer])) then
         call load○○prm
         initencflag([analyzer]) = .false.
      endif

      naok = 0

      do iHit = 1,nHitDet ! hit した detector 数ループ
         id = hitDet(iHit) ! iHit 番目の detector 番号
         naok = naok + 1 ! val配列を1列目から順番に詰めるための番号
         val(1,naok) = id ! 1番目にはidを入れる
         val(2,naok) = rawdata(1, id) ! raw E
         val(3,naok) = calprm(1,id)*rawdata(1, id)+calprm(2,id) ! cal E
      enddo

      return

      end		
		

Memo-ANAPAW-Analyzerへ戻る