ATLAS実験アップグレード用 シリコン検出器の性...
Transcript of ATLAS実験アップグレード用 シリコン検出器の性...
ATLAS実験アップグレード用シリコン検出器の性能評価のための
試験用システム説明書
大阪大学理学研究科物理学専攻山中卓研究室
矢島 和希
2016 年 6 月 13 日
概 要
本書は、ATLAS日本シリコングループで開発した、ATLAS実験アップグレード用シリコン検出器の性能評価のための試験用システムの説明書である。この試験用システムは、参照用飛跡検出器の SVXテレスコープと、SVXテレスコープと評価対象検出器との統合読み出しシステム、そして解析ソフトウェアフレームワークTestBeamAnaで構成されており、そのそれぞれについて、使用方法とその構造についての簡潔な説明を記す。また付録として、今後実装すべき機能や改善すべき点などの課題を挙げる。
目 次
第 1章 ATLAS実験アップグレード用シリコン検出器性能評価のための試験用システム 5
1.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
第 2章 SVXテレスコープ 7
2.1 ハードウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 シリコンストリップセンサ . . . . . . . . . . . . . . . . . . . 8
2.1.2 読み出しASIC SVX4 . . . . . . . . . . . . . . . . . . . . . . 8
2.1.3 汎用読み出し基板 SEABAS2 . . . . . . . . . . . . . . . . . . 9
2.2 読み出しシステム . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 ファームウェア . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2 ソフトウェア . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1 ハードウェアの接続方法 . . . . . . . . . . . . . . . . . . . . 13
2.3.2 読み出しソフトウェアの使用方法 . . . . . . . . . . . . . . . 15
第 3章 統合読み出しシステム 18
3.1 Trigger Logic Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 ソフトウェアフレームワーク SCTJDAQ . . . . . . . . . . . . . . . 19
3.3 使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.1 Trigger Logic Unitの接続方法 . . . . . . . . . . . . . . . . . 22
3.3.2 SCTJDAQの使用方法 . . . . . . . . . . . . . . . . . . . . . 23
第 4章 オフライン解析ソフトウェアフレームワークTestBeamAna 27
4.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
付 録A 試験用システムに残された課題点 30
付 録B Configuration parameters 32
1
図 目 次
1.1 試験用システムを用いたビーム試験で想定される、セットアップ図。SEABAS2については後述。図中の「Pixel」が、評価対象検出器に相当する。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 SVXテレスコープのハードウェア全体図。図左に 4枚の本体基板、図中央に Daughtar Boardと SEABAS2、図右に SEABAS2と接続された PCがある。取得されたデータは左から右へと転送される。 7
2.2 SEABAS2。基板の大きさは 195mm×140mmである。 . . . . . . . 9
2.3 SVXテレスコープ読み出しファームウェアのブロック図。上からトリガ処理部、SVX4制御部、データ読み出し部に分けられる。実線はFPGAの内部信号と制御信号の流れ、破線はPCへ送られるデータの流れを表す。1つの制御信号が 4枚の SVXテレスコープ本体基板に分配される。すなわち、全ての SVX4は全く同じ制御信号を受け取っているだけである。Trigger Logic Unitとそれに関係する信号 (点線で表す)は、3.1節にて後述する。 . . . . . . . . . . . . . . 11
2.4 SVXテレスコープ読み出しソフトウェアのブロック図。各白抜き長方形はC++のオブジェクトを表している。後述の自動較正機能は、Online Analyzerオブジェクト内で実装されており、Online Analyzer
オブジェクトが設定パラメータを送受信しているのはそのためである。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1 TLUのブロック図。 . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 SCTJDAQのGraphical User Interface (GUI)画面。ウェブブラウザを用いて表示している。Start、Stopなどのコマンドや、設定ファイル、ラン番号の設定などが、このGUIを通じて行える。 . . . . . 20
3.3 SVXテレスコープとピクセル検出器の読み出しソフトウェアを組み込んだ SCTJDAQのブロック図。赤い四角はプロセス、オレンジの矢印はデータの流れを表す。データ送受信のためのプロセス間通信には POSIX Message Queueを用いている。 . . . . . . . . . . . . . 21
2
3.4 SCTJDAQのEventMergerモジュールに実装された、事象ずれ補正機能の図解。左から順に 1事象づつ、EventMergerモジュールの動作を描いてある。灰色の矢印の上に書かれた長方形は、各検出器のReaderモジュールが出力する事象データ、その中の数字はタイムスタンプを表す。EventMergerモジュールでは、各検出器のReaderモジュールから送られてきた事象データを統合し、さらに下流へと送信する。タイムスタンプの不一致を検知すると、次の事象でダミーデータを挿入することにより、さらにその次の事象の不一致を解消する。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 オンラインモニタの画面。 . . . . . . . . . . . . . . . . . . . . . . . 25
3.6 ログ表示機能の画面表示。 . . . . . . . . . . . . . . . . . . . . . . . 26
4.1 開発したオフライン解析ソフトウェアTestBeamAnaの概略図。赤く色付けされた四角は各工程ごとに分割した実行ファイル、灰色に色づけされた四角は中間ファイルである。オレンジの矢印は実行する順番を表している。 . . . . . . . . . . . . . . . . . . . . . . . . . 28
3
表 目 次
2.1 SVXテレスコープに用いるシリコンストリップセンサの仕様。 . . 8
2.2 SEABAS2から PCへ送られるデータフォーマット。 . . . . . . . . 12
2.3 SVXテレスコープ SEABAS2上のDIPスイッチの割り当て . . . . . 14
2.4 オプション一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5 テストモード一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 イベントフラグメント (EF)のデータフォーマット . . . . . . . . . . 21
3.2 TLUのDIPスイッチの割り当て . . . . . . . . . . . . . . . . . . . 23
B.1 Configration parameters . . . . . . . . . . . . . . . . . . . . . . . . 32
4
第1章 ATLAS実験アップグレード用シリコン検出器性能評価のための試験用システム
1.1 概要ATLAS実験アップグレード用シリコン検出器性能評価のための試験用システム
1は、2025年ごろに予定されているATLAS実験のアップグレードにおいて新たにインストールするシリコン検出器の性能評価を行うため、ATLAS日本シリコングループが開発を進めてきたものである。シリコン検出器の性能評価試験は、高エネルギーの荷電粒子ビームや宇宙線を
用いて行われる。ビームを用いた試験は、ビーム試験やテストビームなどと呼ばれる。これらの試験を行う際には、テレスコープと呼ばれる参照用の飛跡検出器を用いて、評価対象検出器 (Device Under Test; DUT)への粒子入射位置を精度よく求める。この高精度の入射位置測定によって、粒子検出効率や電荷収集効率の構造依存性を調べることが可能となる。本試験用システムは、大阪大ATLASグループが独自開発したテレスコープであ
る SVXテレスコープと、SVXテレスコープと評価対象検出器 (Device Under Test;
DUT)のデータをオンラインで統合し、互いの整合性を監視するための統合読み出しシステム、そしてオフライン解析ソフトウェアフレームワークTestBeamAna
から構成される。図 1.1は、本試験用システムを用いてシリコン検出器のビーム試験を行うとき
の、最も典型的なセットアップを示したものである。SVXテレスコープの構造と使用方法については 2章で述べる。統合読み出しシステムは、互いに独立な検出器であるSVXテレスコープとDUT
の間のデータの整合性をオンラインで監視し、かつデータを統合し保存するための仕組みである。統合読み出しシステムは大きく分けて、共通のトリガ信号 2をそれぞれの検出器に分配することにより、検出器間のデータの整合性を保つ役割を担うハードウェア部 ”Trigger Logic Unit“と、各検出器のデータ読み出し、オンラインでのデータの整合性の監視と統合といった機能を担う、ソフトウェア部に分けられる。ソフトウェア部はデータ読み出しソフトウェアフレームワークであ
1以降、単に試験用システムと呼ぶ。2データ取得の合図を伝達する信号
5
図 1.1: 試験用システムを用いたビーム試験で想定される、セットアップ図。SEABAS2については後述。図中の「Pixel」が、評価対象検出器に相当する。
る、SCTJDAQを用いて実装している。後に詳述するが、SCTJDAQはモジュール化されており、ユーザがそれぞれのDUTの読み出しソフトウェアを SCTJDAQ
へ組み込むことにより、多様なDUTの試験を容易に実現できることを目指している。統合読み出しシステムの仕様や使用方法は 3章にて述べる。ビーム試験で得られたデータは、オフライン解析ソフトウェアフレームワークで
ある、TestBeamAnaによって解析し、性能評価を行うことができる。TestBeamAna
の中核部分は検出器の構造に依存しないように設計されており、ユーザは、検出器の構造に依存するわずかな処理を実装するだけで、DUTの性能評価を行うことができる。4章で、TestBeamAnaの仕様と使用方法について解説する。
6
第2章 SVXテレスコープ
本章では、試験用システムのハードウェアにおいて中核をなす、参照用の検出器 SVXテレスコープについて解説する。まず、SVXテレスコープの構造についてハードウェアと読み出しシステムに分けて述べた後に、使用方法について解説するが、とりあえず動作試験を行うといった場合は、いきなり 2.3から読み進めても構わない。
2.1 ハードウェアSVXテレスコープのハードウェア全体を収めた写真を、図 2.1に示す。図 2.1か
らわかるように、SVXテレスコープは複数の基板からなっており、データの流れにおいて上流から順 (図 2.1の左から右)に、本体基板、Daughtar Board、SEABAS2
と呼ぶ。本体基板にはセンサや読み出しASICが搭載されており、複数の本体基板を並べることで飛跡を検出することができる。SEABAS2は Field-Programmable
Gate Array (FPGA)を搭載した汎用読み出し基板であり、Gigabit Ethernet 規格による PCへの高速データ転送と、PCとの制御コマンドの送受信が可能である。Daughtar Boardは本体基板と SEABAS2間のアダプタとして働く。
図 2.1: SVXテレスコープのハードウェア全体図。図左に 4枚の本体基板、図中央にDaughtar Boardと SEABAS2、図右に SEABAS2と接続されたPCがある。取得されたデータは左から右へと転送される。
以降、テレスコープを構成する、各部品について更なる解説を加える。
7
2.1.1 シリコンストリップセンサSVXテレスコープのセンサには 50µmピッチ、256 chのシリコンストリップセン
サを使用した。SVXテレスコープに用いたセンサの主な仕様を表 2.1にまとめる。
表 2.1: SVXテレスコープに用いるシリコンストリップセンサの仕様。
ストリップ間隔 50µm
ストリップの長さ 15.4mm
ストリップ幅 10µm
ストリップ数 256本ストリップの負荷静電容量 約 1.5 pF
バイアス抵抗 2MΩ
有感領域の面積 13mm × 15.4mm
センサ厚 300µm
センサのタイプ p-in-nセンサ全空乏化電圧 約 80V
読み出し方向 片側読み出しタイプ AC読み出し
SVXテレスコープの 1枚の本体基板には、シリコンストリップセンサが 2枚、基板の表と裏のそれぞれに 1枚づつ、互いに直交し貼り付けられており、それぞれから得られる 1次元の位置情報を組み合わせることにより、2次元の位置情報を得る。
2.1.2 読み出しASIC SVX4
SVX4とは Fermilabとバークレー研究所が共同で開発した、シリコンストリップセンサからの信号を読み出すための特定用途向け集積回路 (Application Specific
Integrated Circuit; ASIC)である。センサからの信号は、ワイヤボンディングを介して SVX4へ送られ、デジタル信号へと変換される。SVX4の主な仕様と特徴を以下にまとめる。
• 128の読み出しチャンネル
• チップの大きさ 9.11mm × 6.40mm
• 192 bitの設定変更用レジスタ搭載
• 設定により、正負どちらの入力信号極性にも対応
• 任意のチャンネルへ、較正用のテスト電荷入射が可能
8
• 任意のチャンネルのプリアンプを無効化可能 (マスク機能)
• 閾値を超えたADC値を持つチャンネルだけを読み出すことによりデータ圧縮が可能 (Data Sparsification)
• ペデスタルを差し引いた ADC値を出力可能 (RealTime Pedestal Substruc-
tion; RTPS)
• Daisy chainによる複数チップの同時制御、同時読み出しの実現
• 動作電力
– アナログ回路用電源:+2.5V、約 60mA
– デジタル回路用電源:+2.5V、約 200mA
SVX4は、SVXテレスコープの本体基板1枚あたりに4枚搭載されている。SVX4の詳細な仕様は文献 [1]を参照のこと。
2.1.3 汎用読み出し基板 SEABAS2
SEABAS2は様々な検出器の読み出し試験に用いることができる汎用読み出し基板として、KEK SOIグループによって開発された。SEABAS2の写真に基板上に実装されている各素子の名称を加えたものを、図 2.2に示す。多種多様な検出器の読み出しに対応できるよう、プログラマブルロジックデバイスである FPGAを搭載しており、入出力インターフェイスとして、IEEE P-1386 64pin規格、NIM規格 (4つの入力端子、2つの出力端子)やGigabit Ethernet規格に対応している。
図 2.2: SEABAS2。基板の大きさは 195mm×140mmである。
基板上には 2つのFPGAが搭載されている。1つはUser FPGAと呼ばれ、IEEEP-1386 64pinコネクタ (SVXテレスコープにおいて、Daughtar Boardと接続され
9
る)とNIM入出力へ繋がれており、ユーザが自身の目的に沿ったファームウェアを開発、実装するためのものである。もう 1つは SiTCP FPGAと呼ばれ、User
FPGAとPCの間のEthernetを通じたデータ転送を可能にするためのネットワークプロセッサである SiTCPがあらかじめ実装されている。SiTCPは TCP/IPとUDPという 2つの通信プロトコルに対応しており、TCP/IPは PCへのデータ送信に、UDPは主に User FPGAのコントロール、モニタリングなどに使われる。User FPGAから見て、SiTCPによるTCP/IPのデータ入出力インターフェイスは同期式FIFOとして振る舞い、ユーザは SiTCPの実装を意識することなく、FIFO
にデータを書き込む際と同様の処理で、高速データ転送を実現できる。SVXテレスコープにおいて SEABAS2は、ハーフピッチ 80極フラットケーブル
とDaughtar Boardを介して最大 4枚の本体基板と接続され、ソフトウェアを通じての SVX4の制御や、SVX4から送られてくるデータの処理、PCへのデータ転送といった機能を担う。SEABAS2の詳細なマニュアルは、リンク (http://rd.kek.jp/project/soi/
SEABAS/main/SEABASmanual.pdf)を、SiTCPについてはリンク (http://research.
kek.jp/people/uchida/technologies/SiTCP/) を、SEABAS2 に搭載されるファームウェアについては 2.2.1節を参照すること。
2.2 読み出しシステム2.2.1 ファームウェアSVXテレスコープのファームウェアはハードウェア記述言語 verilogで記述され
ており、SEABAS2上のUser FPGAに実装されている。ファームウェアのソースコードは、配布パッケージの FPGACode/SVX4/以下に収められている。SEABAS2のUser FPGA上に実装した読み出しファームウェアでは、以下の処
理を行う。
• トリガ信号の処理と事象番号、時間情報の生成 (3.1節にて詳述)
• SVX4の設定レジスタへの書き込みや、制御信号の生成
• SVXから読み出したデータの整形と、SiTCP FPGAへの送出
読み出しファームウェアのブロック図を図 2.3に示す。SVX4から出力されるデータは、ファームウェアで整形されて、Ethernetを通
じてPCへと送られる。表 2.2に、ファームウェアで整形された後のデータフォーマットを示す。
10
図 2.3: SVXテレスコープ読み出しファームウェアのブロック図。上からトリガ処理部、SVX4制御部、データ読み出し部に分けられる。実線は FPGAの内部信号と制御信号の流れ、破線はPCへ送られるデータの流れを表す。1つの制御信号が4枚の SVXテレスコープ本体基板に分配される。すなわち、全ての SVX4は全く同じ制御信号を受け取っているだけである。Trigger Logic Unitとそれに関係する信号 (点線で表す)は、3.1節にて後述する。
11
表 2.2: SEABAS2から PCへ送られるデータフォーマット。
構造区分 値 (byte数) データ概要Event Header Magic Number (5byte) フォーマット識別子 (0, 0, 3, 6, 13)
(15byte) Event Number (4) イベントナンバーTimestamp (3) タイムスタンプ
TDC (1) TDC値 (単位:6.25 ns、レンジ:0 -19)
Magic Number 2 (2) フォーマット識別子 (255, 0)
Chip Header 1 Chip ID (1) チップ識別子 (128–255)
(2byte) Pipeline ID (1) パイプライン識別子 (1–46)
Data 1 Ch ID (1) チャンネルナンバー (0–127)
(0–256byte) ADC Count (1) ADC値 (0–255, Gray Code)
· · · · · ·Ch ID (1) チャンネルナンバー (0–127)
ADC Count (1) ADC値 (0–255, Gray Code)
· · · · · · · · ·Chip Header n · · · · · ·
Data n · · · · · ·
2.2.2 ソフトウェアSVXテレスコープの読み出しソフトウェアはプログラミング言語 C++で書か
れ、Ethernet・TCP/IPを通じて送られてきたデータの受信やデコード、後の解析で使用できるようなフォーマットでの記録、さらにはオンライン解析によるADC
値分布などのヒストグラムの生成などを行う。また、SiTCPと通信するためや、SVX4、SEABAS2の設定パラメータを扱うためのライブラリも含んでいる。ソースコードは配布パッケージの SVXTools/tele_soft/にある。ソフトウェアのブロック図を図 2.4に示す。後の 3.2節において解説する、ソフ
トウェアフレームワーク SCTJDAQへの組み込みを念頭に、SCTJDAQのクラス構造に沿ったクラス設計を行っている。基本機能に加え、SVXテレスコープの様々な較正を自動で行うための機能をソ
フトウェアに実装している。自動較正機能によって行える較正項目は以下のようになる。
• ペデスタル測定
• マスクチャンネル判定
• ゲイン測定
12
図 2.4: SVXテレスコープ読み出しソフトウェアのブロック図。各白抜き長方形はC++のオブジェクトを表している。後述の自動較正機能は、Online Analyzer オブジェクト内で実装されており、Online Analyzer オブジェクトが設定パラメータを送受信しているのはそのためである。
• トリガレイテンシスキャン
– Coarse Scan
– Fine Scan
自動較正機能の詳細は文献 [2]を参照のこと。
2.3 使用方法本節では、SVXテレスコープを単独で動作させる場合 1についての、各ハード
ウェアの接続方法と、ソフトウェアの使用方法について述べる。
2.3.1 ハードウェアの接続方法1. ハーフピッチ 80極フラットケーブルの一端を、本体基板の黒いコネクタに接続する。本体基板は通常、アルミで製作された筐体に収められており、その場合、コネクタは筐体上面に開いている穴から飛び出している。
1統合読み出しシステムを用いて DUTとの同期を取らず独立に動作させる場合も含む
13
2. Daughtar BoardとSEABAS2を接続する。この時、Daughtar BoardとSEABAS2
のコネクタの周囲にある固定のための 4か所のネジ穴の位置を合わせることと、斜めに力を加わえないことを注意する。
3. フラットケーブルのもう一方の端を、Daughtar Boardの各端子に接続する。Daughtar Boardには最大 4台までの本体基板が接続できる。ただし、3台以下の本体基板を接続する際、Daughtar Boardのコネクタのすぐ近くに書かれている番号が若いものから順に接続していく必要がある。
4. SEABAS2のEthernet 端子を用いて、EthernetケーブルでPCと SEABAS2
を接続する。
5. SEABAS2のNIM端子に、NIMケーブルを接続する。各端子の役割は、IN0
がトリガ入力、IN1がタイムスタンプ用クロック信号入力 (節 3.1で後述)、OUT0がBUSY信号出力である。
6. Daughtar Boardと SEABAS2のそれぞれにある電源端子にLV電源を接続する。SEABAS2の電源端子は、赤が+3.3V、4A、黒がGNDである。SEABAS2には青い電源端子も存在するが、通常は使用しない。Daughtar Boardの電源端子は、赤が+3.3V、1.5A×本体基板の枚数、黒がGND、黄はテスト電荷入射用端子で、0∼2.5Vの範囲の電圧を印加でき、流れる電流は微小である。
7. センサに逆バイアス電圧を印加する場合は、本体基板のNIMコネクタにHV
ケーブルを接続する。電源の極性は正である。極性に注意すること。
8. 電源を SEABAS2、Daughtar Board、HVの順に印加する。電源を切る時は、この逆の順で行う。
SEABAS2上には、8bitのDIPスイッチが実装されており、表 2.3に示すような以下の機能を備えている。
表 2.3: SVXテレスコープ SEABAS2上のDIPスイッチの割り当て
Bit 機能[4:0] 全て 0へ固定すること[5] テスト用 LEDのON/OFF
[6] ファームウェアリセットリセットする時のみONへ
[7] 内部トリガモード
14
2.3.2 読み出しソフトウェアの使用方法SVXテレスコープを単独で動作させる場合の読み出しソフトウェアは配布パッ
ケージの、SVXTools/tele_soft ディレクトリ以下に置かれている。ソースコードは tele_soft/src、インクルードファイルは tele_soft/include、設定ファイルは tele_soft/textに置かれている。動作は以下の環境において確認している。
• Mac OS X Snow leopard – Yosemite
• Mac OS X El Capitan, Apple LLVM version 7.3.0 (clang-703.0.29)
• Scientific Linux 6.7, g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
読み出しソフトウェアを動作させるためには ROOT(https://root.cern.ch)がインストールされている必要がある。
1. 用いるテレスコープ本体基板の枚数をマクロ定義する。定義は tele_soft/include/svxcommon.h以下の
1 $ #define TELESCOPE_NUM 4
で行なわれている。
2. 読み出しソフトウェアをコンパイルする。1 $ cd 作業ディレクトリ/SVXTools/tele_soft
2 $ make
3 $ make install
3. 以下のコマンドにより、ヘルプを見ることができる。1 $ cd 作業ディレクトリ/SVXTools/tele_soft/bin
2 $ ./run -h
4. 以下のコマンドにより、データ取得を行う。1 $ cd 作業ディレクトリ/SVXTools/tele_soft/bin
2 $ ./run -o <OUTPUT_FILENAME> -e <EVENT_NUM>
オプションを全て省略した場合はテストランモードとなる。オプションを 1
つでも指定する場合は、-oオプションを用い、出力ファイル名を指定する必要がある。
5. 以下のコマンドにより、各種較正を行うことができる。自動較正機能については、本小節の最後に解説を加える。
15
1 $ cd 作業ディレクトリ/SVXTools/tele_soft/bin
2 $ ./run [TEST_IDENTIFIER] -e <EVENT_NUM>
6. 各種作業によって記録されたデータは、SVXTools/tele_soft/dataディレクトリの下に保存される。
オプションの一覧を以下の表 2.4に示す。
表 2.4: オプション一覧
説明 引数 (デフォルト値)
-h, --help ヘルプを表示1:データ取得のみ
-m, --mode Runモードの切り替え 2:取得済データの解析3:データの取得と解析 (3)
-i, --input 設定ファイルのパス (未実装) (../text)
-e, --event 取得イベント数 (1000)
-v, --verbose 出力される Logの量を変更 0-3 (1)
--<PARAM NAME> 特定の設定パラメータの変更 変更値
SEABAS2の IPアドレス、ポート番号は SEABAS2のデフォルト値に固定としてある。そのため、SEABAS2の設定をデフォルト値から変更した場合は、src/
main.cc中の IPアドレス、ポート番号を設定しているマクロ変数を編集する必要が生じる可能性がある。SEABAS2との接続の詳細は [3]を参照。
自動較正機能
SVXテレスコープは、SVX4上のレジスタの値を変更することで、ゲインやタイミング、読み出しチャンネルのADC閾値などを設定可能である 2。これら設定値は、各本体基板ごとに tele_soft/text/config_tele*.datというテキストファイルに記述されており、これらを編集することで、設定の変更が可能である。しかし、手動でこれらのファイルを変更し、目的のゲインやタイミングに調整
することは、少なからぬ労力を伴う。そこで SVXテレスコープの読み出しソフトウェアには自動較正機能が用意されている。自動較正機能は以下のコマンドで実行できる。
1 $ ./run [TEST_IDENTIFIER] -e <EVENT_NUM>
<TEST IDENTIFIER>の部分には、1桁の数字を入力し、テストモードの切り替えを行う。数字とテストモードの対応は表 2.5の通りである。
2SVX4の設定用レジスタの一覧表を付録 Bに記した
16
表 2.5: テストモード一覧
引数 テストモード1 マスクスキャン2 ゲイン測定3 スレッショルドスキャン4 PickDelスキャン5 Trigger delay スキャン
自動較正機能を実行すると、各テストモードに応じたtele_soft/data/内のディレクトリにデータが保存される。また、得られた結果をもとにして、設定値の変更を行ったファイルが tele_soft/text/conf_new/以下に config_tele*.datという名前で生成される。変更される設定値の種類は、各テストモードによって異なる。較正の結果を、次回以降のデータ取得に反映させるためには、tele_soft/
text/conf_new/にあるファイルを読み、書き換えられた設定値を確認した上で、tele_soft/text/config_tele*.datへ上書きコピーする必要がある。
17
第3章 統合読み出しシステム
本章では、SVXテレスコープとDUTを結びつける役割を果たす統合読み出しシステムについて解説する。統合読み出しシステムは検出器間のデータの整合性を保つための仕組みであり、Trigger Logic Unitと呼ばれるハードウェアと、SCTJDAQと呼ばれるソフトウェアフレームワークからなる。まず、それぞれの構造について述べた後、使用方法について解説する。
3.1 Trigger Logic Unit
Trigger Logic Unit1は、トリガ信号の管理と分配、タイムスタンプを付与するためのクロック信号の生成といった役割を担う。TLUのブロック図を図 3.1に示す。
図 3.1: TLUのブロック図。
TLUはトリガカウンタからトリガパルスを受け取り、各検出器へ分配する。各検出器からTLUへは、データ取得ができないことを示すBUSY信号が送られており、これがHighとなっている間は、TLUはトリガパルスを受け取っても各検出器へと分配しない。これによって、すべての検出器でデータが取得されることを保証し、データの不整合を防ぐ。また各検出器のデータには、時間情報であるタイムスタンプを付与しており、
データ統合時にそれらの値を比較照合することにより、データ統合の整合性が確1以降、TLUと記す。
18
認可能となっている。タイムスタンプを生成するカウンタのクロック信号も、TLU
が生成して各検出器に分配している。また、タイミング調整に用いるためのDelay
機能や、トリガレートの調整に用いることのできる Pre-scale機能を備えている。TLUの実体は SEABAS1であり、SEABAS1のUser FPGAを書き換えることに
より実装されている。TLUのファームウェアは、配布パッケージのFPGACodes/TLU/
に配置している。
3.2 ソフトウェアフレームワークSCTJDAQ
SCTJDAQは、KEK 安芳次氏の主導によってビーム試験用に開発されたソフトウェアフレームワークであり、独立に動作する各検出器のデータのオンラインでの統合機能を提供する。SCTJDAQは以下のような特徴を持つ。
• マルチプロセス化による各機能のモジュール化、高速化
• ウェブブラウザ上で機能する、Graphical User Interface (GUI) (図 3.2)
• オンライン解析機能による、各種ヒストグラムの生成、GUIでの表示
SCTJDAQのブロック図を図 3.3に示す。各Readerモジュールは、検出器からのデータを読み出し、デコードと整形を行
い、後段へ送る。また、検出器の制御も全て、これらReaderモジュールの担当としている。各ReaderモジュールからのデータはEventMergerモジュールに送られ、そこで統合される。EventMergerモジュールで統合されたデータは、EventDispacher
モジュールへ送られ、EventDispacherモジュールはその先のモジュールへとデータを分配する。EventLoggerモジュールでは、データをバイナリファイルとして保存する機能を担う。EventAnalyzerモジュールは、オンライン解析を行い、様々なヒストグラムを生成できる。EventAnalyzerモジュールは、全てのデータを保存する必要のある Loggerとは違い、オンライン解析により検出器が正しく動作しているかを示せれば良いので、全てのデータを必要とする訳でない。そのため、EventDispatcherモジュールによって、EventAnalyzerモジュールへ分配するデータ量を調整して、全体の事象取得レートへ影響を及ぼさないようにしている。各Readerモジュールからのデータをイベントフラグメントと呼び、SVXReader
においては、そのフォーマットは以下の表 3.1のようになっている。
19
図 3.2: SCTJDAQのGraphical User Interface (GUI)画面。ウェブブラウザを用いて表示している。Start、Stopなどのコマンドや、設定ファイル、ラン番号の設定などが、このGUIを通じて行える。
20
図 3.3: SVXテレスコープとピクセル検出器の読み出しソフトウェアを組み込んだSCTJDAQのブロック図。赤い四角はプロセス、オレンジの矢印はデータの流れを表す。データ送受信のためのプロセス間通信にはPOSIX Message Queueを用いている。
表 3.1: イベントフラグメント (EF)のデータフォーマット
構造区分 値 (変数型) データ概要Header Magic number (unsigned short) フォーマット識別子 (0x6210)
(共通部) Total size (unsigned short) EFの全データ長Event number (unsigned int) イベントナンバーTimestamp (unsigned int) タイムスタンプ
Header Telescope No. (unsigned short) 読み出しテレスコープ数(固有部) Data length (unsigned short[4]) 各テレスコープのデータ長
Data Quality (unsigned char) データクオリティData Type (unsigned char) データタイプ
Data 1 Telescope ID (unsigned short) テレスコープ識別子 (1–4)
(各テレスコープ) Chip ID (unsigned char[4]) チップ識別子 (128–255)
Pipeline ID (unsigned char[4]) パイプライン識別子 (1–46)
Hit Count (unsigned short) 読み出し ch数 (0–512)
Hit ch (unsigned short) チャンネル通しナンバー (0–5112)
Hit ADC (unsigned char) ADC値 (0–255)
· · · · · ·Hit ch (unsigned short) チャンネル通しナンバー (0–511)
Hit ADC (unsigned char) ADC値 (0–255)
· · · · · · · · ·Data n · · · · · ·
21
TLUによって、データの整合性を担保しているが、残念ながらわずかながらのデータ不整合 (検出器間での事象数のずれ)が生じる。そこで、各検出器の事象データを統合するEventMergerモジュールには、事象ずれの補正機能を実装している。ただし、事象ずれの補正機能については、更なるモジュール化を推し進めるため、別の EventMergerCheckモジュールに移行する計画がある (付録??で述べる)。ずれの補正アルゴリズムを図 3.4に示す。EventMergerモジュールにおいて、各検出器のタイムスタンプが 1以上ずれている時、次の事象では、最大のタイムスタンプを持っている検出器の事象データに SCTJDAQ内部で生成したダミーのデータを挿入する。これにより、さらにその次の事象ではタイムスタンプのずれが修復される。タイムスタンプがずれた状態で統合された事象データや、ダミーデータを含んだ事象データは、通常のデータと同様に保存され (フォーマット識別子が 0xFFFF
となる)、失われることはないので、後の解析でずれの頻度などを調べることが可能である。
図 3.4: SCTJDAQのEventMergerモジュールに実装された、事象ずれ補正機能の図解。左から順に 1事象づつ、EventMergerモジュールの動作を描いてある。灰色の矢印の上に書かれた長方形は、各検出器のReaderモジュールが出力する事象データ、その中の数字はタイムスタンプを表す。EventMergerモジュールでは、各検出器のReaderモジュールから送られてきた事象データを統合し、さらに下流へと送信する。タイムスタンプの不一致を検知すると、次の事象でダミーデータを挿入することにより、さらにその次の事象の不一致を解消する。
3.3 使用方法3.3.1 Trigger Logic Unitの接続方法
1. SEABAS1のNIM端子に、NIMケーブルを接続する。各端子の役割は、IN0
がトリガ入力、IN1がBUSY信号入力、OUT0がトリガ出力、OUT1がタイ
2ここではチャンネルナンバーはチップごとではなく、テレスコープごとの通しナンバーとなっている
22
ムスタンプ用クロック信号である。複数台の検出器を接続する場合、IN1へは、各検出器のBUSY信号をFAN INモジュールを用いてORをとったものを、OUTからの信号は、FAN OUTモジュールを用いて分配しなければならない。
2. SEABAS1の電源を接続する。SEABAS1の電源端子は、赤が+5V、3A、青が-5V、0.1A、黒がGNDである。
3. SEABAS1の電源を入れる。
4. SEABAS1上のDIPスイッチ [7:0]の 7bit目をONにするとDelayの幅、タイムスタンプ用クロック信号の周波数を、DIPスイッチによって変更でき、7bit目をOFFにすると、これらの設定を SiTCP経由で行うことができる。DIPスイッチの割り当ては表 3.2を、設定変更用のソフトウェアは配布パッケージの SiTCPTools/tlu_soft/を参照。
表 3.2: TLUのDIPスイッチの割り当て
Bit 機能[3:0] Delayの幅 (n× 10 ns)
[6:4] Pre-scaleの幅0 = 2、7 = 1024
(0,7以外の値) n = 2(n+1)
[7] ONでDIPスイッチで操作可OFFで SiTCP経由で操作可
3.3.2 SCTJDAQの使用方法SCTJDAQは、以下の環境においてその動作が確認されている。
• Scientific Linux 6.7, g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
また、以下のパッケージが導入されている必要がある。
• 解析フレームワーク ROOT
• POSIX IPC (Inter -Process Communication)
• CherryPy
• memcached
23
• lilbmemcached
• memcached-devel
• python-memcached
• python-simplejson
CherryPy以外はパッケージ管理ソフト yumを用いてインストール可能である。配布パッケージの中身は /home/sctjdaq/に配置しなければならない。
1. 配布パッケージのディレクトリへと移動する。1 $ cd /home/sctjdaq
2. コンパイルする。1 $ make
2 $ make install
3. 初期化し、GUIサーバーなどを立ち上げる。1 $ ./init_sctjdaq.sh <CONFIG_FILENAME>
4. Webブラウザを立ち上げ、localhost:8080へアクセスする。
5. ConfigureタブのDAQ Configから、init_sctjdaq.shで指定した confファイルをロードする。
6. GUI Run Controlタブのボタンを setup、configure、startの順に押すことで、データ取得を開始する。この時、Get DAQ Process Statusボタンで、各プロセスの状況を確認できるので、必ず全てのプロセスの statusが希望の状態になってから次のボタンを押す。
7. stopでデータ取得停止、terminateでプロセスを停止することができる。
オンラインモニタ
SCTJDAQに付随する機能であるオンラインモニタ機能の使用方法について述べる。オンラインモニタは SCTJDAQの GUIと同様に、Webブラウザ上から閲覧が可能である。オンラインモニタを用いることで、Correlationなどの様々なプロットを即座に作成、閲覧することが可能となる (図 3.5)。
24
図 3.5: オンラインモニタの画面。
1. オンラインモニタを使用するためには、EventAnalyzerモジュールを使用する必要がある。オンラインモニタはROOTに実装されたTHttpServerクラスを利用している。THttpServerのインスタンス生成は、src/common/EventAnalyzer.cpp中の以下のコードで行っている。
1 THttpServer* serv = new THttpServer("http:8090");
2. Webブラウザより、オンラインモニタ (localhost:8090)へアクセスする。
3. 左側にあるバーに、EventAnalyzerモジュールによって生成されたヒストグラムが表示されており、それをクリックすることで右側のウィンドウにプロットを表示させることができる。
4. Monitoring ボックスにチェックを入れると、ヒストグラムの内容が自動で更新されるようになる。
Monitoring ボックスの右側にある選択ボックスで、右側のウィンドウで表示可能なプロットの数を指定することができる。表示可能なプロットの数は、選択した値の二乗となる。
ログ表示
SCTJDAQの各プロセスは、テキストベースのログを出力する。これらのログをWebブラウザ上で一括して閲覧可能な機能が提供されている。図 3.6は、このログ表示機能の画面一例である。以下にログ表示機能の使用手順を述べる。
1. ログ表示専用のWebサーバーを立ち上げる。
25
図 3.6: ログ表示機能の画面表示。
1 $ cd /home/sctjdaq
2 $ python gui/sctlog.py
2. プロセスの構成を変更した場合、/home/sctjdaq/gui/html/sctgui.htmlを編集する必要がある。
26
第4章 オフライン解析ソフトウェアフレームワークTestBeamAna
4.1 概要TestBeamAnaは、ビーム試験で得られたデータをオフラインで解析して、飛跡
再構成を行い、飛跡通過点とヒット点との距離、残差の分布などを求めることで、評価対象の位置分解能、電荷収集効率などを測定するための、オフライン解析ソフトウェアフレームワークである。TestBeamAnaで行うことのできる解析項目は以下の通りである。各解析項目に用いたアルゴリズムなどの詳細は、文献 [2]を参照のこと。
• SVXテレスコープが出力した生のデータから、較正で得られたゲインの値を用いて、各チャンネル毎にADC値を収集電荷量へと変換し、収集電荷量が予め定めた閾値を超えているチャンネル (ヒットチャンネル)の情報のみを残す (ヒット情報作成)。
• 電荷分割により生じる、隣接した複数のヒットチャンネルの情報をまとめ上げ、荷電粒子のヒット位置や、センサの総収集電荷量を求める (クラスタリング)。
• 各センサのヒット位置の相関分布から、ビーム試験時に粗く測定した各センサ間の相対位置と、実際の相対位置の間のずれを数十 µmのオーダで補正する (プレアラインメント)。
• SVXテレスコープの各センサごとに求めたヒット位置を元に、粒子の飛跡の探索を行う (飛跡探索)。
• 探索された飛跡を再構成し (トラッキング)、飛跡と各センサが交わる点と、センサの信号から求めたヒット点との距離 (残差、Residual)の分布から、各センサ間の相対位置を µm のオーダで求める (アラインメント)。
• アラインメントによって補正を行った後の各センサ間の相対位置を用いて、再びトラッキングを行い、位置分解能や検出効率などを求める。
27
TestBeamAnaでは、これらの工程をそれぞれ単独で実行できるように、工程毎に実行ファイルを分割し、結果を中間ファイルとして逐一出力する設計している。図 4.1に、このTestBeamAnaの動作を示した概略図を示す。
図 4.1: 開発したオフライン解析ソフトウェアTestBeamAnaの概略図。赤く色付けされた四角は各工程ごとに分割した実行ファイル、灰色に色づけされた四角は中間ファイルである。オレンジの矢印は実行する順番を表している。
4.2 使用方法ソフトウェアは配布パッケージの、SVXTools/TestBeamAna ディレクトリ以下
に置かれている。ソースコードは TestBeamAna/src、インクルードファイルはTestBeam/inc、設定ファイルは TestBeamAna/confに置かれている。src、incには、検出器ごとにサブディレクトリが用意されており、各検出器の構造に依存する処理はここに記述されている。これによって、実装とインターフェイスの分離が図られている。ユーザは新たな検出器をTestBeamAnaへと追加する際には、すでに各検出器ごとに用意されているサブディレクトリ中のコードを真似て、最小限のコードを記述するのみで良い。また、未整理であるが解析に役立つROOTマクロが TestBeamAna/macroの下に置かれている。残念ながら、TestBeamAnaを実行できる環境は限られており、正しくコンパイ
ルするためには、ROOT(https://root.cern.ch)がインストールされていること、スマートポインタを使用しているため c++11がコンパイル可能な環境 (gcc
Version4.8以上)であることが求められる。以下に使用手順を述べる。
1. 読み出しソフトウェアをコンパイルする。1 $ cd 作業ディレクトリ/SVXTools/TestBeamAna
28
2 $ make
3 $ make install
2. 以下のコマンドにより、ヘルプを見ることができる。(未実装)
1 $ ./<PROCESS_NAME> [-h|--help]
3. 各プロセスによって生成される中間データは、SVXTools/TestBeamAna/conf/config.jsonの、Pathで指定されたディレクトリ以下に保存される。(デフォルトは SVXTools/TestBeamAna/data)
29
付 録A 試験用システムに残された課題点
試験用システムは全体を通して、インターフェイスなどユーザに不親切である箇所が多い。また、ソフトウェアの設計において見直すべき点も少なくない。本稿執筆現在、改善すべき点を羅列すると、
• SVXテレスコープ
– 現在実装されている SEABAS2上のDIPスイッチによる操作は、ビーム試験においては SEABAS2にアクセスが困難であることを考慮に入れると、廃止して、全てをPCからのコマンド送信で置き換えるべきである。
– SVXテレスコープの構造に依存する部分と、依存しない部分が分離されていない、抽象化の不完全な読み出しソフトウェア。
– 読み出しソフトウェアのオプションの貧弱さと、その内容の見直し。
– 出力ファイル名の統一性のなさ。ビーム試験での使用を考慮に、通常使用においてはラン番号によるファイル名管理を導入すべきである。
– tele_softの自動較正機能における、ファイル出力機構。(あらかじめ各自動較正機能に対応したディレクトリが存在しないと、ファイルが出力されないことや、ファイルの名前が固定であることなど)
– 雑多で、過多なログ出力。重要度に応じて、出力の分類がなされるべき(Info, Warning, Error, Fatal Errorなど)であることと、速度の観点から、通常の使用ではログ出力を最小限にすべきこと。
– 例外処理の欠落。
– 設定値ファイル (tele_soft/text/config_tele*.dat)の可読性、可変性。現在、設定値ファイルは、独自の書式に依っているが、JSON形式など、一貫した形式で扱われることが望ましい。
• ソフトウェアフレームワーク SCTJDAQ
– 現在、EventMergerに含まれているイベントずれ補正機能の分離。 (未使用であるが、EventMergerCheckモジュールが用意されている。)
30
– 2つの系統がある SiTCP関連のライブラリの統一。
– confファイルの命名法の統一と、増えたファイルの整理。
– 開発の進行により、使われなくなった古いファイルの削除、または分別。
• オフライン解析ソフトウェア TestBeamAna
– 飛跡を構成する際に、データ点から除外する検出器を 1つしか選択できないなどの、解析における柔軟性のなさ。
– 読み出しソフトウェアのオプションの貧弱さと、その内容の見直し。
– 付属マクロの充実。
– ヒット位置などの誤差値の計算は、未実装の部分があり、解析としては不完全である。
– 例外処理の実装。
– ログ出力の統一。
– 現時点では、各工程に対応するプロセスは同時に動作させることはできず (シングルスレッド、シングルプロセス)、1つのランに相当するデータについて、ひとつひとつの工程を完了させないと次の工程に進むことができないため、非常に時間のかかる解析となる。マルチスレッドやマルチプロセス対応にすることにより、全ての工程を並行に動作させることができれば、時間短縮が見込まれる。
31
付 録B Configuration
parameters
表 B.1: Configration parameters
名前 Bit No. 説明 値Mask[127:0] 0:127 チャンネル毎にテスト電
荷入射をマスク、またはpreamp ON/OFF (bit130
で機能選択)
0=mask/able, 1=un-
mask/disable
Spare 128 spare
VCAL 129 テスト電荷の入射ソースの選択
0=外部電源、1=内部電源
Disable 130 Mask[127:0]の機能選択 0=mask, 1=preamp
disable
BW[0:3] 131:134 Preampの立ち上がり時間の調整
センサーの負荷静電容量の値によって異なるが、BWの値が大きいほど立ち上がり時間が長くなる
Isel[0:3] 135:138 Preampの入力トランジスタへのバイアス電流
バイアス電流
IWsel[0:1] 139:140 Pipeline に書き込む際のアンプバイアス電流
IRsel[0:1] 141:142 Pipeline から読み出す際のアンプバイアス電流
PickDel[0:5] 143:148 トリガレイテンシ (電荷を読み出すPipelineを L1Aから何 FECLK分前のものにするか)
0–42
PB 149 Pipelineの読み出し順 0=pedestal–signal,
1=signal–pedestal
表は次ページに続く
32
前ページからの続き名前 Bit No. 説明 値ID[6:0] 150:156 Chip IDの割当 0–127
RTPS 157 Real Time Pedestal Sub-
tractionのON/OFF
0=ON, 1=OFF
Rd127 158 127ch目を常に読み出し 0=OFF, 1=ON
Rd63 159 63ch目を常に読み出し 0=OFF, 1=ON
RdAll 160 全 ch を常に読み出し (ON
にすることで、閾値以下のADC値を持つ chは読み出されない)
0=OFF, 1=ON
RdNeigh 161 読み出し chの両隣も強制読み出し
0=OFF, 1=ON
RampPed[0:3] 162:165
RampDir 166 ランプ電圧の変化向きCompPol 167 Comparatorの極性RampRng[0:2] 168:170 ランプ電圧の上昇率の変化Thresh[7:0] 171:178 ADC値の閾値 (グレイコー
ド表記)
0–255
CntrMod[7:0] 179:186 ADC値の最大値の設定 (グレイコード表記)
0–255
FC 187
LC 188
DriverI[2:0] 189:191
これで終わり
33
参考文献
[1] L. Christofek, K. Hanagaki, et al. SVX4 User’s Manual, DØ Note 4252 (2005).
[2] 矢島和希, ATLAS実験アップグレード用シリコン検出器の試験用システムの開発, 修士論文, 大阪大学 (2016),
http://osksn2.hep.sci.osaka-u.ac.jp/theses/master/2015/yajima_
mthesis.pdf.
[3] SiTCP, http://research.kek.jp/people/uchida/technologies/
SiTCP/(2016/4 閲覧)
[4] 東野聡, ATLAS実験アップグレード用シリコン検出器試験のためのテレスコープ検出器開発, 修士論文, 大阪大学 (2013).
[5] 西村龍太郎, ATLAS 飛跡検出器開発用新型ビーム試験 DAQ システムの構築,
修士論文, 京都教育大学 (2014).
34