List of the extended RUS branches:
Event:
- eventID
True Track:
- charge
- momentum (px, py, pz)
- vertex (vx, vy, vz)
- station1 (x_st1, y_st1, z_st1, px_st1, py_st1, pz_st1)
- station3 (x_st3, y_st3, z_st3, px_st3, py_st3, pz_st3)
Hit:
- hitID
- hit-trackID
- processID
- detectorID
- elementID
- driftDistance
- tdcTime
Reco-Level Variables
- rec_charge: Charge of the reconstructed particle
- rec_vx: X-coordinate of the reconstructed vertex
- rec_vy: Y-coordinate of the reconstructed vertex
- rec_vz: Z-coordinate of the reconstructed vertex
- rec_px: X-component of the reconstructed momentum
- rec_py: Y-component of the reconstructed momentum
- rec_pz: Z-component of the reconstructed momentum
- rec_x_st1: X-coordinate at station 1
- rec_y_st1: Y-coordinate at station 1
- rec_z_st1: Z-coordinate at station 1
- rec_px_st1: X-momentum at station 1
- rec_py_st1: Y-momentum at station 1
- rec_pz_st1: Z-momentum at station 1
- rec_x_st3: X-coordinate at station 3
- rec_y_st3: Y-coordinate at station 3
- rec_z_st3: Z-coordinate at station 3
- rec_px_st3: X-momentum at station 3
- rec_py_st3: Y-momentum at station 3
- rec_pz_st3: Z-momentum at station 3
- rec_dimu_vx: X-coordinate of the reconstructed dimuon vertex
- rec_dimu_vy: Y-coordinate of the reconstructed dimuon vertex
- rec_dimu_vz: Z-coordinate of the reconstructed dimuon vertex
- rec_dimu_px: X-component of the reconstructed dimuon momentum
- rec_dimu_py: Y-component of the reconstructed dimuon momentum
- rec_dimu_pz: Z-component of the reconstructed dimuon momentum
- rec_dimu_mass: Mass of the reconstructed dimuon system
- rec_dimu_xf: Xf for the reconstructed dimuon
- rec_dimu_x1: X1 for the reconstructed dimuon
- rec_dimu_x2: X2 for the reconstructed dimuon
Source Flag | Description |
---|---|
1 | Target |
2 | Dump |
3 | Gap |
Process | Description |
---|---|
11 | DY (mu⁺) |
12 | J/ψ (mu⁺) |
13 | ψ' (mu⁺) |
14 | Single (mu⁺) |
21 | DY (mu⁻) |
22 | J/ψ (mu⁻) |
23 | ψ' (mu⁻) |
24 | Single (mu⁻) |
An example, how to access the event, track and hit level information as well how to decode the processID to get the sourceFlag and
import ROOT def decode_source_flag(encoded): return (encoded >> 5) & 0x3 # Extract bits 5-6 def decode_process_id(encoded): return encoded & 0x1F # Extract lower 5 bits file = ROOT.TFile("RUS.root") tree = file.Get("tree") for event in tree: print("EventID:", event.eventID) for i in range(len(event.gpz)): #print track level information print("true pz of the track: ", event.gpz[i] ) print("charge of the track: ", event.gCharge[i] ) for j in range(len(event.hit_trackID)): #check for the track id. When the track id matches with the track id at the hit level, we access the hit information. if event.hit_trackID[j] != trackID: continue hit_id = event.hitID[j] hit_trackid = event.hit_trackID[j] encoded_value = event.processID[j] process_id = decode_process_id(encoded_value) #decoding the process_id source_flag = decode_source_flag(encoded_value) #decoding the source_flag print("hitID:", hit_id) print("hit_trackID:", hit_trackid) print("Encoded value:", encoded_value) print("Decoded Process ID:", process_id) print("Decoded Source Flag:", source_flag)