forked from arizzi/nail
/
optimized.C
52 lines (52 loc) · 4.02 KB
/
optimized.C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//gSystem->Load("libGenVector.so")
ROOT::RDataFrame rdf("Events","/dev/shm/VBF_HToMuMu_nano2016.root");
auto toplevel =
rdf.Define("muPtCut","25")
.Define("muIdCut","3")
.Define("muIsoCut","0.13")
.Define("Muon_id","Muon_tightId*3+Muon_mediumId")
.Define("Muon_iso","Muon_miniPFRelIso_all")
.Define("SelectedMuon","Muon_iso < muIsoCut && Muon_id > muIdCut && Muon_pt > muPtCut")
.Define("SelectedMuon_charge","Muon_charge[SelectedMuon]")
.Define("nSelectedMuon","Sum(SelectedMuon)")
.Define("twoOppositeSignMuons","nSelectedMuon>=2 && SelectedMuon_charge[0]*SelectedMuon_charge[1] < 0")
.Define("jetPtCut","25")
.Define("SelectedJet","Jet_pt > jetPtCut && (Jet_muonIdx1 == -1 || Take(Muon_iso,Jet_muonIdx1) > muIsoCut || Take(Muon_id,Jet_muonIdx1) > 0)")
.Define("nSelectedJet","Sum(SelectedJet)")
.Define("twoJets","nSelectedJet>=2")
.Define("SelectedMuon__syst__MuScaleUp"," Muon_iso < muIsoCut && Muon_id > muIdCut && Muon_pt > muPtCut ")
.Define("SelectedMuon_charge__syst__MuScaleUp"," Muon_charge[SelectedMuon__syst__MuScaleUp] ")
.Define("nSelectedMuon__syst__MuScaleUp"," Sum(SelectedMuon__syst__MuScaleUp) ")
.Define("twoOppositeSignMuons__syst__MuScaleUp"," nSelectedMuon__syst__MuScaleUp>=2 && SelectedMuon_charge__syst__MuScaleUp[0]*SelectedMuon_charge__syst__MuScaleUp[1] < 0 ")
.Filter("(twoOppositeSignMuons)||(twoOppositeSignMuons&&twoJets)||(twoOppositeSignMuons__syst__MuScaleUp&&twoJets)")
.Define("SelectedMuon_eta","Muon_eta[SelectedMuon]")
.Define("SelectedMuon_mass","Muon_mass[SelectedMuon]")
.Define("SelectedMuon_phi","Muon_phi[SelectedMuon]")
.Define("SelectedMuon_pt","Muon_pt[SelectedMuon]")
.Define("Higgs","ROOT::Math::PtEtaPhiMVector(SelectedMuon_pt[0] , SelectedMuon_eta[0], SelectedMuon_phi[0], SelectedMuon_mass[0])+ROOT::Math::PtEtaPhiMVector(SelectedMuon_pt[1] , SelectedMuon_eta[1], SelectedMuon_phi[1], SelectedMuon_mass[1])")
.Define("SelectedJet_eta","Jet_eta[SelectedJet]")
.Define("SelectedJet_mass","Jet_mass[SelectedJet]")
.Define("SelectedJet_phi","Jet_phi[SelectedJet]")
.Define("SelectedJet_pt","Jet_pt[SelectedJet]")
.Define("Qjet1","ROOT::Math::PtEtaPhiMVector(SelectedJet_pt[0] , SelectedJet_eta[0], SelectedJet_phi[0], SelectedJet_mass[0])")
.Define("Qjet2","ROOT::Math::PtEtaPhiMVector(SelectedJet_pt[1] , SelectedJet_eta[1], SelectedJet_phi[1], SelectedJet_mass[1])")
.Define("qq","Qjet1+Qjet2")
.Define("Mqq","qq.M()")
.Define("DeltaRelQQ","(Qjet1+Qjet2).Pt()/( Qjet1.Pt()+Qjet2.Pt())")
.Define("Rpt","(Qjet1+Qjet2+ Higgs).Pt()/( Qjet1.Pt()+Qjet2.Pt() + Higgs.Pt())")
.Define("Higgs_pt","Higgs.Pt()")
.Define("Higgs_m","Higgs.M()")
.Define("SBClassifier","Higgs_pt+Higgs_m+Mqq+Rpt+DeltaRelQQ")
.Define("SelectedMuon_eta__syst__MuScaleUp"," Muon_eta[SelectedMuon__syst__MuScaleUp] ")
.Define("SelectedMuon_mass__syst__MuScaleUp"," Muon_mass[SelectedMuon__syst__MuScaleUp] ")
.Define("SelectedMuon_phi__syst__MuScaleUp"," Muon_phi[SelectedMuon__syst__MuScaleUp] ")
.Define("SelectedMuon_pt__syst__MuScaleUp"," Muon_pt[SelectedMuon__syst__MuScaleUp] ")
.Define("Higgs__syst__MuScaleUp"," ROOT::Math::PtEtaPhiMVector(SelectedMuon_pt__syst__MuScaleUp[0] , SelectedMuon_eta__syst__MuScaleUp[0], SelectedMuon_phi__syst__MuScaleUp[0], SelectedMuon_mass__syst__MuScaleUp[0])+ROOT::Math::PtEtaPhiMVector(SelectedMuon_pt__syst__MuScaleUp[1] , SelectedMuon_eta__syst__MuScaleUp[1], SelectedMuon_phi__syst__MuScaleUp[1], SelectedMuon_mass__syst__MuScaleUp[1]) ")
.Define("Rpt__syst__MuScaleUp"," (Qjet1+Qjet2+ Higgs__syst__MuScaleUp).Pt()/( Qjet1.Pt()+Qjet2.Pt() + Higgs__syst__MuScaleUp.Pt()) ")
.Define("Higgs_pt__syst__MuScaleUp"," Higgs__syst__MuScaleUp.Pt() ")
.Define("Higgs_m__syst__MuScaleUp"," Higgs__syst__MuScaleUp.M() ")
.Define("SBClassifier__syst__MuScaleUp"," Higgs_pt__syst__MuScaleUp+Higgs_m__syst__MuScaleUp+Mqq+Rpt__syst__MuScaleUp+DeltaRelQQ ")
;
auto Higgs_m=toplevel.Filter("twoOppositeSignMuons").Histo1D("Higgs_m");
auto SBClassifier=toplevel.Filter("twoOppositeSignMuons&&twoJets").Histo1D("SBClassifier");
auto SBClassifier__syst__MuScaleUp=toplevel.Filter("twoOppositeSignMuons__syst__MuScaleUp&&twoJets").Histo1D("SBClassifier__syst__MuScaleUp");