= ATLAS Run-3データの解析 演習 = <> == 目標 == ATLASデータを使った物理解析を自分で進めるには、解析の流れ、ソフトウェアの使い方、データの利用法に習熟する必要がある。 素粒子の散乱実験では、検出器の個々の読み出しチャンネルで検出された信号(生データ)から、それらを組み合わせて散乱後に発生した粒子の種類やエネルギー・運動量を再構成する。 大きく分けると以下のようなステップで、生データからより高次の物理量を再構成していく。 * 検出器の生データのクラスター化やノイズの除去 * クラスターから荷電粒子の飛跡の再構成、ジェットの再構成 * 飛跡とジェットの情報をもとに粒子識別 物理解析では、粒子識別されたデータから出発することになる。 この演習では、補正した後のデータで、事象選別コードの開発、様々な分布の作成、データとシミュレーションの比較をできるようになることを目標とする。 これは本格的な解析を行うための準備であり、データとシミュレーションの比較からバックグラウンドの大きさや信号の強さを評価して、 事象選別法の最適化やシミュレーションによるモデリングの検証等を進めていくことになる。 == 演習:10ステップ == 以下の内容を1週間に1ステップずつ進めることで、約2ヶ月で解析を始められるようになるはずである。 この演習の目標であるデータとシミュレーションの比較をできるまで、という意味ではこの演習は以下のステップ8までで終わりである。 ステップ9, 10は解析の終盤にやることなので、最初はスキップしてよい。 より詳しい手順は、[[https://atlassoftwaredocs.web.cern.ch/ABtutorial/|ABTutorial]]を参考にするとよい。 === ステップ1: 解析環境の準備 === ABTutorialのはじめから[[https://atlassoftwaredocs.web.cern.ch/ABtutorial/alg_basic_printout/|アルゴリズムを書いて走らせる]]まで。 知っておくべきことは、 * gitの使い方 * ATLASソフトウェア環境のセットアップ * !AnalysisBaseの使い方(パッケージの作成、アルゴリズムのコード、実行の仕方) * Algorithmクラスの作成とEventLoopを実行するためのスクリプト(ATestRun_eljob.py)の作成 {{{ setupATLAS cd build asetup AnalysisBase,22.2.76,here cmake ../source make source ./x86*/setup.sh }}} === ステップ2: 事象ごとのデータへのアクセス === xAODでファイルを読み込んで、事象中の各オブジェクト(光子、電子、ミューオン、タウ、ジェット、bジェット)の数の分布を作る。 xAODに含まれるコンテナのキーを調べるには、 {{{ checkxAOD.py }}} 解析では、特定の終状態に着目しているので、まずは終状態にどのような種類の粒子が存在して、それらがどのようなエネルギーや角度分布を取っているかを把握することが基本となる。粒子の種類ごとに、その数、pt, eta, phi等の分布を調べてみる。 xAODでは粒子識別がされているといっても、それは検出器の信号に現れる特徴から何らかの条件で選んできたものである。したがって、本物の粒子からの信号を見落としてしまうことや、別の粒子からの信号やノイズによる影響を誤って検出してしまうこともある。粒子同定の詳細な解析はCombined performanceグループで行われているが、物理解析でも最低限、各粒子を同定する上での特徴的な変数の分布は確認しておくべきである。 電子の場合、電磁シャワーを特徴付ける変数のいくつかについて分布を作る。また、粒子識別の条件が緩い場合からきつくした場合(loose, medium, tight等)でこれらの変数がどのように変わるか確認する。 xAODの各粒子の属性!AuxElementにアクセスする。 === ステップ3:データセットの探し方、グリッドの使い方(rucio, pathena, prun) === データセットの探し方: 物理プロセスとreconstruction (processing) tagを基に調べる。 {{{ lsetup rucio voms-proxy-init -voms atlas -valid 72:00:00 }}} rucioでデータセットのカタログにいろいろと問い合わせる。 {{{ rucio list-dids 'mc16_13TeV.*.DAOD_EXOT8.*r10201_r10210_p4004' rucio list-files mc16_13TeV.364116.Sherpa_221_NNPDF30NNLO_Zee_MAXHTPTV0_70_BFilter.deriv.DAOD_EXOT8.e5299_e5984_s3126_r10724_r10726_p4466 rucio get mc16_13TeV.364116.Sherpa_221_NNPDF30NNLO_Zee_MAXHTPTV0_70_BFilter.deriv.DAOD_EXOT8.e5299_e5984_s3126_r10724_r10726_p4466 }}} グリッドにジョブを投げる。事象選別をする。 === ステップ4:事象選別のためのプログラム作成 === * Z+(>=2)jets事象を選別する。選別条件に用いた変数についてそれぞれ分布を作る。 * カットフローの作成 * 各オブジェクトの選別([[https://twiki.cern.ch/twiki/bin/view/AtlasProtected/AtlasPhysicsRun3Planning2022|CP recommendations]]) * Electron (kinematctics, Tight etc.) * Muon (kinematctics, Tight etc.) * Jet (kinematctics, JVT, etc.) * BTagging (pb, pc, pu, tagger probability) * MissingET (...) * (Photon, (kinematctics, Tight etc.)) * (!TauJet (kinematctics, Tight etc.?)) 課題 * サンプルに含まれる全てのオブジェクトと、選別条件を満たすオブジェクトで性質の違いを確認する === ステップ5:複数のパッケージの管理 === 解析をしていくにつれて、いろいろな変数の分布を作ったり、様々な条件を課して分布を作ったりする必要が出てくる。事象選別の方法をいろいろと変更して分布を確認したくなる。これらの変更を簡単に行えるようにするには、プログラムをそれぞれの機能に分けて管理するとコードの管理が楽になる。ATLASの解析環境でもコードを複数のパッケージに分けることが可能である。個人の好みや必要に応じてパッケージを作ることができるが、まずは以下の用途にパッケージを作る。 * オブジェクト選別 * ヒストグラムの管理 === ステップ6:データの補正 === === ステップ7:メタデータの探し方(AMI, COMA, LumiCalc) === === ステップ8:データとシミュレーションの比較 === === ステップ9:シミュレーション・モデルのデータへのフィット(統計誤差のみ) === === ステップ10:系統誤差による影響の評価 === == 発展 == 具体的な解析テーマを決めて解析を進める。 == General Recomendation ==