1と17のリビジョン間の差分 (その間の編集: 16回)
2013-11-11 06:40:30時点のリビジョン1
サイズ: 1008
編集者: TakanoriKono
コメント:
2014-01-16 02:02:36時点のリビジョン17
サイズ: 9620
編集者: TakanoriKono
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
= 宇宙線ミューオン = == 目的・概要 ==
プラスチック・シンチレータと光電子増倍管(PMT)を使って粒子検出の原理を学ぶ。2枚のシンチレータを用いて、どのような測定ができるか考えて実行する。実験で行うことの例としては次のようなものが挙げられる。
 * PMTからの信号をオシロスコープで確認
 * 同時計測によりPMTからの信号が宇宙線ミューオンに由来するものであることを示す
 * 検出器の信号をデジタル化して処理するNIMやCAMACといったエレクトロニクスの使い方を学ぶ
 * 宇宙線ミューオンの性質を調べる
  * ミューオンの飛来する角度分布を測定する
  * ミューオンが検出器で静止し、崩壊して生じた電子を捕えることでミューオンの寿命を測定する
行 3: 行 10:
= 実験に使う道具と手法 =
== プラスチック・シンチレータと光電子増倍管 ==
== 信号波形の処理 ==
== デジタル回路と信号処理 ==
== A/D変換 ==
実験を行っていく中で、アナログ波形の整形や増幅、デジタル回路(論理回路)の組み方も学ぶ。場合によっては、回路を製作して検証する。アナログ回路による波形の処理は、物理数学で習うフーリエ変換やラプラス変換の大変良い応用例である。データはデジタル化した後、コンピュータに取り込むが、そこから先データから有益な情報を抽出するにはプログラミングを伴う解析が必要である。また実験結果の妥当性を直観のレベルを超えて検証するには、実験環境をできるだけ正確に再願してシミュレーションする必要がある。
行 9: 行 12:
= 測定内容 =
== 宇宙線ミューオンの角度分布 ==
== ミューオンの寿命測定 ==
ミューオンがシンチレータに入射して静止した場合の信号を詳細に観測することにより、静止後にミューオンが電子とニュートリノ2つに崩壊した時に生じる電子のシグナルを観測する。ミューオンが入射した時刻と電子のシグナルが観測された時刻の差からミューオンの寿命を測定する。
PMTからの出力される信号波形をサンプリング型ADCでデジタル化する。サンプリングは100 MHzで行い、最大1024サンプル分の測定を行う。したがって、10 ns毎に信号の大きさを記録し、最大10.24 um分のデータを記録する。
参考スライド: [[attachment:20130916-宇宙線検出.pdf]], [[attachment:20130924-CAMAC.pdf]]

== 宇宙線ミューオン ==


== 測定内容 ==

=== 宇宙線ミューオンの角度分布 ===

=== ミューオンの寿命測定 ===
ミューオンがシンチレータに入射して静止した場合の信号を詳細に観測することにより、静止後にミューオンが電子とニュートリノ2つに崩壊した時に生じる電子のシグナルを観測する。手順としては
 1. ミューオンがシンチレータに入射して静止したと思われる事象を集める
 1. そのような事象に対してシンチレータ+PMTからの波形を数μsに渡って記録する
  * 波形の記録には100 MHzのサンプリングADCを使用する(最大1024サンプル、10.24 μs)
 1. 各事象に対して波形を解析して2つのピークが見える事象を選ぶ
 1. 2つのピークの検出された時間差よりミューオンが崩壊した時刻Δtを求める(入射した時刻をt=0とする)
 1. 全事象を解析し、Δt分布のヒストグラムを作り、これから寿命を求める

== 実験に使う道具と手法 ==
=== プラスチック・シンチレータと光電子増倍管 ===

=== デジタル回路と信号処理 ===

=== 信号波形の処理 ===
PMTからの出力波形は数nsと非常に短いパルスになっている。今回はサンプリングADCで波形を記録して、2つのシグナルの検出された時間差を求める方針のため、PMTからの波形を引き延ばして使用する。基本的には積分回路を通して、ある時定数で減衰するような波形を作るが、積分回路の後に微分回路(CR)を入れてしまったためバイポーラ出力になっている。
回路の伝達関数、短い矩形信号に対する出力波形を求める。


=== A/D変換 ===

== データ収集用プログラム ==
ライブラリ
 * CamacDaq
  * データ収集に必要なデータ構造等
  * 他のコードに依存しない
 * OnlineDaq
  * CAMACコントローラにアクセスするためのコードを含む
  * libCamacDaq.soを使用
 * DaqServer
  * サーバーとして他のDAQプロセスからデータを受け取ることが可能
  * 収集したデータをROOT形式に変換して保存
  * オンライン・モニタ
  * 複数のthreadを使ってデータを処理
  * libCamacDaq.so及びROOTにリンク

=== 実行可能プログラム ===
 * daq_server.exe
 * startdaq_wf.exe

== 波形解析の解析 ==

daq_server.exeで収集したデータは、/nfs/space1/camac/DAQ/DaqServer/に保存される。デフォルトではdaq.rootという名前になっているため、データを取った後で適当に別名に変更する
|| '''データ収集条件''' ||'''ファイル名''' ||
|| シンチレータ3番からの波形(2013/12/26に開始) || daq_cosmic_sci3wf_20131226_22dB_[0-11].root ||
Stopped data taking on 16.01.2014.

データを解析するに当たっては、解析作業用のディレクトリを作成すると便利。ここでは、この作業用ディレクトリの下に以下のファイル及びサブ・ディレクトリを準備したとして進める。
> ls analysis/
|| '''ファイル/ディレクトリ名''' || '''用途''' ||
|| scripts/ || 良く使うコマンド等をスクリプト(.sh)にまとめたもの ||
|| macros/ || ROOTで解析をするためのマクロ ||
|| figures/ || ROOTで作成した図のファイル(.png, .eps, .pdf等) ||
|| .rootrc || ROOTの設定ファイル ||
|| rootlogon.C || ROOTを起動したときに自動的に読み込まれるマクロ ||

解析用の環境をセットアップするテンプレートとして、/nfs/space1/tkohno/work/Lab/templates/analysisに必要なファイルを置いてあるので、必要に応じてコピーする。全部コピーしたい場合は、自分の作業用ディレクトリに移動({{{cd <ディレクトリ名>}}})してから以下のコマンドを実行する。
{{{
cp -r /nfs/space1/tkohno/work/Lab/templates/analysis .
}}}
ここには、macros/やscripts/の下に幾つかファイルがあり、特にmacros/ScanWaveform.*は後で必要となる。

=== ROOTファイルの中身 ===
{{{
root [1] t->Print()
******************************************************************************
*Tree :t : TTree from daq_server *
*Entries : 136690 : Total = 565001503 bytes File Size = 74319473 *
* : : Tree compression factor = 7.61 *
******************************************************************************
*Br 0 :EventNumber : EventNumber/I *
*Entries : 136690 : Total Size= 553823 bytes File Size = 199122 *
*Baskets : 71 : Basket Size= 32000 bytes Compression= 2.77 *
*............................................................................*
*Br 1 :TimeStamp_sec : TimeStamp_sec/L *
*Entries : 136690 : Total Size= 1100741 bytes File Size = 287194 *
*Baskets : 71 : Basket Size= 32000 bytes Compression= 3.83 *
*............................................................................*
*Br 2 :TimeStamp_usec : TimeStamp_sec/L *
*Entries : 136690 : Total Size= 1100813 bytes File Size = 516503 *
*Baskets : 71 : Basket Size= 32000 bytes Compression= 2.13 *
*............................................................................*
*Br 3 :waveform_n0 : waveform_n0/I *
*Entries : 136690 : Total Size= 553823 bytes File Size = 11135 *
*Baskets : 71 : Basket Size= 32000 bytes Compression= 49.58 *
*............................................................................*
*Br 4 :waveform0 : waveform0[waveform_n0]/I *
*Entries : 136690 : Total Size= 561692004 bytes File Size = 73195081 *
*Baskets : 14362 : Basket Size= 32000 bytes Compression= 7.67 *
*............................................................................*
}}}

=== ROOTで波形を確認 ===
{{{
root [0] TFile *f = TFile::Open("data/daq_cosmic_sci3wf_merged.root");
root [1] t->SetMarkerStyle(20);
root [2] t->SetMarkerSize(0.3);
root [3] t->Draw("waveform0:Iteration$", "", "", 1, 882);
}}}

=== ROOTマクロの作成と実行 ===

templates/analysis/にあるマクロの例
|| '''マクロ''' || '''コメント''' ||
|| run_analysis1.C || 指定したファイルにある全ての事象データを読み込んでループ内で処理 ||
|| analyze_waveform1.C || 指定したファイルの特定の事象の波形を読み込んで処理。データをTGraphとして保持 ||
|| analyze_waveform2.C || 指定したファイルの特定の事象の波形を読み込んで処理。データを配列として保持 ||
これらを元に、解析を進める。

 1. いくつかの事象について波形を眺める。どのような波形がどれくらいの頻度で出現するか感覚を掴む
 1. 明らかに信号が確認できるものと、そうで無いものを区別する方法を考えてアルゴリズムを作る
   * 実際にマクロに組み込んで、信号が確認できる事象の割合を求める
 1. 信号があるかどうか判断できたら、信号が複数ある事象を探す。そのためのアルゴリズムを書く
 1. 2つ以上、信号があるものについて時間差を求める。(ADCのサンプル間の間隔は10 ns)
 1. 崩壊時間の分布を作る
 1. 上の分布を指数関数でフィットして寿命を求める

目的・概要

プラスチック・シンチレータと光電子増倍管(PMT)を使って粒子検出の原理を学ぶ。2枚のシンチレータを用いて、どのような測定ができるか考えて実行する。実験で行うことの例としては次のようなものが挙げられる。

  • PMTからの信号をオシロスコープで確認
  • 同時計測によりPMTからの信号が宇宙線ミューオンに由来するものであることを示す
  • 検出器の信号をデジタル化して処理するNIMやCAMACといったエレクトロニクスの使い方を学ぶ
  • 宇宙線ミューオンの性質を調べる
    • ミューオンの飛来する角度分布を測定する
    • ミューオンが検出器で静止し、崩壊して生じた電子を捕えることでミューオンの寿命を測定する

実験を行っていく中で、アナログ波形の整形や増幅、デジタル回路(論理回路)の組み方も学ぶ。場合によっては、回路を製作して検証する。アナログ回路による波形の処理は、物理数学で習うフーリエ変換やラプラス変換の大変良い応用例である。データはデジタル化した後、コンピュータに取り込むが、そこから先データから有益な情報を抽出するにはプログラミングを伴う解析が必要である。また実験結果の妥当性を直観のレベルを超えて検証するには、実験環境をできるだけ正確に再願してシミュレーションする必要がある。

参考スライド: 20130916-宇宙線検出.pdf, 20130924-CAMAC.pdf

宇宙線ミューオン

測定内容

宇宙線ミューオンの角度分布

ミューオンの寿命測定

ミューオンがシンチレータに入射して静止した場合の信号を詳細に観測することにより、静止後にミューオンが電子とニュートリノ2つに崩壊した時に生じる電子のシグナルを観測する。手順としては

  1. ミューオンがシンチレータに入射して静止したと思われる事象を集める
  2. そのような事象に対してシンチレータ+PMTからの波形を数μsに渡って記録する

    • 波形の記録には100 MHzのサンプリングADCを使用する(最大1024サンプル、10.24 μs)

  3. 各事象に対して波形を解析して2つのピークが見える事象を選ぶ
  4. 2つのピークの検出された時間差よりミューオンが崩壊した時刻Δtを求める(入射した時刻をt=0とする)

  5. 全事象を解析し、Δt分布のヒストグラムを作り、これから寿命を求める

実験に使う道具と手法

プラスチック・シンチレータと光電子増倍管

デジタル回路と信号処理

信号波形の処理

PMTからの出力波形は数nsと非常に短いパルスになっている。今回はサンプリングADCで波形を記録して、2つのシグナルの検出された時間差を求める方針のため、PMTからの波形を引き延ばして使用する。基本的には積分回路を通して、ある時定数で減衰するような波形を作るが、積分回路の後に微分回路(CR)を入れてしまったためバイポーラ出力になっている。 回路の伝達関数、短い矩形信号に対する出力波形を求める。

A/D変換

データ収集用プログラム

ライブラリ

  • CamacDaq

    • データ収集に必要なデータ構造等
    • 他のコードに依存しない
  • OnlineDaq

    • CAMACコントローラにアクセスするためのコードを含む
    • libCamacDaq.soを使用
  • DaqServer

    • サーバーとして他のDAQプロセスからデータを受け取ることが可能
    • 収集したデータをROOT形式に変換して保存
    • オンライン・モニタ
    • 複数のthreadを使ってデータを処理
    • libCamacDaq.so及びROOTにリンク

実行可能プログラム

  • daq_server.exe
  • startdaq_wf.exe

波形解析の解析

daq_server.exeで収集したデータは、/nfs/space1/camac/DAQ/DaqServer/に保存される。デフォルトではdaq.rootという名前になっているため、データを取った後で適当に別名に変更する

データ収集条件

ファイル名

シンチレータ3番からの波形(2013/12/26に開始)

daq_cosmic_sci3wf_20131226_22dB_[0-11].root

Stopped data taking on 16.01.2014.

データを解析するに当たっては、解析作業用のディレクトリを作成すると便利。ここでは、この作業用ディレクトリの下に以下のファイル及びサブ・ディレクトリを準備したとして進める。 > ls analysis/

ファイル/ディレクトリ名

用途

scripts/

良く使うコマンド等をスクリプト(.sh)にまとめたもの

macros/

ROOTで解析をするためのマクロ

figures/

ROOTで作成した図のファイル(.png, .eps, .pdf等)

.rootrc

ROOTの設定ファイル

rootlogon.C

ROOTを起動したときに自動的に読み込まれるマクロ

解析用の環境をセットアップするテンプレートとして、/nfs/space1/tkohno/work/Lab/templates/analysisに必要なファイルを置いてあるので、必要に応じてコピーする。全部コピーしたい場合は、自分の作業用ディレクトリに移動(cd <ディレクトリ名>)してから以下のコマンドを実行する。

cp -r /nfs/space1/tkohno/work/Lab/templates/analysis .

ここには、macros/やscripts/の下に幾つかファイルがあり、特にmacros/ScanWaveform.*は後で必要となる。

ROOTファイルの中身

root [1] t->Print()
******************************************************************************
*Tree    :t         : TTree from daq_server                                  *
*Entries :   136690 : Total =       565001503 bytes  File  Size =   74319473 *
*        :          : Tree compression factor =   7.61                       *
******************************************************************************
*Br    0 :EventNumber : EventNumber/I                                        *
*Entries :   136690 : Total  Size=     553823 bytes  File Size  =     199122 *
*Baskets :       71 : Basket Size=      32000 bytes  Compression=   2.77     *
*............................................................................*
*Br    1 :TimeStamp_sec : TimeStamp_sec/L                                    *
*Entries :   136690 : Total  Size=    1100741 bytes  File Size  =     287194 *
*Baskets :       71 : Basket Size=      32000 bytes  Compression=   3.83     *
*............................................................................*
*Br    2 :TimeStamp_usec : TimeStamp_sec/L                                   *
*Entries :   136690 : Total  Size=    1100813 bytes  File Size  =     516503 *
*Baskets :       71 : Basket Size=      32000 bytes  Compression=   2.13     *
*............................................................................*
*Br    3 :waveform_n0 : waveform_n0/I                                        *
*Entries :   136690 : Total  Size=     553823 bytes  File Size  =      11135 *
*Baskets :       71 : Basket Size=      32000 bytes  Compression=  49.58     *
*............................................................................*
*Br    4 :waveform0 : waveform0[waveform_n0]/I                               *
*Entries :   136690 : Total  Size=  561692004 bytes  File Size  =   73195081 *
*Baskets :    14362 : Basket Size=      32000 bytes  Compression=   7.67     *
*............................................................................*

ROOTで波形を確認

root [0] TFile *f = TFile::Open("data/daq_cosmic_sci3wf_merged.root");
root [1] t->SetMarkerStyle(20);
root [2] t->SetMarkerSize(0.3);
root [3] t->Draw("waveform0:Iteration$", "", "", 1, 882);

ROOTマクロの作成と実行

templates/analysis/にあるマクロの例

マクロ

コメント

run_analysis1.C

指定したファイルにある全ての事象データを読み込んでループ内で処理

analyze_waveform1.C

指定したファイルの特定の事象の波形を読み込んで処理。データをTGraphとして保持

analyze_waveform2.C

指定したファイルの特定の事象の波形を読み込んで処理。データを配列として保持

これらを元に、解析を進める。

  1. いくつかの事象について波形を眺める。どのような波形がどれくらいの頻度で出現するか感覚を掴む
  2. 明らかに信号が確認できるものと、そうで無いものを区別する方法を考えてアルゴリズムを作る
    • 実際にマクロに組み込んで、信号が確認できる事象の割合を求める
  3. 信号があるかどうか判断できたら、信号が複数ある事象を探す。そのためのアルゴリズムを書く
  4. 2つ以上、信号があるものについて時間差を求める。(ADCのサンプル間の間隔は10 ns)
  5. 崩壊時間の分布を作る
  6. 上の分布を指数関数でフィットして寿命を求める

CosmicRayMuonMeasurement (最終更新日時 2014-01-16 02:02:36 更新者 TakanoriKono)