You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Next »
- 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)
- hitID
- hit-trackID
- processID
- detectorID
- elementID
- driftDistance
- tdcTime
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)