27ROOT.ROOT.EnableImplicitMT()
30files = ROOT.std.vector(
"string")(2)
31files[0] =
"root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/Run2012B_DoubleMuParked.root"
32files[1] =
"root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/Run2012C_DoubleMuParked.root"
33df = ROOT.ROOT.RDataFrame(
"Events", files)
36df_2mu = df.Filter(
"nMuon == 2",
"Events with exactly two muons")
37df_os = df_2mu.Filter(
"Muon_charge[0] != Muon_charge[1]",
"Muons with opposite charge")
40df_mass = df_os.Define(
"Dimuon_mass",
"InvariantMass(Muon_pt, Muon_eta, Muon_phi, Muon_mass)")
43h = df_mass.Histo1D((
"Dimuon_mass",
"Dimuon_mass", 30000, 0.25, 300),
"Dimuon_mass")
46report = df_mass.Report()
49ROOT.gStyle.SetOptStat(0); ROOT.gStyle.SetTextFont(42)
50c = ROOT.TCanvas(
"c",
"", 800, 700)
51c.SetLogx(); c.SetLogy()
54h.GetXaxis().SetTitle(
"m_{#mu#mu} (GeV)"); h.GetXaxis().SetTitleSize(0.04)
55h.GetYaxis().SetTitle(
"N_{Events}"); h.GetYaxis().SetTitleSize(0.04)
58label = ROOT.TLatex(); label.SetNDC(
True)
59label.DrawLatex(0.175, 0.740,
"#eta")
60label.DrawLatex(0.205, 0.775,
"#rho,#omega")
61label.DrawLatex(0.270, 0.740,
"#phi")
62label.DrawLatex(0.400, 0.800,
"J/#psi")
63label.DrawLatex(0.415, 0.670,
"#psi'")
64label.DrawLatex(0.485, 0.700,
"Y(1,2,3S)")
65label.DrawLatex(0.755, 0.680,
"Z")
66label.SetTextSize(0.040); label.DrawLatex(0.100, 0.920,
"#bf{CMS Open Data}")
67label.SetTextSize(0.030); label.DrawLatex(0.630, 0.920,
"#sqrt{s} = 8 TeV, L_{int} = 11.6 fb^{-1}")
69c.SaveAs(
"dimuon_spectrum.pdf")