VDC drift time to distance
macro main
hid1=gtdcx1
hid2=gtdcu1
hid3=gtdcx2
hid4=gtdcu2
do i = 1, 4
if ($hexist([hid[i]]) .ne. 1) then
hrin [hid[i]]
endif
enddo
mess 'exec hout#hout4 gtdcx1'
exec hout#hout4 gtdcx1
mess temp.hst was created!
do i = 1, 4
ymax = $hinfo([hid[i]],'max')
ymaxq = [ymax] / 6.
str = 'sub1 '//[hid[i]]//' '//[ymaxq]//' '//1
x1 = $exec($unquote([str]))
str = 'sub1 '//[hid[i]]//' '//[ymaxq]//' '//2
x2 = $exec($unquote([str]))
xm = 0.5*(([x1])+([x2]))
str = 'hx('//[hid[i]]//','//$rsigma([xm])//')'
ym = $call([str])
ym10 = ([ym]) / 10.
selnt [i]0
exe draw_line_y [ym] [ym10]
str = 'sub1 '//[hid[i]]//' '//[ym10]//' '//1
x1 = $exec($unquote([str]))
str = 'sub1 '//[hid[i]]//' '//[ym10]//' '//2
x2 = $exec($unquote([str]))
exe draw_line_x [x1] [x2] [xm]
mess {$FORMAT([x1],I1),$FORMAT([x2],I1)}
enddo
wait
zon 2 2
hi/pl gdlx1
hi/pl gdlu1
hi/pl gdlx2
hi/pl gdlu2
return
macro sub1 hid val nn
if [hid] = '' then
message
message 'Usage wtdc HID'
message
exitm
endif
if ($hexist([hid]) .ne. 1) then
message
message 'No such histgram (HID: '//[hid]//')!!'
message
exitm
endif
xbins = $hinfo([hid],'xbins')
xmax = $hinfo([hid],'xmax')
xmin = $hinfo([hid],'xmin')
xdiv = ([xmax] - [xmin])/[xbins]
vec/cre xx([xbins]) r
vec/cre yy([xbins]) r
get/abs [hid] xx
get/con [hid] yy
k = 1
do i = 1, [xbins]-1
ip = [i] + 1
xxi = xx([i])
xxip = xx([ip])
yyi = yy([i])
yyip = yy([ip])
if (((([val] .ge. [yyi])) .and. ([val] .lt. [yyip])) .or. (([val] .le. [yyi]) .and. ([val] .gt. [yyip]))) then
slope = (([yyip])-([yyi]))/(([xxip])-([xxi]))
offset = ([yyi])-([slope])*([xxi])
x[k] = (([val])-([offset]))/([slope])
k = [k] + 1
endif
enddo
vec/del xx,yy
return [x[nn]]
macro sub2 hid val
if [hid] = '' then
message
message 'Usage wtdc HID'
message
exitm
endif
if ($hexist([hid]) .ne. 1) then
message
message 'No such histgram (HID: '//[hid]//')!!'
message
exitm
endif
xbins = $hinfo([hid],'xbins')
xmax = $hinfo([hid],'xmax')
xmin = $hinfo([hid],'xmin')
xdiv = ([xmax] - [xmin])/[xbins]
vec/cre xx([xbins]) r
vec/cre yy([xbins]) r
get/abs [hid] xx
get/con [hid] yy
k = 1
do i = 1, [xbins]-1
ip = [i] + 1
xxi = xx([i])
xxip = xx([ip])
yyi = yy([i])
yyip = yy([ip])
if (((([val] .ge. [yyi])) .and. ([val] .lt. [yyip])) .or. (([val] .le. [yyi]) .and. ([val] .gt. [yyip]))) then
slope = (([yyip])-([yyi]))/(([xxip])-([xxi]))
offset = ([yyi])-([slope])*([xxi])
x[k] = (([val])-([offset]))/([slope])
k = [k] + 1
endif
enddo
vec/del xx,yy
return [x[nn]]
macro draw_line_x
ymin = $GRAFINFO('WNYMIN')
ymax = $GRAFINFO('WNYMAX')
if $OPTION('LOGY') = 1 then
ymin = $sigma(10**([ymin]))
ymax = $sigma(10**([ymax]))
endif
do i = 1,[#]
dline [[i]] [[i]] [ymin] [ymax]
enddo
return
macro draw_line_y
xmin = $GRAFINFO('WNXMIN')
xmax = $GRAFINFO('WNXMAX')
if $OPTION('LOGX') = 1 then
xmin = $sigma(10**([xmin]))
xmax = $sigma(10**([xmax]))
endif
do i = 1,[#]
dline [xmin] [xmax] [[i]] [[i]]
enddo
return
MACRO hout4 id1=1011 file=temp.hst
nbin=1024
vec/cre hist1([nbin])
vec/cre hist2([nbin])
vec/cre hist3([nbin])
vec/cre hist4([nbin])
id = [id1]
hi/get/cont [id] hist1
id = [id1]+1
hi/get/cont [id] hist2
id = [id1]+2
hi/get/cont [id] hist3
id = [id1]+3
hi/get/cont [id] hist4
vec/write hist1,hist2,hist3,hist4 [file] 4(F8.0)
vec/del hist1,hist2,hist3,hist4
RETURN