DAQMWコンポーネントの現状

「改良の詳細」に入る前に、J-PARC/MLF用DAQMWコンポーネントの現状について簡単に紹介する。 DAQMWコンポーネントはいくつかのグループに分けられる。

検出器からのデータを読み出すGathererと呼ばれるコンポーネントグループがある。 例えば、GathererPsdコンポーネントはPSDからのデータを読み出す。

さらに、GatenetコンポーネントやTrignetMlfコンポーネントなどはタイミングやデバイス類の情報を扱うDAQMWコンポーネントである。

また、Gathererからのデータを後段の複数のDAQMWコンポーネントに送るDispatcherMlfコンポーネントがある。

後段のDAQMWコンポーネントには、データをファイルに記録するLoggerMlfコンポーネントやKickerMlf(以前はKicker)コンポーネントなどがある。KickerMlfコンポーネントは、LoggerMlfコンポーネントがイベントカウント情報をログ情報とする代わりに、キッカーカウント情報をログ情報とする。 オンラインデータ解析を行うDAQMWコンポーネントやT0インデックスを作成しファイルに記録するT0EventLoggerMlfコンポーネントなどもこのグループに入る。

典型的な構成例をあげてみる。 下記の例は、GathererPsdからDispatcherMlfへデータを送り、さらにDispatcherMlfからLoggerMlfとT0EventLoggerMlfにデータを送り、データの記録とT0インデックスの作成・記録を行う。

GathererPsd --> DisptacherMlf  --> LoggerMlf, T0EventLoggerMlf

また、新しく作られた、nGEMからデータを読み出すGathererPushコンポーネントやデータをRedisサーバに送る(publishする)PublisherMlfコンポーネントの例では、下記のようになる。 この例では、DispatcherMlfからのデータはLoggerMlfコンポーネントによりファイルに記録され、PublisherMlfコンポーネントによりRedisサーバに送られる。Redisサーバについては「改良の詳細」で触れる。

GathererPush --> DisptacherMlf --> LoggerMlf, PublisherMlf

PublisherMlfコンポーネントにより、以前はデータファイルから利用されてきたオンライン解析がRedisサーバから利用できるようになった。

また、nGEMからのデータも後段のDAQMWコンポーネントにデータを送ることができるようになった。以前のNgemMlfコンポーネントは直接データをファイルに書いていて、下流にデータを流していなかった。

さらに、以前より問題として指摘されていた日付問題(詳しくは「改良の詳細」で触れる)は、DAQ-Middlewareの本体とdaqmw.mlfパッケージの改良により解決された。

DAQ終了アルゴリズムの改良では、Gathererのデータ収集終了のタイミングが、後段のDAQMWコンポーネントに正確にわかるようになった。

また、LoggerMlfとKickerMlfの無限ループアルゴリズムが改良され、DAQMWコンポーネント群を管理するDaqOpertorはログ情報を的確に取得できるようになり、それらのコンポーネントはEnd情報をすぐに取得できるようになった。