物理のベンチ by mitta

学んだことを発信します。備忘録も書きます。間違いがあればコメントください。

【備忘録】pythonで実験データを細かく解析するために、各種パラメータを辞書式で作る方法

はじめに

実験中検出器を様々なパラメータでデータを取ったはいいが、最終的にまとめるときには実験時のパラメータを代入する作業は辞書式で書かないとやってられなくなった。
某chが10個しかない検出器はごり押しで130runデータを普通のlistで書いていたが、某200chある検出器はそれでは厳しかったので今まで避けていた辞書式のlistで管理することを決意した。
学びの度に追記して記事の精度を上げたい。

使いどころ

  • 手動で変えて取ったデータのパラメータを管理したいとき(HVの値、ビーム照射座標など)
  • event loopによって1 eventごとにデータを見て解析をしたいとき

⇒データ解析時にdictを追加することで多段階解析も可能

本文

入力

hv_dict = {
    '4418':{"1u":1900, "1d":1900, "2u":0, "2d":0}
    '4434':{"1u":1900, "1d":2000, "2u-o":1900, "2d":2000},
    '4445':{"1u":2100, "1d":2100, "2u-o":2100, "2d":2100}
} #定義

print(hv_dict["4418"])
print(hv_dict["4418"]["1u"])


hv_dict['4418']["2u-4"] = 2000 #追加
print(hv_dict["4418"])

出力

{'1u': 1900, '1d': 1900, '2u': 0, '2d': 0}
1900

{'1u': 1900, '1d': 1900, '2u-o': 1900, '2d': 0, '2u-4': 2000}

注釈

  1. 「:」の前部分がkeyで後ろ部分がvalueなので、前部分にパラメータの名前を書き、後ろ部分にパラメータの値を書く。
  2. 参照するときは外側のkeyから書く(2次元配列)