木星の惑星名、どれもこれもゼウス(ジュピター)が手をつけた女性(+美少年)ばっかり。
「JUPITER」出力データ解析(event再構成)用プログラムの設計
木星がなんとか98周までは回ってくれるようになったので、解析プログラムに着手した。ありがたいことに、木星の衛星は1999年にみつかった(ただし当時は小惑星だと思われていた)S/1999 J1を含め17個もある。解析プログラムの名前は、是非この衛星の名前を冠したいではないか!(と一際情熱を燃やしたのは私よりもむしろ藤井氏であった。)
早速、木星の惑星名をwebで調べる。内側から順に、Metis、Adrastea、Amalthea、Thebe、Io、Europa、Ganymede、Callisto、Leda、Himalia、Lysithea、Elara、Ananke、Carme、Pasiphae、Sinope。全てギリシャ神話からとられているらしい。17番目はまだ名前がついていないのか?このうち、ジュピターの奥さん&恋人が14名だ(多分)というのだから、ローマの神々の王はたいしたお方である。我々のJUPITERもぜひあやかって、人々に愛されるプログラムになって欲しいものだ(ローマ神の王は、ほとんど押し掛け婚だったような気もするが…)
(1)IO(イオ)= Input / Output module set
JUPITERは基本的にGeant4ベースで動く検出器内での粒子反応シミュレータなので、Monte-Carlo Truthを吐き出すところまででお役目終了としたい。吐き出された Monte-Carlo Truthを読み込み、解析用FrameWorkであるROOTベースのJSFで動かすためには、両者をつなぐInput/Output moduleが必要である。I/Oとくればイオがあるじゃん!と1つ目は安直に決まる。
さて、IOというからには、Input/Outputをここで全て管理したい。現在思い付くI/Oは次のケース。
- Geant4 flat ascii file outputからROOT Objectに変換
- Geant4 Object outputからROOT Objectに変換
- 必要に応じて解析の途中結果を書き出し、再び読み込む
- Event reconstructionの部分から物理解析部分への橋渡し
とりあえず、手始めに1.のFlat ascii file→ROOT Objectの部分を作り始める。
(2) METIS(メティス)= Monte-Carlo Exact hits To Intermediate Simulated outputs
こちらは、Monte-Carlo Exact Hitsをもとに、本物のデータのような顔つきをしたsimulation dataを作るためのmodule群である。(別案に、CARME = Converters to Analysis and Reconstruction input data from Monte-Carlo Exact hitsというのもあったのだが、とても覚える自信がなかったのでMETISの方に決定。)
さて、本物のevent再構成で行われる手続きを全てsimulateするとすると、RawDataから物理解析に至るまでに、次の5つの過程をふまなければならない。
- RawDataをUnpackする (→Unpacker)
- UnpackされたFADCデータはpulseがいくつもつらなった形をしているので、それを個々のpulseに切り分ける(これをclusteringと呼ぶ)。この時点で、個々のclusterには、距離の情報はない。 (→ClusterMaker)
- clusteringされたデータを、x-t関数を用いてdrift距離に変換。変換後のデータをHitと呼ぶ。 (→HitMaker)
- Hitの情報を用い、どのHitがどのTrackに属するのかを探し、それぞれのTrackに属するHitの集合を作る(これをTrack Findingという)。
- Trackごとに分けられたHitの集合を用い、FitしてTrack Parameterを計算する(これをTrack Fittingという)。 (→4、5をあわせてTrackMaker)
最終的には、5番をのぞく1〜4の全ての手続きに対し、対応するsimulatorが存在する、という形を目指す。一方で、これらの手続きの1と3、3と4などのランダムな組み合わせでも走るsimulatorであることが望ましい。よって、METISの名前の通り、どの段階のIntermediate Simulated Outputも本物のデータと同じformatにすることとし、基底クラスには本物のEvent再構成プログラムに用いるものを使う設計にした。これにより、Simulated Outputの形は、本物の解析の場合のDataに、Simulation特有のデータ(たとえばExact Hitへのポインタなど)が付加されるされる形になる。
以下に、IOとMETISの関係概略図を示す。