38
6 まとめと課題
39
A ADC キャリブレーション値の求め方
本研究で使用したアンプはTGC用のASD(Amplifier-Shaper-Discriminator)である。これはgain
が0.8V/pCと表され、電荷がASDに入るとそれに比例する波高になって出力される。パルスの立ち
上がりは 16nsecと一定である。そのため、電荷が何倍に増幅されているのかは未知であった。その
ためASDに電荷量が既知のパルスを入力し、ADC分布をとりアンプのgainを求めた。この値から ADCキャリブレーション値を求めた。
まず、ASDのgainの測定を行った。電荷量が既知のパルスを作るにはコンデンサに矩形波を入 力すればよい。今回は5pCのコンデンサにパルスジェネレータから矩形波を入力した。電荷量は以 下の式のように表せる。
CV
Q
(A.1)セットアップは以下のようにして行った。51の抵抗は反射を防ぐためである。
図 A.1 ASDのgain測定のセットアップ
結果は図 A.2 のようになった。今回使ったADCは0.25pC/chであるので使用したASDのgain
は399.3±5.4倍である。
40
図 A.2 入力電荷とADC Channelの平均値
ここから、電子の素電荷 e、ASD のgain A、を用いて ADCキャリブレーション値は(A.2)式のよう に出せる。
A e 0.25pC
ADC キャリブレーション値 =
(A.2)41
Garfieldを使う際には文献[11]の付録が非常に参考になる。しかし、詳しいことはCERNのホーム
ページ[8]を読む必要がある。本研究で使用したGarfieldのマクロファイルを以下に記載する。
********************************************************************************
*MAIN
********************************************************************************
&MAIN
Global vgem=1600
Global datfname1 `~/garfield/output/2d06thgemfit_{vgem}`
Global datfname2 `~/garfield/output/06avalanche_{vgem}.dat`
Global hfile `~/garfield/output/06avalanche_{vgem}v.hist`
!rep labels text-font -2, text-precision stroke, text-colour blue, ...
character-height 0.03
!rep title text-font -5, text-precision stroke, text-colour red, ...
character-height 0.03
!rep number text-font -2, text-precision stroke, text-colour dark-green, ...
character-height 0.015
!rep comment text-font -2, text-precision stroke, text-colour dark-green, ...
character-height 0.015
********************************************************************************
*CELL
********************************************************************************
&CELL
cell-identifier "THGEM"
Global fmap `~ /garfield/fmap/2dthgem01_{vgem}v.fmap`
Global mxdir `/data/wakajun/thgem`
Call inquire_file(fmap,exist) If exist then
Read-field-map {fmap}
Else
field-map files potential "{mxdir}/phi{vgem}v.reg" ...
model "{mxdir}/thgem.sm2" ...
42
MAXWELL-2D-SV ...
x-mirror-periodic ...
compute-electric-field Save-field-map {fmap}
endif solids
For x From -0.15 step 0.1 to 0.15 Do box centre {x} 0.02175 0. ...
half-lengths 0.025 0.00175 0.01 ...
conductor box centre {x} 0. 0. ...
half-lengths 0.035 0.02 0.01 ...
dielectric
box centre {x} -0.02175 0. ...
half-lengths 0.025 0.00175 0.01 ...
conductor Enddo
*********************************************************************************
*GAS
*********************************************************************************
&GAS
*Option gas-print gas-plot
Global gasfile `gasfile/Ar9Methane1.DAT`
temperature 300 K pressure 1 atm
Call inquire_file(gasfile,exist) IF exist Then
get {gasfile}
ELSE
MAGBOLTZ ARGON 90. Methane 10. ...
electric-field-range 0.0001 100000. N-E 100 ...
mobility 1.87e-6 Write {gasfile}
43
heed argon 90 methane 10
*********************************************************************************
*DRIFT AVALANCHE
*********************************************************************************
&Drift
area -0.035 -0.035 0.035 0.035 view z=0. rotate 0.
Int-par max-step 0.0035 int-acc 1e-10 ...
reject-kink projected-path-integration m-c-dist-int 0.002 Call book_histogram(elec,500,1,10001)
Call book_histogram(ion,500,0,10000)
Call book_histogram(created,70,-0.035,+0.035) Call book_histogram(lost,70,-0.035,+0.035) Call book_histogram(end_e,70,-0.035,+0.035) Call book_histogram(end_ion,70,-0.034,+0.036) Call inquire_file(datfname2,exist)
If exist Then
Say "Old {datfname1} is being removed."
$ rm {datfname1}
Endif
> {datfname2}
For i From 1 To 1000 Do Call avalanche(0,0.03,0, ...
`plot-electron,noplot-ion`,ne,ni,...
`y_created`,created, ...
`y_lost`,lost, ...
`y_e`,end_e, ...
`y_ion`,end_ion) Say "{ne} {ni}"
Call fill_histogram(elec,ne) Call fill_histogram(ion,ni) Call plot_end
Enddo
>
44
Call plot_histogram(elec,`Electrons`,`Number of electrons after avalanche`) Call plot_end
Call hplot(ion,`Ions`,`Number of ions produced in avalanche`) Call plot_end
Call hplot(created,`y [cm]`,`Production point of electrons`) Call plot_end
Call hplot(lost,`y [cm]`,`Absorption point of electrons`) Call plot_end
Call hplot(end_e,`y [cm]`,`End point of electrons`) Call plot_end
Call hplot(end_ion,`y [cm]`,`End point of ions`) Call plot_end
Call fit_exponential(elec,a0,a1,ea0,ea1,`print,plot`) Call inquire_file(datfname1,exist)
If exist Then
Say "Old {datfname1} is being removed."
$ rm {datfname1}
Endif
> {datfname1}
Say "a0 = {a0}+/-{ea0}, a1 = {a1}+/-{ea1}."
>
Call inquire_file(hfile,exist) If exist Then
Say "Old {hfile} is being removed."
$ rm {hfile}
Endif
Call write_histogram(elec,hfile)
&Stop
45
本研究を進めるにあたり、ご指導いただいた指導教員の竹下徹教授、長谷川庸司准教授に感 謝いたします。また、ゼミ等でお世話になった研究員の小寺克茂氏に感謝いたします。また、実験 装置の使い方から、アドバイスまで多くの知識をいただいた黒石将弘氏に感謝いたします。
さらに、4年間大学でともに学んできた仲間に感謝いたします。