• 検索結果がありません。

第 6 章 GAGG シンチレーターとの組み 合わせによる γ 線検出合わせによるγ線検出

6.4 結果・考察

前小節で得た結果をさらに吟味・考察するために行った追加測定と見積もりについて述 べる。

ここまでの測定ではシンチレーターを裸の状態で

MPPC

にとりつけていた。この場合、

シンチレーション光のうち

MPPC

受光部以外へ向かったものはそのまま外部へ逃げて検 出されない可能性がある。そこで、反射材のテフロンシートでシンチレーターを包み、シ ンチレーションが反射してから

MPPC

の受光面に届く寄与を検討することにした。図

6.5

にこの際の想定図をあげる。

6.5:

反射材のテフロンシートをかぶせた場合の想定図

6.6:

テフロンを被せていないとき 図

6.7:

テフロンを被せたとき

結果の波高分布を、図

6.6

と図

6.7

に示す。波高分布のピークをガウス分布でフィット した平均値を比較すると、テフロンを被せていないとき

2.63

×

10

4に対して、テフロンを

た。そこで、直接

MPPC

の受光面に向かったシンチレーション光子の数を検討するため、

以下のようにモンテカルロシミュレーションを行った。

5mm

角のシンチレーターの中央で光電効果を起こしたと仮定し、この点に対し

MPPC

の受光面が占める立体角

ω

立体角

=

受光面積 距離2 で表され、受光面積は

1mm

2

,

距離は

2.5mm

である。

MPPC

の検出効率は、開口率

(

ピクセルの境界付近など不感部分をのぞいた割合

)61.5

%と 量子効率および電子雪崩形成確率の積で決まり、それを図

6.8

に示す。

(

検出効率にはクロ ストークとアフターパルスによる影響が含まれている

)

これによると、

GAGG

の発光波長

520[nm]

のとき光子検出効率は

40

%である。

[1]

6.8: MPPC

の検出効率

(

浜松ホトニクス社のカタログより抜すい

)

すると、全立体角が

4π[sr]

であるので、受光部に届いて検出される光子の割合は

ω

ε

det

= 1 2.5

2×

1

×

0.40 = 0.0051

と見積もられる。

シンチレーター

GAGG

の発光量は、製造者である古河機械金属の仕様表(表

3.2

参照

)

によれば

60,000[photon/MeV]

である。137

Cs

γ

線エネルギー

0.662MeV

がすべてシンチ レーター内で失われたと仮定すると

MPPC

で検出される光子の期待値は、

60,000[photon/MeV]

×

0.662[MeV]

×

0.51[

]=202[photons]

と見積もられる。ここで、

MPPC

は同じピクセルに

2

個以上の光子が入った場合には

1

個 の光子が入った時と同じ信号が出ることを考慮し、

MPPC

によって検出できる光子数の シミュレーションを以下のようなアルゴリズムで行った。

検出される光子数の期待値が

202

であるから、個々の事象では

±

202

個の標準偏差を持 つガウス分布するものとした。表

2.1

にあるように本実験で用いた

MPPC

400

のピク セルを持つため、光子は

400

のピクセルに一様分布で入射し、同一ピクセルに複数個の光 子が入ったときはそれを1光子とカウントした。

6.9

には各ピクセルに入射した光子数の分布、図

6.10

は光子を検出したピクセル数の 分布を示す。

6.9:

各ピクセルに入射した光子数のヒストグラム

6.10:

光子を検出できたピクセル数のヒストグラム

これらにより、平均

202

個の光子が

MPPC

の有感領域に達するが、同一ピクセルに複 数個の光子が入る場合があるため、結果として、平均して

159

個程度の光子が検出される という見積もりになる。これは実際に実験データから得た

76

個と比較すると

76

÷

159=0.477

となり、実験値は期待値の

48

%程度であるという結論に達する。この約

2

倍の減少が生 じている理由は現時点では未解明である。

7 章 まとめ

LED

点灯を

MPPC

で受け、波高分布からその増倍率を測定し、

10

5オーダーの増倍率 を示し、フォトンカウンティンぐ能力を持つことを確認した。

GAGG

シンチレーターと 組み合わせて、1

37Cs

が発する

662keV

γ

線を検出できることを確認した。ただし、シ ンチレーター内で

662keV

の全てが失われ、発生したシンチレーション光のうち

MPPC

受 光部に直接入ったもののみが検出されるという仮定に基づいた期待値と比べ、実験データ から得た測定値は半分程度であった。この約

2

倍の減少が生じている理由は現時点では未 解明である。

謝辞

本研究を進めるにあたり、始終ご指導ご鞭撻を頂きました指導教官の宮林謙吉先生に心 より感謝いたします。また、たくさんのアドバイスを頂きました林井久樹先生、下村真弥 先生に深く感謝いたします。そして、たびたびご助言、ご協力いただいた先輩方、1年間 高エネルギー物理学研究室で共に研究を進めてきた同回生にも大変お世話になりありが とうございました。

たくさんの方々のご支援とご協力により、卒業論文を完成させることができました。皆 様へ心から感謝の気持ちと御礼を申し上げたく、謝辞にかえさせていただきます。

付 録 A 増倍率測定時に用いたデータ 収集プログラムのソースコード

//header file

#include <unistd.h>

#include <stdio.h>

#include "vxi11_user.h"

int main(int argc , char *argv[]){

FILE *fp;

fp=fopen("Cs03032.txt", "w");

int nevt = 5000;//event number CLINK *clink;

clink = new CLINK;

static char* serverIP = "10.0.1.108";

int A;

//-- open scope

if (vxi11_open_device(serverIP , clink) != 0){

printf ("Couldn ’t open scope.\n");

exit(1);

}

//-- buffer to receive data block.

static char wf1[10000],wf2[10000];

char buffer[40];

int ret;

ret = vxi11_send(clink , "DAT:SOU CH2");//Digitize ch=2 signal.

ret = vxi11_send(clink , "HOR:SCA 40E-09"); //Horizontal 40 ns/div ret = vxi11_send(clink , "CH2:SCA 10E-03");//ch=2 vertical 10mV/div ret = vxi11_send(clink , "TRIG:A:EDGE:SOU CH2");//triger type = edge.ch=2 ret = vxi11_send(clink , "TRIG:A:EDGE:SLO FALL");//slope control=fall

ret = vxi11_send(clink , "TRIG:A:LEV:CH2 -37.6E-03");//triger level = -37.6mV ret = vxi11_send(clink , "TRIG:A:MODE NORM");//trigered data get

ret = vxi11_send(clink , "CH1:POS 3.0"); //vertical position ret = vxi11_send(clink , "HOR:DEL:MOD OFF"); //delay mode off ret = vxi11_send(clink , "HOR:POS 20");//trig pos 20% from left ret = vxi11_send(clink , "HOR:RECO 1000");//record length

ret = vxi11_send(clink , "ACQ:MOD SAM");//acquisition mode = 8bit

double xinc = vxi11_obtain_double_value(clink , "WFMO:XIN?"); //get horizontal range printf("%10.3e\n",xinc);

fprintf(fp,"%10.3e\n",xinc );

for (int iev = 0 ; iev < nevt + 1; iev++){

ret = vxi11_send(clink , "DAT:ENC FAS");// fastest encording ret = vxi11_send(clink , "WFMO:BYT_N 1"); //renge = -128~127 ret = vxi11_send(clink , "DAT:STAR 1");

ret = vxi11_send(clink , "DAT:STOP 1000");

ret = vxi11_send(clink , "CURV?");//get data

long bytes_returned=vxi11_receive_data_block(clink , wf1, 10000, 1000);

if (iev == 0){

continue;

} }

for (int k = 0; k < 200; k++){

A = wf2[k]-wf1[k];

if (A==0){

continue;

} break;

}

printf(" %5d %5d ", iev, bytes_returned);

fprintf(fp," %5d %5d ",iev,bytes_returned);

for (int i = 0 ; i < 1000; i++){

fprintf(fp,"%d ",(char)wf1[i]);

}

printf("\n");

fprintf(fp,"\n");

}

fclose(fp);

printf("ending... \n");

vxi11_close_device(serverIP , clink);

}

付 録 B 増倍率データ解析プログラム

#include <stdio.h>

int main() {

int i, n, j;

float xdiv; /* horizonta axises range. */

int iev, nsample; /* Event number and number of sampling. */

int siny[10000];

FILE *fp;

FILE *fpout;

fp = fopen("Cs03032.txt", "r"); //file open for read if(fp == NULL){

printf("can’t open file \n");

return 0;

}

fpout = fopen("Cs03032i.txt","w"); //file open for write if(fp == NULL){

printf("can’t open file \n");

return 0;

}

/* Top line is x/div. */

fscanf(fp, "%e\n", &xdiv );

printf("xdiv read done.\n");

/* Read event number unless EOF. */

while(fscanf(fp,"%d",&iev)!=EOF){

printf("event number=%d",iev);

/* Check number of samplings. */

fscanf(fp, "%d", &nsample );

/* Read sample and hold data.*/

const int nstot =1000;//taking 1000 sample is normal.

for(i=0; i<nstot; i++){

fscanf(fp, "%d", &(siny[i]) ); //get data }

printf("\n");

if(nsample == nstot){

/* Do needed instructions for the read data. */

double sum = 0.0;

double sum2 = 0.0;

double sum3 = 0.0;

double dev = 0.0;

double ave = 0.0;

double delta = 0.0;

double max = 0.0;

const int nped = 100;

/* sum */

for(i=0;i<nped;i++){

sum = sum + (double)siny[i];

}

/* average */

ave = sum / nped;

for(i=0;i<nped;i++){

sum2 = sum2 + (ave - (double)siny[i])*(ave - (double)siny[i]);

}

dev = sum2 / nped;

/* delta */

for(i=nped+10;i<300;i++){

delta = ave - (double)siny[i];

/*pulse hight*/

if(max < delta){

max = delta;

}

/*integral*/

sum3 = sum3 + delta;

}

/* select data */

//fprintf(fpout,"%d %f %f %f %f\n" ,iev,ave,dev,max,sum3);

printf("%d %f %f %f %f\n",iev,ave,dev,max,sum3);

fprintf(fpout,"%f\n" ,sum3); //only integral }

}/* Event loop end. */

fclose(fp);

fclose(fpout);

printf("ending ...\n");

}

付 録 C 検出光子数のシミュレーション

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

//#include<random.h>

/*ramdom number of gaus generation*/

int main(int argc, char* argv[]){

int ipix[400];//ピクセル数 int nran[8];

FILE *fp;

FILE *fpp;

fp=fopen("np2.txt","w");

fpp=fopen("ne2.txt","w");

/* expected value */

const double mu=202.0;

const double sigma=sqrt(202.0);

srand(10);

for(int i=0;i<10000;i++){

double r=((double)rand())/((double)RAND_MAX);

double rr=((double)rand())/((double)RAND_MAX);

double z1=sqrt( -2.0*log(r) )*cos( 2.0*M_PI*rr);

double z2=sqrt( -2.0*log(r) )*sin( 2.0*M_PI*rr);

double rand_normal=0.0;

rand_normal= (double)mu +(double)sigma*(double)z1;

printf("event number =%d rand_normal =%f\n",i,rand_normal);

int npix=0;

for(int i=0;i<400;i++){

ipix[i]=0.0;

}

for(int t=0;t<rand_normal;t++){

int iran=rand()%400;

ipix[iran]++;

}

/* number of photon in pixel */

for(int it=0;it<400;it++){

if(ipix[it]!=0){

npix++;

} }

fprintf(fpp,"%d\n",npix);

for(int jj=0;jj<400;jj++){

fprintf(fp,"%3d",ipix[jj]);

}

}

fclose(fp);

fclose(fpp);

}

関連したドキュメント