import pandas as pd
import servicex as sx
import awkward as ak
from func_adl_servicex import ServiceXSourceUpROOT
import matplotlib.pyplot as plt
plt.rcParams['figure.dpi'] = 200 # make figures bigger and more readable
dataset_name = ["root://eospublic.cern.ch//eos/root-eos/benchmark/Run2012B_SingleMu.root"]
sx_dataset = sx.ServiceXDataset(dataset_name, "uproot")
ds = ServiceXSourceUpROOT(sx_dataset, "Events")
best_trijet_pt_6 = ds.Where(lambda event: event.nJet >= 3)\
.Select(lambda event: {'pt': event.Jet_pt,
'eta': event.Jet_eta,
'phi': event.Jet_phi,
'mass': event.Jet_mass}.Zip().ToFourMomenta()
.Choose(3)
.Select(lambda triplet: triplet[0] + triplet[1] + triplet[2])
.OrderBy(lambda trijet: abs(trijet.m - 172.5))
.First()
.Select(lambda best_trijet: best_trijet.pt)).AsAwkwardArray().value()
[root://eospublic.ce...: 0%| | 0/9000000000.0 [00:00]
[root://eospublic.ce... Downloaded: 0%| | 0/9000000000.0 [00:00]
best_trijet_pt_6
<Array [26, 33, 21.2, ... 21.5, 29.7, 36.5] type='23752864 * float32'>
plt.hist(best_trijet_pt_6, bins=100, range=(0, 100))
plt.xlabel(r'Trijet $p_\mathrm{T}$ [GeV]')
plt.ylabel('Events')
plt.show()