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