Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions ttbb/ana.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
nuPt = array( 'd', [0] )
nuEta = array( 'd', [0] )
nuPhi = array( 'd', [0] )
nuMass = array( 'd', [0] )
nuM = array( 'd', [0] )
lbPt = array( 'd', [0] )
lbEta = array( 'd', [0] )
lbPhi = array( 'd', [0] )
Expand Down Expand Up @@ -169,7 +169,7 @@
t.Branch('nuPt', nuPt, 'nuPt/D')
t.Branch('nuEta', nuEta, 'nuEta/D')
t.Branch('nuPhi', nuPhi, 'nuPhi/D')
t.Branch('nuMass', nuMass, 'nuMass/D')
t.Branch('nuM', nuM, 'nuM/D')
t.Branch('lbPt', lbPt, 'lbPt/D')
t.Branch('lbEta', lbEta, 'lbEta/D')
t.Branch('lbPhi', lbPhi, 'lbPhi/D')
Expand Down Expand Up @@ -266,13 +266,13 @@
for i in xrange(entries):
chain.GetEntry(i)

eventweight = chain.PUWeight[0]*chain.genweight*chain.lepton_SF[0]*chain.jet_SF_CSV[0]
eventweight = chain.PUWeight[0]*chain.genweight*chain.lepton_SF[0]*chain.jet_SF_deepCSV_30[0]

MET_px = chain.MET * math.cos( chain.MET_phi )
MET_py = chain.MET * math.sin( chain.MET_phi )
nu = TLorentzVector( MET_px, MET_py, 0, chain.MET)
lep = TLorentzVector()
lep.SetPtEtaPhiE( chain.lepton_pT, chain.lepton_eta, chain.lepton_phi, chain.lepton_E)
lep.SetPtEtaPhiE( chain.lepton_pt, chain.lepton_eta, chain.lepton_phi, chain.lepton_e)
passmu = False
passel = False
passmu = chain.channel == 0 and lep.Pt() > 30 and abs(lep.Eta()) < 2.1
Expand All @@ -290,9 +290,9 @@

njets = 0
nbjets = 0
for j in range( len(chain.jet_pT) ):
for j in range( len(chain.jet_pt) ):
jet = TLorentzVector()
jet.SetPtEtaPhiE(chain.jet_pT[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_E[j])
jet.SetPtEtaPhiE(chain.jet_pt[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_e[j])
jet *= chain.jet_JER_Nom[j]
if jet.Pt() < 30 or abs(jet.Eta()) > 2.4 :
continue
Expand All @@ -308,9 +308,9 @@
if nbjets < 3:
continue

for i in range( len(chain.jet_pT) ):
for i in range( len(chain.jet_pt) ):
tmp = TLorentzVector()
tmp.SetPtEtaPhiE( chain.jet_pT[i], chain.jet_eta[i], chain.jet_phi[i], chain.jet_E[i] )
tmp.SetPtEtaPhiE( chain.jet_pt[i], chain.jet_eta[i], chain.jet_phi[i], chain.jet_e[i] )
#when finding matched jet, not use pt and eta
#tmp *= chain.jet_JER_Nom[i]
#if tmp.Pt() > 20 and abs(tmp.Eta()) < 2.4:
Expand All @@ -326,29 +326,29 @@
test_data = []
sel = []
indexSmalldR = []
for j in range( len(chain.jet_pT) - 1):
for k in range( j+1, len(chain.jet_pT) ):
for j in range( len(chain.jet_pt) - 1):
for k in range( j+1, len(chain.jet_pt) ):
jet1 = TLorentzVector()
jet1.SetPtEtaPhiE( chain.jet_pT[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_E[j] )
jet1.SetPtEtaPhiE( chain.jet_pt[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_e[j] )
jet1 *= chain.jet_JER_Nom[j]
jet2 = TLorentzVector()
jet2.SetPtEtaPhiE( chain.jet_pT[k], chain.jet_eta[k], chain.jet_phi[k], chain.jet_E[k] )
jet2.SetPtEtaPhiE( chain.jet_pt[k], chain.jet_eta[k], chain.jet_phi[k], chain.jet_e[k] )
jet2 *= chain.jet_JER_Nom[k]

#when training, not applying jet pt and eta for signal sample
#acceptanceCutOnJets = jet1.Pt() > 20 and abs(jet1.Eta()) < 2.4 and jet2.Pt() > 20 and abs(jet2.Eta()) < 2.4
if chain.jet_CSV[j] > btag and chain.jet_CSV[k] > btag:
b1 = TLorentzVector()
b2 = TLorentzVector()
b1.SetPtEtaPhiE( chain.jet_pT[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_E[j])
b2.SetPtEtaPhiE( chain.jet_pT[k], chain.jet_eta[k], chain.jet_phi[k], chain.jet_E[k])
b1.SetPtEtaPhiE( chain.jet_pt[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_e[j])
b2.SetPtEtaPhiE( chain.jet_pt[k], chain.jet_eta[k], chain.jet_phi[k], chain.jet_e[k])
dR[0] = b1.DeltaR(b2)
dEta[0] = abs( b1.Eta() - b2.Eta())
dPhi[0] = b1.DeltaPhi(b2)
nuPt[0] = (b1+b2+nu).Pt()
nuEta[0] = (b1+b2+nu).Eta()
nuPhi[0] = (b1+b2+nu).Phi()
nuMass[0] = (b1+b2+nu).M()
nuM[0] = (b1+b2+nu).M()
lbPt[0] = (b1+b2+lep).Pt()
lbEta[0] = (b1+b2+lep).Eta()
lbPhi[0] = (b1+b2+lep).Phi()
Expand Down Expand Up @@ -450,16 +450,16 @@
#print sel from DNN
addbjet1_reco = TLorentzVector()
addbjet2_reco = TLorentzVector()
addbjet1_reco.SetPtEtaPhiE( chain.jet_pT[ sel[maxval][0] ], chain.jet_eta[ sel[maxval][0] ], chain.jet_phi[ sel[maxval][0] ], chain.jet_E[ sel[maxval][0] ])
addbjet2_reco.SetPtEtaPhiE( chain.jet_pT[ sel[maxval][1] ], chain.jet_eta[ sel[maxval][1] ], chain.jet_phi[ sel[maxval][1] ], chain.jet_E[ sel[maxval][1] ])
addbjet1_reco.SetPtEtaPhiE( chain.jet_pt[ sel[maxval][0] ], chain.jet_eta[ sel[maxval][0] ], chain.jet_phi[ sel[maxval][0] ], chain.jet_e[ sel[maxval][0] ])
addbjet2_reco.SetPtEtaPhiE( chain.jet_pt[ sel[maxval][1] ], chain.jet_eta[ sel[maxval][1] ], chain.jet_phi[ sel[maxval][1] ], chain.jet_e[ sel[maxval][1] ])

dibdR = addbjet1_reco.DeltaR( addbjet2_reco )
dibMass = ( addbjet1_reco + addbjet2_reco).M()

addbjet1_reco_dR = TLorentzVector()
addbjet2_reco_dR = TLorentzVector()
addbjet1_reco_dR.SetPtEtaPhiE( chain.jet_pT[ indexSmalldR[0] ], chain.jet_eta[ indexSmalldR[0] ], chain.jet_phi[ indexSmalldR[0] ], chain.jet_E[ indexSmalldR[0] ])
addbjet2_reco_dR.SetPtEtaPhiE( chain.jet_pT[ indexSmalldR[1] ], chain.jet_eta[ indexSmalldR[1] ], chain.jet_phi[ indexSmalldR[1] ], chain.jet_E[ indexSmalldR[1] ])
addbjet1_reco_dR.SetPtEtaPhiE( chain.jet_pt[ indexSmalldR[0] ], chain.jet_eta[ indexSmalldR[0] ], chain.jet_phi[ indexSmalldR[0] ], chain.jet_e[ indexSmalldR[0] ])
addbjet2_reco_dR.SetPtEtaPhiE( chain.jet_pt[ indexSmalldR[1] ], chain.jet_eta[ indexSmalldR[1] ], chain.jet_phi[ indexSmalldR[1] ], chain.jet_e[ indexSmalldR[1] ])

dibdR_dR = addbjet1_reco_dR.DeltaR( addbjet2_reco_dR )
dibMass_dR = ( addbjet1_reco_dR + addbjet2_reco_dR).M()
Expand Down
38 changes: 19 additions & 19 deletions ttbb/ntupleMaker.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
nuPt = array( 'd', [0] )
nuEta = array( 'd', [0] )
nuPhi = array( 'd', [0] )
nuMass = array( 'd', [0] )
nuM = array( 'd', [0] )
lbPt = array( 'd', [0] )
lbEta = array( 'd', [0] )
lbPhi = array( 'd', [0] )
Expand Down Expand Up @@ -77,7 +77,7 @@
t.Branch('nuPt', nuPt, 'nuPt/D')
t.Branch('nuEta', nuEta, 'nuEta/D')
t.Branch('nuPhi', nuPhi, 'nuPhi/D')
t.Branch('nuMass', nuMass, 'nuMass/D')
t.Branch('nuM', nuM, 'nuM/D')
t.Branch('lbPt', lbPt, 'lbPt/D')
t.Branch('lbEta', lbEta, 'lbEta/D')
t.Branch('lbPhi', lbPhi, 'lbPhi/D')
Expand Down Expand Up @@ -120,13 +120,13 @@
for i in xrange(entries):
chain.GetEntry(i)

eventweight = chain.PUWeight[0]*chain.genweight*chain.lepton_SF[0]*chain.jet_SF_CSV[0]
eventweight = chain.PUWeight[0]*chain.genweight*chain.lepton_SF[0]*chain.jet_SF_deepCSV_30[0]

MET_px = chain.MET * math.cos( chain.MET_phi )
MET_py = chain.MET * math.sin( chain.MET_phi )
nu = TLorentzVector( MET_px, MET_py, 0, chain.MET)
lep = TLorentzVector()
lep.SetPtEtaPhiE( chain.lepton_pT, chain.lepton_eta, chain.lepton_phi, chain.lepton_E)
lep.SetPtEtaPhiE( chain.lepton_pt, chain.lepton_eta, chain.lepton_phi, chain.lepton_e)
passmu = False
passel = False
passmu = chain.channel == 0 and lep.Pt() > 30 and abs(lep.Eta()) < 2.1
Expand All @@ -144,27 +144,27 @@

njets = 0
nbjets = 0
for j in range( len(chain.jet_pT) ):
for j in range( len(chain.jet_pt) ):
jet = TLorentzVector()
jet.SetPtEtaPhiE(chain.jet_pT[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_E[j])
jet.SetPtEtaPhiE(chain.jet_pt[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_e[j])
jet *= chain.jet_JER_Nom[j]
if jet.Pt() < 30 or abs(jet.Eta()) > 2.4 :
continue
njets = njets + 1
btag = 0.9535 #tight working point
#btag = 0.8484 #medium working point
#btag = 0.54264 #loose working point
if chain.jet_CSV[j] > btag:
if chain.jet_SF_deepCSV_30[j] > btag:
nbjets = nbjets+1

if njets < 6:
continue
if nbjets < 3:
continue

for i in range( len(chain.jet_pT) ):
for i in range( len(chain.jet_pt) ):
tmp = TLorentzVector()
tmp.SetPtEtaPhiE( chain.jet_pT[i], chain.jet_eta[i], chain.jet_phi[i], chain.jet_E[i] )
tmp.SetPtEtaPhiE( chain.jet_pt[i], chain.jet_eta[i], chain.jet_phi[i], chain.jet_e[i] )
#when finding matched jet, not use pt and eta
#tmp *= chain.jet_JER_Nom[i]
#if tmp.Pt() > 20 and abs(tmp.Eta()) < 2.4:
Expand All @@ -177,29 +177,29 @@
if addbjet1_matched.Pt() > 0 and addbjet2_matched.Pt() > 0 :
nEvents_matchable = nEvents_matchable + 1

for j in range( len(chain.jet_pT) - 1):
for k in range( j+1, len(chain.jet_pT) ):
for j in range( len(chain.jet_pt) - 1):
for k in range( j+1, len(chain.jet_pt) ):
jet1 = TLorentzVector()
jet1.SetPtEtaPhiE( chain.jet_pT[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_E[j] )
jet1.SetPtEtaPhiE( chain.jet_pt[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_e[j] )
jet1 *= chain.jet_JER_Nom[j]
jet2 = TLorentzVector()
jet2.SetPtEtaPhiE( chain.jet_pT[k], chain.jet_eta[k], chain.jet_phi[k], chain.jet_E[k] )
jet2.SetPtEtaPhiE( chain.jet_pt[k], chain.jet_eta[k], chain.jet_phi[k], chain.jet_e[k] )
jet2 *= chain.jet_JER_Nom[k]

#when training, not applying jet pt and eta for signal sample
#acceptanceCutOnJets = jet1.Pt() > 20 and abs(jet1.Eta()) < 2.4 and jet2.Pt() > 20 and abs(jet2.Eta()) < 2.4
if chain.jet_CSV[j] > btag and chain.jet_CSV[k] > btag:
if chain.jet_SF_deepCSV_30[j] > btag and chain.jet_SF_deepCSV_30[k] > btag:
b1 = TLorentzVector()
b2 = TLorentzVector()
b1.SetPtEtaPhiE( chain.jet_pT[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_E[j])
b2.SetPtEtaPhiE( chain.jet_pT[k], chain.jet_eta[k], chain.jet_phi[k], chain.jet_E[k])
b1.SetPtEtaPhiE( chain.jet_pt[j], chain.jet_eta[j], chain.jet_phi[j], chain.jet_e[j])
b2.SetPtEtaPhiE( chain.jet_pt[k], chain.jet_eta[k], chain.jet_phi[k], chain.jet_e[k])
dR[0] = b1.DeltaR(b2)
dEta[0] = abs( b1.Eta() - b2.Eta())
dPhi[0] = b1.DeltaPhi(b2)
nuPt[0] = (b1+b2+nu).Pt()
nuEta[0] = (b1+b2+nu).Eta()
nuPhi[0] = (b1+b2+nu).Phi()
nuMass[0] = (b1+b2+nu).M()
nuM[0] = (b1+b2+nu).M()
lbPt[0] = (b1+b2+lep).Pt()
lbEta[0] = (b1+b2+lep).Eta()
lbPhi[0] = (b1+b2+lep).Phi()
Expand All @@ -224,8 +224,8 @@
diEta[0] = (b1+b2).Eta()
diPhi[0] = (b1+b2).Phi()
diMass[0] = (b1+b2).M()
csv1[0] = chain.jet_CSV[j]
csv2[0] = chain.jet_CSV[k]
csv1[0] = chain.jet_SF_deepCSV_30[j]
csv2[0] = chain.jet_SF_deepCSV_30[k]
pt1[0] = b1.Pt()
pt2[0] = b2.Pt()
eta1[0] = b1.Eta()
Expand Down
2 changes: 1 addition & 1 deletion ttbb/process/pre.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
myfile = TFile("output_ttbb.root")

#variables = ["signal","dR","dEta","dPhi","nuPt","nuEta","nuPhi","nuMass","lbPt","lbEta","lbPhi","lbMass","lb1Pt","lb1Eta","lb1Phi","lb1Mass","lb2Pt","lb2Eta","lb2Phi","lb2Mass","lb1nuPt","lb1nuEta","lb1nuPhi","lb1nuMass","lb2nuPt","lb2nuEta","lb2nuPhi","lb2nuMass","diPt","diEta","diPhi","diMass","csv1","csv2","pt1","pt2","eta1","eta2","phi1","phi2","e1","e2"]
variables = ["signal","dR","dEta","dPhi","nuPt","nuEta","nuPhi","nuMass","lbPt","lbEta","lbPhi","lbMass","lb1Pt","lb1Eta","lb1Phi","lb1Mass","lb2Pt","lb2Eta","lb2Phi","lb2Mass","diPt","diEta","diPhi","diMass","csv1","csv2","pt1","pt2","eta1","eta2","phi1","phi2","e1","e2"]
variables = ["signal","dR","dEta","dPhi","nuPt","nuEta","nuPhi","nuM","lbPt","lbEta","lbPhi","lbMass","lb1Pt","lb1Eta","lb1Phi","lb1Mass","lb2Pt","lb2Eta","lb2Phi","lb2Mass","diPt","diEta","diPhi","diMass","csv1","csv2","pt1","pt2","eta1","eta2","phi1","phi2","e1","e2"]

processROOTfilelist("./","tree",variables)