28path =
"root://eospublic.cern.ch//eos/opendata/atlas/OutreachDatasets/2020-01-22"
36for p
in [
"ggH",
"VBF"]:
37 df[p] = df[p].Define(
"weight",
38 "scaleFactor_PHOTON * scaleFactor_PhotonTRIGGER * scaleFactor_PILEUP * mcWeight");
39df[
"data"] = df[
"data"].Define(
"weight",
"1.0")
44 df[p] = df[p].Filter(
"trigP")
47 df[p] = df[p].Define(
"goodphotons",
"photon_isTightID && (photon_pt > 25000) && (abs(photon_eta) < 2.37) && ((abs(photon_eta) < 1.37) || (abs(photon_eta) > 1.52))")\
48 .Filter(
"Sum(goodphotons) == 2")
51 df[p] = df[p].Filter(
"Sum(photon_ptcone30[goodphotons] / photon_pt[goodphotons] < 0.065) == 2")\
52 .Filter(
"Sum(photon_etcone20[goodphotons] / photon_pt[goodphotons] < 0.065) == 2")
58float ComputeInvariantMass(RVecF pt, RVecF eta, RVecF phi, RVecF e) {
59 ROOT::Math::PtEtaPhiEVector p1(pt[0], eta[0], phi[0], e[0]);
60 ROOT::Math::PtEtaPhiEVector p2(pt[1], eta[1], phi[1], e[1]);
61 return (p1 + p2).mass() / 1000.0;
69 df[p] = df[p].Define(
"m_yy",
"ComputeInvariantMass(photon_pt[goodphotons], photon_eta[goodphotons], photon_phi[goodphotons], photon_E[goodphotons])")
72 df[p] = df[p].Filter(
"photon_pt[goodphotons][0] / 1000.0 / m_yy > 0.35")\
73 .Filter(
"photon_pt[goodphotons][1] / 1000.0 / m_yy > 0.25")\
74 .Filter(
"m_yy > 105 && m_yy < 160")
77 hists[p] = df[p].Histo1D(
78 ROOT.RDF.TH1DModel(p,
"Diphoton invariant mass; m_{#gamma#gamma} [GeV];Events", 30, 105, 160),
89ggh = hists[
"ggH"].GetValue()
90vbf = hists[
"VBF"].GetValue()
91data = hists[
"data"].GetValue()
101upper_pad =
ROOT.TPad(
"upper_pad",
"", 0, 0.35, 1, 1)
102lower_pad =
ROOT.TPad(
"lower_pad",
"", 0, 0, 1, 0.35)
103for p
in [upper_pad, lower_pad]:
116fit =
ROOT.TF1(
"fit",
"([0]+[1]*x+[2]*x^2+[3]*x^3)+[4]*exp(-0.5*((x-[5])/[6])^2)", 105, 160)
143bkg =
ROOT.TF1(
"bkg",
"([0]+[1]*x+[2]*x^2+[3]*x^3)", 105, 160)
155vbf.Scale(lumi * 0.008518764 / 3441426.13711)
163ratiobkg =
ROOT.TH1I(
"zero",
"", 100, 105, 160)
182ratiosig =
ROOT.TH1F(
"ratiosig",
"ratiosig", 5500, 105, 160)
222c.SaveAs(
"df104_HiggsToTwoPhotons.png")
223print(
"Saved figure to df104_HiggsToTwoPhotons.png")
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
A struct which stores the parameters of a TH1D.