Uproot

Python을 이용한 ROOT 파일 분석과 행렬 연산을 다룹니다.

Uproot 개요

Uproot은 Python에서 ROOT 파일을 읽고 분석할 수 있는 라이브러리입니다.

  • ROOT C++ 없이 순수 Python으로 작업
  • NumPy, pandas와의 완벽한 호환성
  • 빠른 데이터 처리와 메모리 효율성

기본 사용법

파일 열기와 Tree 접근

import uproot
import numpy as np
import pandas as pd

# ROOT 파일 열기
file = uproot.open("data.root")
tree = file["Events"]

# 브랜치 정보 확인
print(tree.keys())

데이터 읽기

# 단일 브랜치 읽기
muon_pt = tree["Muon_pt"].array()

# 여러 브랜치 동시 읽기  
data = tree.arrays(["Muon_pt", "Muon_eta", "Muon_phi"])

# Pandas DataFrame으로 변환
df = tree.arrays(library="pd")

행렬 연산 활용

벡터화된 계산

  • Four-vector operations: pt, eta, phi, mass 계산
  • Delta R calculations: 입자 간 거리 계산
  • Invariant mass: 다중 입자 시스템 질량

효율적인 필터링

# 조건부 선택
high_pt_muons = data[data["Muon_pt"] > 25]

# 복잡한 조건 조합
selection = (data["Muon_pt"] > 25) & (abs(data["Muon_eta"]) < 2.4)

실제 분석 예제

  • Z → μμ 불변질량 스펙트럼
  • Dimuon 시스템 운동학 연구
  • 효율성 곡선 계산과 시각화