p3 = TLorentzVector(px3, py3, pz3, e3) if bbar: px4 = float(bbar[0].split()[6]) py4 = float(bbar[0].split()[7]) pz4 = float(bbar[0].split()[8]) e4 = float(bbar[0].split()[9]) p4 = TLorentzVector(px4, py4, pz4, e4) HggP4 = p1 + p2 HbbP4 = p3 + p4 m_H1.append(HggP4.M()) m_H2.append(HbbP4.M()) b_pT.append(p3.Pt()) b_eta.append(p3.Eta()) b_phi.append(p3.Phi()) bbar_pT.append(p4.Pt()) bbar_eta.append(p4.Eta()) bbar_phi.append(p4.Phi()) a_pT.append(p1.Pt()) a_eta.append(p1.Eta()) a_phi.append(p1.Phi()) for i in m_H1: h_m_H1.Fill(i) hists1.append(h_m_H1) for i in m_H2:
def main(): usage = 'usage: %prog [options]' parser = optparse.OptionParser(usage) parser.add_option('-i', '--in', dest='inputfiles', help='name of input files', default=None, type='string') parser.add_option('-o', '--out', dest='outputfiles', help='name output files', default=None, type='string') (opt, args) = parser.parse_args() histo_array = {} h_weight = TH1F('weight', 'weight', 2, -1, 1) #LHE histos h_lep1pt_LHE = TH1F('lep1pt_LHE', 'lep1pt_LHE', 75, 0, 150) h_lep1eta_LHE = TH1F('lep1eta_LHE', 'lep1eta_LHE', 60, -3, 3) h_lep1phi_LHE = TH1F('lep1phi_LHE', 'lep1phi_LHE', 80, -4, 4) h_lep2pt_LHE = TH1F('lep2pt_LHE', 'lep2pt_LHE', 75, 0, 150) h_lep2eta_LHE = TH1F('lep2eta_LHE', 'lep2eta_LHE', 60, -3, 3) h_lep2phi_LHE = TH1F('lep2phi_LHE', 'lep2phi_LHE', 80, -4, 4) h_Vpt_LHE = TH1F('Vpt_LHE', 'Vpt_LHE', 75, 0, 150) h_HT_LHE = TH1F('HT_LHE', 'HT_LHE', 60, 0, 300) h_Njets_LHE = TH1F('Njets_LHE', 'Njets_LHE', 5, 0, 5) h_j1pt_LHE = TH1F('j1pt_LHE', 'j1pt_LHE', 100, 0, 200) h_j1eta_LHE = TH1F('j1eta_LHE', 'j1eta_LHE', 100, -5, 5) h_j1phi_LHE = TH1F('j1phi_LHE', 'j1phi_LHE', 80, -4, 4) h_j1mass_LHE = TH1F('j1mass_LHE', 'j1mass_LHE', 40, 0, 40) h_j2pt_LHE = TH1F('j2pt_LHE', 'j2pt_LHE', 100, 0, 200) h_j2eta_LHE = TH1F('j2eta_LHE', 'j2eta_LHE', 100, -5, 5) h_j2phi_LHE = TH1F('j2phi_LHE', 'j2phi_LHE', 80, -4, 4) h_j2mass_LHE = TH1F('j2mass_LHE', 'j2mass_LHE', 40, 0, 40) h_j3pt_LHE = TH1F('j3pt_LHE', 'j3pt_LHE', 100, 0, 200) h_j3eta_LHE = TH1F('j3eta_LHE', 'j3eta_LHE', 100, -5, 5) h_j3phi_LHE = TH1F('j3phi_LHE', 'j3phi_LHE', 80, -4, 4) h_j3mass_LHE = TH1F('j3mass_LHE', 'j3mass_LHE', 40, 0, 40) h_drlep1j1_LHE = TH1F('drlep1j1_LHE', 'drlep1j1_LHE', 60, 0, 3) h_drlep1j2_LHE = TH1F('drlep1j2_LHE', 'drlep1j2_LHE', 60, 0, 3) h_drlep1j3_LHE = TH1F('drlep1j3_LHE', 'drlep1j3_LHE', 60, 0, 3) h_drlep2j1_LHE = TH1F('drlep2j1_LHE', 'drlep2j1_LHE', 60, 0, 3) h_drlep2j2_LHE = TH1F('drlep2j2_LHE', 'drlep2j2_LHE', 60, 0, 3) h_drlep2j3_LHE = TH1F('drlep2j3_LHE', 'drlep2j3_LHE', 60, 0, 3) h_drl1l2_LHE = TH1F('drl1l2_LHE', 'drl1l2_LHE', 60, 0, 3) h_drj1j2_LHE = TH1F('drj1j2_LHE', 'drj1j2_LHE', 60, 0, 3) h_drj1j3_LHE = TH1F('drj1j3_LHE', 'drj1j3_LHE', 60, 0, 3) h_drj2j3_LHE = TH1F('drj2j3_LHE', 'drj2j3_LHE', 60, 0, 3) #GEN histos h_ngenjet_GEN = TH1F('ngenjet', 'ngenjet', 10, 0, 10) h_j1pt_GEN = TH1F('j1pt_GEN', 'j1pt_GEN', 100, 0, 200) h_j1eta_GEN = TH1F('j1eta_GEN', 'j1eta_GEN', 100, -5, 5) h_j1phi_GEN = TH1F('j1phi_GEN', 'j1phi_GEN', 80, -4, 4) h_j1mass_GEN = TH1F('j1mass_GEN', 'j1mass_GEN', 40, 0, 40) h_j2pt_GEN = TH1F('j2pt_GEN', 'j2pt_GEN', 100, 0, 200) h_j2eta_GEN = TH1F('j2eta_GEN', 'j2eta_GEN', 100, -5, 5) h_j2phi_GEN = TH1F('j2phi_GEN', 'j2phi_GEN', 80, -4, 4) h_j2mass_GEN = TH1F('j2mass_GEN', 'j2mass_GEN', 40, 0, 40) h_j3pt_GEN = TH1F('j3pt_GEN', 'j3pt_GEN', 100, 0, 200) h_j3eta_GEN = TH1F('j3eta_GEN', 'j3eta_GEN', 100, -5, 5) h_j3phi_GEN = TH1F('j3phi_GEN', 'j3phi_GEN', 80, -4, 4) h_j3mass_GEN = TH1F('j3mass_GEN', 'j3mass_GEN', 40, 0, 40) h_HT_GEN = TH1F('HT_GEN', 'HT_GEN', 80, 0, 400) h_Dressedlep1pt_GEN = TH1F('Dressedlep1pt_GEN', 'Dressedlep1pt_GEN', 75, 0, 150) h_Dressedlep1eta_GEN = TH1F('Dressedlep1eta_GEN', 'Dressedlep1eta_GEN', 60, -3, 3) h_Dressedlep1phi_GEN = TH1F('Dressedlep1phi_GEN', 'Dressedlep1phi_GEN', 80, -4, 4) h_Dressedlep2pt_GEN = TH1F('Dressedlep2pt_GEN', 'Dressedlep2pt_GEN', 75, 0, 150) h_Dressedlep2eta_GEN = TH1F('Dressedlep2eta_GEN', 'Dressedlep2eta_GEN', 60, -3, 3) h_Dressedlep2phi_GEN = TH1F('Dressedlep2phi_GEN', 'Dressedlep2phi_GEN', 80, -4, 4) h_Zmass_GEN = TH1F('Zmass_GEN', 'Zmass_GEN', 80, 50, 130) h_Zpt_GEN = TH1F('Zpt_GEN', 'Zpt_GEN', 100, 0, 200) h_Zeta_GEN = TH1F('Zeta_GEN', 'Zeta_GEN', 100, -5, 5) h_Zphi_GEN = TH1F('Zphi_GEN', 'Zphi_GEN', 80, -4, 4) h_Wpt_GEN = TH1F('Wpt_GEN', 'Wpt_GEN', 100, 0, 200) h_Weta_GEN = TH1F('Weta_GEN', 'Weta_GEN', 100, -5, 5) h_Wphi_GEN = TH1F('Wphi_GEN', 'Wphi_GEN', 80, -4, 4) h_drlep1j1_GEN = TH1F('drlep1j1_GEN', 'drlep1j1_GEN', 60, 0, 3) h_drlep1j2_GEN = TH1F('drlep1j2_GEN', 'drlep1j2_GEN', 60, 0, 3) h_drlep1j3_GEN = TH1F('drlep1j3_GEN', 'drlep1j3_GEN', 60, 0, 3) h_drlep2j1_GEN = TH1F('drlep2j1_GEN', 'drlep2j1_GEN', 60, 0, 3) h_drlep2j2_GEN = TH1F('drlep2j2_GEN', 'drlep2j2_GEN', 60, 0, 3) h_drlep2j3_GEN = TH1F('drlep2j3_GEN', 'drlep2j3_GEN', 60, 0, 3) h_drl1l2_GEN = TH1F('drl1l2_GEN', 'drl1l2_GEN', 60, 0, 3) h_drj1j2_GEN = TH1F('drj1j2_GEN', 'drj1j2_GEN', 60, 0, 3) h_drj1j3_GEN = TH1F('drj1j3_GEN', 'drj1j3_GEN', 60, 0, 3) h_drj2j3_GEN = TH1F('drj2j3_GEN', 'drj2j3_GEN', 60, 0, 3) h_Vistaupt_GEN = TH1F('Vistaupt_GEN', 'Vistaupt_GEN', 100, 0, 200) h_Vistaueta_GEN = TH1F('Vistaueta_GEN', 'Vistaueta_GEN', 60, -3, 3) h_Vistauphi_GEN = TH1F('Vistauphi_GEN', 'Vistauphi_GEN', 80, -4, 4) h_METpt_GEN = TH1F('METpt_GEN', 'METpt_GEN', 50, 0, 100) h_METphi_GEN = TH1F('METphi_GEN', 'METphi_GEN', 80, -4, 4) #add histos dictionary histo_array['h_weight'] = h_weight histo_array['h_lep1pt_LHE'] = h_lep1pt_LHE histo_array['h_lep1eta_LHE'] = h_lep1eta_LHE histo_array['h_lep1phi_LHE'] = h_lep1phi_LHE histo_array['h_lep2pt_LHE'] = h_lep2pt_LHE histo_array['h_lep2eta_LHE'] = h_lep2eta_LHE histo_array['h_lep2phi_LHE'] = h_lep2phi_LHE histo_array['h_Vpt_LHE'] = h_Vpt_LHE histo_array['h_HT_LHE'] = h_HT_LHE histo_array['h_Njets_LHE'] = h_Njets_LHE histo_array['h_j1pt_LHE'] = h_j1pt_LHE histo_array['h_j1eta_LHE'] = h_j1eta_LHE histo_array['h_j1phi_LHE'] = h_j1phi_LHE histo_array['h_j1mass_LHE'] = h_j1mass_LHE histo_array['h_j2pt_LHE'] = h_j2pt_LHE histo_array['h_j2eta_LHE'] = h_j2eta_LHE histo_array['h_j2phi_LHE'] = h_j2phi_LHE histo_array['h_j2mass_LHE'] = h_j2mass_LHE histo_array['h_j3pt_LHE'] = h_j3pt_LHE histo_array['h_j3eta_LHE'] = h_j3eta_LHE histo_array['h_j3phi_LHE'] = h_j3phi_LHE histo_array['h_j3mass_LHE'] = h_j3mass_LHE histo_array['h_drlep1j1_LHE'] = h_drlep1j1_LHE histo_array['h_drlep1j2_LHE'] = h_drlep1j2_LHE histo_array['h_drlep1j3_LHE'] = h_drlep1j3_LHE histo_array['h_drlep2j1_LHE'] = h_drlep2j1_LHE histo_array['h_drlep2j2_LHE'] = h_drlep2j2_LHE histo_array['h_drlep2j3_LHE'] = h_drlep2j3_LHE histo_array['h_drl1l2_LHE'] = h_drl1l2_LHE histo_array['h_drj1j2_LHE'] = h_drj1j2_LHE histo_array['h_drj1j3_LHE'] = h_drj1j3_LHE histo_array['h_drj2j3_LHE'] = h_drj2j3_LHE histo_array['h_ngenjet_GEN'] = h_ngenjet_GEN histo_array['h_j1pt_GEN'] = h_j1pt_GEN histo_array['h_j1eta_GEN'] = h_j1eta_GEN histo_array['h_j1phi_GEN'] = h_j1phi_GEN histo_array['h_j1mass_GEN'] = h_j1mass_GEN histo_array['h_j2pt_GEN'] = h_j2pt_GEN histo_array['h_j2eta_GEN'] = h_j2eta_GEN histo_array['h_j2phi_GEN'] = h_j2phi_GEN histo_array['h_j2mass_GEN'] = h_j2mass_GEN histo_array['h_j3pt_GEN'] = h_j3pt_GEN histo_array['h_j3eta_GEN'] = h_j3eta_GEN histo_array['h_j3phi_GEN'] = h_j3phi_GEN histo_array['h_j3mass_GEN'] = h_j3mass_GEN histo_array['h_HT_GEN'] = h_HT_GEN histo_array['h_Dressedlep1pt_GEN'] = h_Dressedlep1pt_GEN histo_array['h_Dressedlep1eta_GEN'] = h_Dressedlep1eta_GEN histo_array['h_Dressedlep1phi_GEN'] = h_Dressedlep1phi_GEN histo_array['h_Dressedlep2pt_GEN'] = h_Dressedlep2pt_GEN histo_array['h_Dressedlep2eta_GEN'] = h_Dressedlep2eta_GEN histo_array['h_Dressedlep2phi_GEN'] = h_Dressedlep2phi_GEN histo_array['h_Zmass_GEN'] = h_Zmass_GEN histo_array['h_Zpt_GEN'] = h_Zpt_GEN histo_array['h_Zeta_GEN'] = h_Zeta_GEN histo_array['h_Zphi_GEN'] = h_Zphi_GEN histo_array['h_Wpt_GEN'] = h_Wpt_GEN histo_array['h_Weta_GEN'] = h_Weta_GEN histo_array['h_Wphi_GEN'] = h_Wphi_GEN histo_array['h_drlep1j1_GEN'] = h_drlep1j1_GEN histo_array['h_drlep1j2_GEN'] = h_drlep1j2_GEN histo_array['h_drlep1j3_GEN'] = h_drlep1j3_GEN histo_array['h_drlep2j1_GEN'] = h_drlep2j1_GEN histo_array['h_drlep2j2_GEN'] = h_drlep2j2_GEN histo_array['h_drlep2j3_GEN'] = h_drlep2j3_GEN histo_array['h_drl1l2_GEN'] = h_drl1l2_GEN histo_array['h_drj1j2_GEN'] = h_drj1j2_GEN histo_array['h_drj1j3_GEN'] = h_drj1j3_GEN histo_array['h_drj2j3_GEN'] = h_drj2j3_GEN histo_array['h_Vistaupt_GEN'] = h_Vistaupt_GEN histo_array['h_Vistaueta_GEN'] = h_Vistaueta_GEN histo_array['h_Vistauphi_GEN'] = h_Vistauphi_GEN histo_array['h_METpt_GEN'] = h_METpt_GEN histo_array['h_METphi_GEN'] = h_METphi_GEN for key in histo_array: histo_array[key].SetStats(0) histo_array[key].Sumw2() histo_array[key].GetYaxis().SetTitle("a.u.") histo_array[key].GetYaxis().SetTitleSize(0.05) histo_array[key].GetYaxis().SetTitleOffset(0.75) histo_array[key].GetXaxis().SetTitle(key) histo_array[key].SetMinimum(0) if not os.path.isfile(opt.inputfiles): print 'inputfile does not exist!!' filein = TFile.Open(opt.inputfiles) treein = filein.Get('Events') npos = treein.GetEntries('genWeight>0') nneg = treein.GetEntries('genWeight<0') h_weight.SetBinContent(1, nneg) h_weight.SetBinContent(2, npos) for entry in range(0, treein.GetEntries()): p4temp = TLorentzVector() wp4temp = TLorentzVector() zp4 = TLorentzVector() LHElep = [] LHEjet = [] GENjet = [] GENDressLep = [] HT_GEN = 0. treein.GetEntry(entry) weight = (treein.genWeight) / (abs(treein.genWeight)) #LHE info histo_array['h_Vpt_LHE'].Fill(treein.LHE_Vpt, weight) histo_array['h_Njets_LHE'].Fill(ord(treein.LHE_Njets), weight) histo_array['h_HT_LHE'].Fill(treein.LHE_HT, weight) for iLHE in range(2, treein.nLHEPart): # LHE leptons if (abs(treein.LHEPart_pdgId[iLHE]) == 11 or abs(treein.LHEPart_pdgId[iLHE]) == 13): p4temp.SetPtEtaPhiM(treein.LHEPart_pt[iLHE], treein.LHEPart_eta[iLHE], treein.LHEPart_phi[iLHE], treein.LHEPart_mass[iLHE]) LHElep.append(p4temp.Clone()) # LHE jets if treein.LHEPart_status[iLHE] == 1 and ( abs(treein.LHEPart_pdgId[iLHE]) == 1 or abs(treein.LHEPart_pdgId[iLHE]) == 2 or abs(treein.LHEPart_pdgId[iLHE]) == 3 or abs(treein.LHEPart_pdgId[iLHE]) == 4 or abs(treein.LHEPart_pdgId[iLHE]) == 5 or abs(treein.LHEPart_pdgId[iLHE]) == 21): p4temp.SetPtEtaPhiM(treein.LHEPart_pt[iLHE], treein.LHEPart_eta[iLHE], treein.LHEPart_phi[iLHE], treein.LHEPart_mass[iLHE]) LHEjet.append(p4temp.Clone()) # end loop LHEpart if len(LHElep) > 0: LHElep.sort(key=lambda x: x.Pt()) if len(LHElep) == 1: histo_array['h_lep1pt_LHE'].Fill(LHElep[0].Pt(), weight) histo_array['h_lep1eta_LHE'].Fill(LHElep[0].Eta(), weight) histo_array['h_lep1phi_LHE'].Fill(LHElep[0].Phi(), weight) if len(LHElep) == 2: histo_array['h_lep1pt_LHE'].Fill(LHElep[0].Pt(), weight) histo_array['h_lep1eta_LHE'].Fill(LHElep[0].Eta(), weight) histo_array['h_lep1phi_LHE'].Fill(LHElep[0].Phi(), weight) histo_array['h_lep2pt_LHE'].Fill(LHElep[1].Pt(), weight) histo_array['h_lep2eta_LHE'].Fill(LHElep[1].Eta(), weight) histo_array['h_lep2phi_LHE'].Fill(LHElep[1].Phi(), weight) histo_array['h_drl1l2_LHE'].Fill(LHElep[0].DeltaR(LHElep[1]), weight) if len(LHEjet) > 2: histo_array['h_j1pt_LHE'].Fill(LHEjet[0].Pt(), weight) histo_array['h_j1eta_LHE'].Fill(LHEjet[0].Eta(), weight) histo_array['h_j1phi_LHE'].Fill(LHEjet[0].Phi(), weight) histo_array['h_j1mass_LHE'].Fill(LHEjet[0].M(), weight) histo_array['h_j2pt_LHE'].Fill(LHEjet[1].Pt(), weight) histo_array['h_j2eta_LHE'].Fill(LHEjet[1].Eta(), weight) histo_array['h_j2phi_LHE'].Fill(LHEjet[1].Phi(), weight) histo_array['h_j2mass_LHE'].Fill(LHEjet[1].M(), weight) histo_array['h_j3pt_LHE'].Fill(LHEjet[2].Pt(), weight) histo_array['h_j3eta_LHE'].Fill(LHEjet[2].Eta(), weight) histo_array['h_j3phi_LHE'].Fill(LHEjet[2].Phi(), weight) histo_array['h_j3mass_LHE'].Fill(LHEjet[2].M(), weight) histo_array['h_drj1j2_LHE'].Fill(LHEjet[0].DeltaR(LHEjet[1]), weight) histo_array['h_drj1j3_LHE'].Fill(LHEjet[0].DeltaR(LHEjet[2]), weight) histo_array['h_drj2j3_LHE'].Fill(LHEjet[1].DeltaR(LHEjet[2]), weight) if len(LHElep) == 2: histo_array['h_drlep1j1_LHE'].Fill(LHElep[0].DeltaR(LHEjet[0]), weight) histo_array['h_drlep1j2_LHE'].Fill(LHElep[0].DeltaR(LHEjet[1]), weight) histo_array['h_drlep1j3_LHE'].Fill(LHElep[0].DeltaR(LHEjet[2]), weight) histo_array['h_drlep2j1_LHE'].Fill(LHElep[1].DeltaR(LHEjet[0]), weight) histo_array['h_drlep2j2_LHE'].Fill(LHElep[1].DeltaR(LHEjet[1]), weight) histo_array['h_drlep2j3_LHE'].Fill(LHElep[1].DeltaR(LHEjet[2]), weight) elif len(LHElep) == 1: histo_array['h_drlep1j1_LHE'].Fill(LHElep[0].DeltaR(LHEjet[0]), weight) histo_array['h_drlep1j2_LHE'].Fill(LHElep[0].DeltaR(LHEjet[1]), weight) histo_array['h_drlep1j3_LHE'].Fill(LHElep[0].DeltaR(LHEjet[2]), weight) elif len(LHEjet) > 1: histo_array['h_j1pt_LHE'].Fill(LHEjet[0].Pt(), weight) histo_array['h_j1eta_LHE'].Fill(LHEjet[0].Eta(), weight) histo_array['h_j1phi_LHE'].Fill(LHEjet[0].Phi(), weight) histo_array['h_j1mass_LHE'].Fill(LHEjet[0].M(), weight) histo_array['h_j2pt_LHE'].Fill(LHEjet[1].Pt(), weight) histo_array['h_j2eta_LHE'].Fill(LHEjet[1].Eta(), weight) histo_array['h_j2phi_LHE'].Fill(LHEjet[1].Phi(), weight) histo_array['h_j2mass_LHE'].Fill(LHEjet[1].M(), weight) histo_array['h_drj1j2_LHE'].Fill(LHEjet[0].DeltaR(LHEjet[1]), weight) if len(LHElep) == 2: histo_array['h_drlep1j1_LHE'].Fill(LHElep[0].DeltaR(LHEjet[0]), weight) histo_array['h_drlep1j2_LHE'].Fill(LHElep[0].DeltaR(LHEjet[1]), weight) histo_array['h_drlep2j1_LHE'].Fill(LHElep[1].DeltaR(LHEjet[0]), weight) histo_array['h_drlep2j2_LHE'].Fill(LHElep[1].DeltaR(LHEjet[1]), weight) elif len(LHElep) == 1: histo_array['h_drlep1j1_LHE'].Fill(LHElep[0].DeltaR(LHEjet[0]), weight) histo_array['h_drlep1j2_LHE'].Fill(LHElep[0].DeltaR(LHEjet[1]), weight) elif len(LHEjet) > 0: histo_array['h_j1pt_LHE'].Fill(LHEjet[0].Pt(), weight) histo_array['h_j1eta_LHE'].Fill(LHEjet[0].Eta(), weight) histo_array['h_j1phi_LHE'].Fill(LHEjet[0].Phi(), weight) histo_array['h_j1mass_LHE'].Fill(LHEjet[0].M(), weight) if len(LHElep) == 2: histo_array['h_drlep1j1_LHE'].Fill(LHElep[0].DeltaR(LHEjet[0]), weight) histo_array['h_drlep2j1_LHE'].Fill(LHElep[1].DeltaR(LHEjet[0]), weight) elif len(LHElep) == 1: histo_array['h_drlep1j1_LHE'].Fill(LHElep[0].DeltaR(LHEjet[0]), weight) else: pass #end lhe info #GEN info histo_array['h_ngenjet_GEN'].Fill(treein.nGenJet, weight) for ijet in range(0, treein.nGenJet): HT_GEN = HT_GEN + treein.GenJet_pt[ijet] p4temp.SetPtEtaPhiM(treein.GenJet_pt[ijet], treein.GenJet_eta[ijet], treein.GenJet_phi[ijet], treein.GenJet_mass[ijet]) GENjet.append(p4temp.Clone()) #no need to sort if treein.nGenJet > 2: histo_array['h_j1pt_GEN'].Fill(treein.GenJet_pt[0], weight) histo_array['h_j1eta_GEN'].Fill(treein.GenJet_eta[0], weight) histo_array['h_j1phi_GEN'].Fill(treein.GenJet_phi[0], weight) histo_array['h_j1mass_GEN'].Fill(treein.GenJet_mass[0], weight) histo_array['h_j2pt_GEN'].Fill(treein.GenJet_pt[1], weight) histo_array['h_j2eta_GEN'].Fill(treein.GenJet_eta[1], weight) histo_array['h_j2phi_GEN'].Fill(treein.GenJet_phi[1], weight) histo_array['h_j2mass_GEN'].Fill(treein.GenJet_mass[1], weight) histo_array['h_j3pt_GEN'].Fill(treein.GenJet_pt[2], weight) histo_array['h_j3eta_GEN'].Fill(treein.GenJet_eta[2], weight) histo_array['h_j3phi_GEN'].Fill(treein.GenJet_phi[2], weight) histo_array['h_j3mass_GEN'].Fill(treein.GenJet_mass[2], weight) histo_array['h_drj1j2_GEN'].Fill(GENjet[0].DeltaR(GENjet[1]), weight) histo_array['h_drj1j3_GEN'].Fill(GENjet[0].DeltaR(GENjet[2]), weight) histo_array['h_drj2j3_GEN'].Fill(GENjet[1].DeltaR(GENjet[2]), weight) elif treein.nGenJet > 1: histo_array['h_j1pt_GEN'].Fill(treein.GenJet_pt[0], weight) histo_array['h_j1eta_GEN'].Fill(treein.GenJet_eta[0], weight) histo_array['h_j1phi_GEN'].Fill(treein.GenJet_phi[0], weight) histo_array['h_j1mass_GEN'].Fill(treein.GenJet_mass[0], weight) histo_array['h_j2pt_GEN'].Fill(treein.GenJet_pt[1], weight) histo_array['h_j2eta_GEN'].Fill(treein.GenJet_eta[1], weight) histo_array['h_j2phi_GEN'].Fill(treein.GenJet_phi[1], weight) histo_array['h_j2mass_GEN'].Fill(treein.GenJet_mass[1], weight) histo_array['h_drj1j2_GEN'].Fill(GENjet[0].DeltaR(GENjet[1]), weight) elif treein.nGenJet > 0: histo_array['h_j1pt_GEN'].Fill(treein.GenJet_pt[0], weight) histo_array['h_j1eta_GEN'].Fill(treein.GenJet_eta[0], weight) histo_array['h_j1phi_GEN'].Fill(treein.GenJet_phi[0], weight) histo_array['h_j1mass_GEN'].Fill(treein.GenJet_mass[0], weight) else: pass histo_array['h_HT_GEN'].Fill(HT_GEN, weight) if treein.nGenDressedLepton > 0: for idressedlep in range(0, treein.nGenDressedLepton): if treein.GenDressedLepton_hasTauAnc[idressedlep]: continue p4temp.SetPtEtaPhiM(treein.GenDressedLepton_pt[idressedlep], treein.GenDressedLepton_eta[idressedlep], treein.GenDressedLepton_phi[idressedlep], treein.GenDressedLepton_mass[idressedlep]) GENDressLep.append( extend_p4(p4temp.Clone(), treein.GenDressedLepton_pdgId[idressedlep])) GENDressLep.sort(key=lambda x: x.p4_vector.Pt()) if len(GENDressLep) == 1: wp4temp = wreco(GENDressLep[0].p4_vector, treein.GenMET_pt, treein.GenMET_phi) histo_array['h_Weta_GEN'].Fill(wp4temp.Eta(), weight) histo_array['h_Wpt_GEN'].Fill(wp4temp.Pt(), weight) histo_array['h_Wphi_GEN'].Fill(wp4temp.Phi(), weight) histo_array['h_Dressedlep1pt_GEN'].Fill( GENDressLep[0].p4_vector.Pt(), weight) histo_array['h_Dressedlep1eta_GEN'].Fill( GENDressLep[0].p4_vector.Eta(), weight) histo_array['h_Dressedlep1phi_GEN'].Fill( GENDressLep[0].p4_vector.Phi(), weight) if treein.nGenJet > 2: histo_array['h_drlep1j1_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[0]), weight) histo_array['h_drlep1j2_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[1]), weight) histo_array['h_drlep1j3_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[2]), weight) elif treein.nGenJet > 1: histo_array['h_drlep1j1_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[0]), weight) histo_array['h_drlep1j2_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[1]), weight) elif treein.nGenJet > 0: histo_array['h_drlep1j1_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[0]), weight) else: pass if len(GENDressLep) == 2: histo_array['h_Dressedlep1pt_GEN'].Fill( GENDressLep[0].p4_vector.Pt(), weight) histo_array['h_Dressedlep1eta_GEN'].Fill( GENDressLep[0].p4_vector.Eta(), weight) histo_array['h_Dressedlep1phi_GEN'].Fill( GENDressLep[0].p4_vector.Phi(), weight) histo_array['h_Dressedlep2pt_GEN'].Fill( GENDressLep[1].p4_vector.Pt(), weight) histo_array['h_Dressedlep2eta_GEN'].Fill( GENDressLep[1].p4_vector.Eta(), weight) histo_array['h_Dressedlep2phi_GEN'].Fill( GENDressLep[1].p4_vector.Phi(), weight) histo_array['h_drl1l2_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENDressLep[1].p4_vector), weight) if treein.nGenJet > 2: histo_array['h_drlep1j1_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[0]), weight) histo_array['h_drlep1j2_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[1]), weight) histo_array['h_drlep1j3_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[2]), weight) histo_array['h_drlep2j1_GEN'].Fill( GENDressLep[1].p4_vector.DeltaR(GENjet[0]), weight) histo_array['h_drlep2j2_GEN'].Fill( GENDressLep[1].p4_vector.DeltaR(GENjet[1]), weight) histo_array['h_drlep2j3_GEN'].Fill( GENDressLep[1].p4_vector.DeltaR(GENjet[2]), weight) elif treein.nGenJet > 1: histo_array['h_drlep1j1_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[0]), weight) histo_array['h_drlep1j2_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[1]), weight) histo_array['h_drlep2j1_GEN'].Fill( GENDressLep[1].p4_vector.DeltaR(GENjet[0]), weight) histo_array['h_drlep2j2_GEN'].Fill( GENDressLep[1].p4_vector.DeltaR(GENjet[1]), weight) elif treein.nGenJet > 0: histo_array['h_drlep1j1_GEN'].Fill( GENDressLep[0].p4_vector.DeltaR(GENjet[0]), weight) histo_array['h_drlep2j1_GEN'].Fill( GENDressLep[1].p4_vector.DeltaR(GENjet[0]), weight) else: pass if (GENDressLep[0].pdgid + GENDressLep[1].pdgid) == 0: zp4 = GENDressLep[0].p4_vector + GENDressLep[1].p4_vector histo_array['h_Zmass_GEN'].Fill(zp4.M(), weight) histo_array['h_Zeta_GEN'].Fill(zp4.Eta(), weight) histo_array['h_Zpt_GEN'].Fill(zp4.Pt(), weight) histo_array['h_Zphi_GEN'].Fill(zp4.Phi(), weight) if treein.nGenVisTau > 0: histo_array['h_Vistaupt_GEN'].Fill(treein.GenVisTau_pt[0], weight) histo_array['h_Vistaueta_GEN'].Fill(treein.GenVisTau_eta[0], weight) histo_array['h_Vistauphi_GEN'].Fill(treein.GenVisTau_phi[0], weight) histo_array['h_METpt_GEN'].Fill(treein.GenMET_pt, weight) histo_array['h_METphi_GEN'].Fill(treein.GenMET_phi, weight) fileout = TFile.Open(opt.outputfiles + '.root', 'RECREATE') fileout.cd() for key in histo_array: histo_array[key].Write() fileout.Close()
def ClosestTrkVars(collections): results=[] mll_e1_trk=[] mll_e2_trk=[] minxy1_b_trk=[] minxy2_b_trk=[] minxy3_b_trk=[] meanxy_b_trk=[] tracks=collections[0] Bcands=collections[1] Electrons=collections[2] for Bcand in Bcands: e1_vec=TLorentzVector(); e2_vec=TLorentzVector(); trk1_vec=TLorentzVector(); trk2_vec=TLorentzVector(); k_idx=getattr(Bcand,"kIdx") recoE1=Electrons[getattr(Bcand,"l1Idx")] recoE2=Electrons[getattr(Bcand,"l2Idx")] recoK=tracks[k_idx] e1_vec.SetPtEtaPhiM(getattr(recoE1,"pt"),getattr(recoE1,"eta"),getattr(recoE1,"phi"),0.0005) e2_vec.SetPtEtaPhiM(getattr(recoE2,"pt"),getattr(recoE2,"eta"),getattr(recoE2,"phi"),0.0005) k_eta=getattr(recoK,"eta"); k_phi=getattr(recoK,"phi") b_eta=getattr(Bcand,"fit_eta"); b_phi=getattr(Bcand,"fit_phi") vx_e1=getattr(Bcand,"l1Vx"); vy_e1=getattr(Bcand,"l1Vy") vx_e2=getattr(Bcand,"l2Vx"); vy_e2=getattr(Bcand,"l2Vy") vx_b=getattr(Bcand,"vtx_x"); vy_b=getattr(Bcand,"vtx_y") min_distance_trk_e1=100; min_distance_trk_e2=100; imin_distance_trk_e1=-1; imin_distance_trk_e2=-1; distances_b_trk=[] mean_b_trk=0; imean_b_trk=0. for itrk,track in enumerate(tracks): if k_idx==itrk: continue vx_trk=getattr(track,"vx") vy_trk=getattr(track,"vy") vz_trk=getattr(track,"vz") trk_eta=getattr(track,"eta") trk_phi=getattr(track,"phi") if deltaR(e1_vec.Eta(),e1_vec.Phi(),trk_eta,trk_phi)<0.03 or \ deltaR(e2_vec.Eta(),e2_vec.Phi(),trk_eta,trk_phi)<0.03 or \ deltaR(k_eta,k_phi,trk_eta,trk_phi)<0.03: continue; if min_distance_trk_e1> sqrt( (vx_e1-vx_trk)**(2) + (vy_e1-vy_trk)**(2) ): min_distance_trk_e1 = sqrt( (vx_e1-vx_trk)**(2) + (vy_e1-vy_trk)**(2) ) imin_distance_trk_e1=itrk if min_distance_trk_e2> sqrt( (vx_e2-vx_trk)**(2) + (vy_e2-vy_trk)**(2) ): min_distance_trk_e2 = sqrt( (vx_e2-vx_trk)**(2) + (vy_e2-vy_trk)**(2) ) imin_distance_trk_e2=itrk distances_b_trk.append(sqrt( (vx_b-vx_trk)**(2) + (vy_b-vy_trk)**(2) ) ) if deltaR(b_eta,b_phi,trk_eta,trk_phi)<0.4: mean_b_trk+= sqrt( (vx_b-vx_trk)**(2) + (vy_b-vy_trk)**(2) ) imean_b_trk+=1.0 distances_b_trk=sorted(distances_b_trk) if imin_distance_trk_e1>-1: trk1_vec.SetPtEtaPhiM(getattr(tracks[imin_distance_trk_e1],"pt"),getattr(tracks[imin_distance_trk_e1],"eta"),getattr(tracks[imin_distance_trk_e1],"phi"),0.139) mll_e1_trk.append( (trk1_vec+e1_vec).M() ) else: mll_e1_trk.append(-1. ) if imin_distance_trk_e2>-1: trk2_vec.SetPtEtaPhiM(getattr(tracks[imin_distance_trk_e2],"pt"),getattr(tracks[imin_distance_trk_e2],"eta"),getattr(tracks[imin_distance_trk_e2],"phi"),0.139) mll_e2_trk.append( (trk2_vec+e2_vec).M() ) else: mll_e2_trk.append( -1. ) if len(distances_b_trk)>0: minxy1_b_trk.append(distances_b_trk[0]) else: minxy1_b_trk.append(10) if len(distances_b_trk)>1: minxy2_b_trk.append(distances_b_trk[1]) else: minxy2_b_trk.append(10) if len(distances_b_trk)>2: minxy3_b_trk.append(distances_b_trk[2]) else: minxy3_b_trk.append(10) if imean_b_trk>0: meanxy_b_trk.append(mean_b_trk/imean_b_trk) else: meanxy_b_trk.append(10) results=[ mll_e1_trk, mll_e2_trk, minxy1_b_trk, minxy2_b_trk, minxy3_b_trk,\ meanxy_b_trk ] return results
#Create lepton vectors lep1.SetPtEtaPhiM(lep_pt[ev][index1], lep_eta[ev][index1], lep_phi[ev][index1], lep_mass[ev][index1]) lep2.SetPtEtaPhiM(lep_pt[ev][index2], lep_eta[ev][index2], lep_phi[ev][index2], lep_mass[ev][index2]) lep3.SetPtEtaPhiM(lep_pt[ev][index3], lep_eta[ev][index3], lep_phi[ev][index3], lep_mass[ev][index3]) threeleps = lep1 + lep2 + lep3 Met = TLorentzVector() Met.SetPtEtaPhiM(MET[ev], 0, MET_phi[ev], 0) ot.idL1[0], ot.idL2[0], ot.idL3[0] = lep_id[ev][index1], lep_id[ev][ index2], lep_id[ev][index3] ot.pTL1[0], ot.pTL2[0], ot.pTL3[0] = lep1.Pt(), lep2.Pt(), lep3.Pt() ot.etaL1[0], ot.etaL2[0], ot.etaL3[0] = lep1.Eta(), lep2.Eta(), lep3.Eta() ot.phiL1[0], ot.phiL2[0], ot.phiL3[0] = lep1.Phi(), lep2.Phi(), lep3.Phi() ot.IsoL1[0], ot.IsoL2[0], ot.IsoL3[0] = lep_iso[ev][index1], lep_iso[ev][ index2], lep_iso[ev][index3] ot.ip3dL1[0], ot.ip3dL2[0], ot.ip3dL3[0] = lep_ip[ev][index1], lep_ip[ev][ index2], lep_ip[ev][index3] ot.sip3dL1[0], ot.sip3dL2[0], ot.sip3dL3[0] = lep_sip[ev][index1], lep_sip[ ev][index2], lep_sip[ev][index3] ot.massL1[0], ot.massL2[0], ot.massL3[0] = lep1.M(), lep2.M(), lep3.M() ot.tightIdL1[0], ot.tightIdL2[0], ot.tightIdL3[0] = lep_tight[ev][ index1], lep_tight[ev][index2], lep_tight[ev][index3] ot.medIdL1[0], ot.medIdL2[0], ot.medIdL3[0] = lep_med[ev][index1], lep_med[ ev][index2], lep_med[ev][index3] ot.dR12[0] = deltaR(lep1.Eta(), lep1.Phi(), lep2.Eta(), lep2.Phi()) ot.dR13[0] = deltaR(lep1.Eta(), lep1.Phi(), lep3.Eta(), lep3.Phi()) ot.dR23[0] = deltaR(lep2.Eta(), lep2.Phi(), lep3.Eta(), lep3.Phi())
event.getByLabel(geninfoLabel, geninfo) info_pruned = geninfo.product() weight_mad = info_pruned.weight() / abs(info_pruned.weight()) neu_posi = -999 ele_posi = -999 mu_posi = -999 for p in pruned: if (p.isDirectHardProcessTauDecayProductFinalState()): print 'ID:', p.pdgId() lep_mad.SetPtEtaPhiE(p.pt(), p.eta(), p.phi(), p.energy()) madspin_TLorentzVector.append(lep_mad.Clone()) madspin_pdgid_index.append(p.pdgId()) for i in range(len(madspin_pdgid_index)): tau_mad = tau_mad + madspin_TLorentzVector[i] tauphi_mad.Fill(tau_mad.Phi(), weight_mad) taueta_mad.Fill(tau_mad.Eta(), weight_mad) taupt_mad.Fill(tau_mad.Pt(), weight_mad) tau_mad_boost = tau_mad.BoostVector() tau_mad.Boost(-tau_mad_boost) if -16 in madspin_pdgid_index: neu_posi = madspin_pdgid_index.index(-16) if 16 in madspin_pdgid_index: neu_posi = madspin_pdgid_index.index(16) neu_mad = madspin_TLorentzVector[neu_posi] neu_mad.Boost(-tau_mad_boost) nphi_mad.Fill(cos(neu_mad.Angle(tau_mad.Vect())), weight_mad) if -11 in madspin_pdgid_index: ele_posi = madspin_pdgid_index.index(-11) if 11 in madspin_pdgid_index: ele_posi = madspin_pdgid_index.index(11) if ele_posi != -999: ele_mad = madspin_TLorentzVector[ele_posi] ele_mad.Boost(-tau_mad_boost) elephi_mad.Fill(cos(ele_mad.Angle(tau_mad.Vect())), weight_mad) if -13 in madspin_pdgid_index: mu_posi = madspin_pdgid_index.index(-13)
def ClosestTrkVarsMC(collections): mll_e1_trk=-99 mll_e2_trk=-99 minxy1_b_trk=-99 minxy2_b_trk=-99 minxy3_b_trk=-99 meanxy_b_trk=-99 results=[mll_e1_trk,mll_e2_trk,minxy1_b_trk,minxy2_b_trk,minxy3_b_trk, meanxy_b_trk] tracks=collections[0] Bcands=collections[1] Bidx=collections[2] reco_electrons=collections[3] idx_e1=collections[4] idx_e2=collections[5] if Bidx<0: return results recoB=Bcands[Bidx]; idx_k=getattr(recoB,"kIdx"); recoE1=reco_electrons[idx_e1]; recoE2=reco_electrons[idx_e2]; recoK=tracks[idx_k] e1_vec=TLorentzVector(); e2_vec=TLorentzVector(); e1_vec.SetPtEtaPhiM(getattr(recoE1,"pt"),getattr(recoE1,"eta"),getattr(recoE1,"phi"),0.0005) e2_vec.SetPtEtaPhiM(getattr(recoE2,"pt"),getattr(recoE2,"eta"),getattr(recoE2,"phi"),0.0005) k_eta=getattr(recoK,"eta"); k_phi=getattr(recoK,"phi") b_eta=getattr(recoB,"fit_eta"); b_phi=getattr(recoB,"fit_phi") vx_b=getattr(recoB,"vtx_x"); vy_b=getattr(recoB,"vtx_y") vx_e1=getattr(recoE1,"vx"); vy_e1=getattr(recoE1,"vy"); vx_e2=getattr(recoE2,"vx"); vy_e2=getattr(recoE2,"vy"); min_dist_e1=100; min_dist_e2=100; itrk_e1=-1; itrk_e2=-1; distance_b_trk=[] mean_b_trk=0. imean_b_trk=0. for itrk,track in enumerate(tracks): if itrk==idx_k: continue vx_trk=getattr(track,"vx") vy_trk=getattr(track,"vy") trk_eta=getattr(track,"eta") trk_phi=getattr(track,"phi") if deltaR(e1_vec.Eta(),e1_vec.Phi(),trk_eta,trk_phi)<0.03 or \ deltaR(e2_vec.Eta(),e2_vec.Phi(),trk_eta,trk_phi)<0.03 or \ deltaR(k_eta,k_phi,trk_eta,trk_phi)<0.03: continue; if min_dist_e1> sqrt( (vx_e1-vx_trk)**(2) + (vy_e1-vy_trk)**(2) ): min_dist_e1 = sqrt( (vx_e1-vx_trk)**(2) + (vy_e1-vy_trk)**(2) ) itrk_e1=itrk if min_dist_e2> sqrt( (vx_e2-vx_trk)**(2) + (vy_e2-vy_trk)**(2) ): min_dist_e2 = sqrt( (vx_e2-vx_trk)**(2) + (vy_e2-vy_trk)**(2) ) itrk_e2=itrk distance_b_trk.append(sqrt( (vx_b-vx_trk)**(2) + (vy_b-vy_trk)**(2) ) ) if deltaR(b_eta,b_phi,trk_eta,trk_phi)<0.4: mean_b_trk+= sqrt( (vx_b-vx_trk)**(2) + (vy_b-vy_trk)**(2) ) imean_b_trk+=1.0 distance_b_trk=sorted(distance_b_trk) minxy_e1_trk=min_dist_e1; minxy_e2_trk=min_dist_e2; trk1_vec=TLorentzVector(); trk2_vec=TLorentzVector(); if itrk_e1>-1: trk1_vec.SetPtEtaPhiM(getattr(tracks[itrk_e1],"pt"),getattr(tracks[itrk_e1],"eta"),getattr(tracks[itrk_e1],"phi"),0.139) mll_e1_trk= (trk1_vec+e1_vec).M() else: mll_e1_trk=-1. if itrk_e2>-1: trk2_vec.SetPtEtaPhiM(getattr(tracks[itrk_e2],"pt"),getattr(tracks[itrk_e2],"eta"),getattr(tracks[itrk_e2],"phi"),0.139) mll_e2_trk= (trk2_vec+e2_vec).M() else: mll_e2_trk=-1. if len(distance_b_trk)>0: minxy1_b_trk=distance_b_trk[0] else: minxy1_b_trk=10 if len(distance_b_trk)>1: minxy2_b_trk=distance_b_trk[1] else: minxy2_b_trk=10 if len(distance_b_trk)>2: minxy3_b_trk=distance_b_trk[2] else: minxy3_b_trk=10 if imean_b_trk>0: meanxy_b_trk=mean_b_trk/imean_b_trk else: meanxy_b_trk=10 results=[ mll_e1_trk, mll_e2_trk, minxy1_b_trk, minxy2_b_trk, minxy3_b_trk,\ meanxy_b_trk] return results
px4 = float(bbar[0].split()[6]) py4 = float(bbar[0].split()[7]) pz4 = float(bbar[0].split()[8]) e4 = float(bbar[0].split()[9]) p3 = TLorentzVector(px3, py3, pz3, e3) p4 = TLorentzVector(px4, py4, pz4, e4) if (pi.Pt() > 200): selEvents1.append(pi.Pt()) if (pi.Pt() > 200) and (p3.Pt() > 50) and (p4.Pt() > 50): selEvents2.append(pi.Pt()) if (pi.Pt() > 200) and (p3.Pt() > 50) and (p4.Pt() > 50) and ( abs(p3.Eta()) < 2.5) and (abs(p4.Eta()) < 2.5): selEvents3.append(pi.Pt()) selEvents.append(pi.Pt()) print("myEvet", len(selEvents)) print("totalEvent", len(genMET)) eff.append((float(len(selEvents))) / (float(len(genMET)))) print("Myeff", (float(len(selEvents))) / (float(len(genMET)))) sel1_masspoint.append(selEvents1) sel2_masspoint.append(selEvents2) sel3_masspoint.append(selEvents3) fout = open('Efficiency_cut.txt', 'w') for i in eff: print("eff", i) fout.write(str(i) + '\n')
pruned = handlePruned.product() event.getByLabel(geninfoLabel, geninfo) for p in pruned: if abs(p.pdgId()) == 22 and p.pt() > 10 and abs(p.eta()) < 2.5 and ( p.statusFlags().isPrompt()) and p.status() == 1: gamma_num = gamma_num + 1 if g1.Pt() == 0: g1.SetPtEtaPhiE(p.pt(), p.eta(), p.phi(), p.energy()) elif g2.Pt == 0: if p.pt() < g1.Pt(): g2.SetPtEtaPhiE(p.pt(), p.eta(), p.phi(), p.energy()) else: temp.SetPtEtaPhiE(g1.Pt(), g1.Eta(), g1.Phi(), g1.E()) g1.SetPtEtaPhiE(p.pt(), p.eta(), p.phi(), p.energy()) g2.SetPtEtaPhiE(temp.Pt(), temp.Eta(), temp.Phi(), temp.E()) else: if p.pt() > g1.Pt(): g2.SetPtEtaPhiE(g1.Pt(), g1.Eta(), g1.Phi(), g1.E()) g1.SetPtEtaPhiE(p.pt(), p.eta(), p.phi(), p.energy()) elif p.pt() > g2.Pt(): g2.SetPtEtaPhiE(p.pt(), p.eta(), p.phi(), p.energy()) else: continue if gamma_num < 2: continue g1_pt.Fill(g1.Pt()) g2_pt.Fill(g2.Pt()) mgg.Fill((g1 + g2).M())
def main(): usage = 'usage: %prog [options]' parser = optparse.OptionParser(usage) parser.add_option('-i', '--in', dest='inputfiles', help='name of input files', default=None, type='string') parser.add_option('-o', '--out', dest='outputfiles', help='name output files', default=None, type='string') (opt, args) = parser.parse_args() h_weight = TH1F('weight','weight',2,-1,1) #################### histos ######################################### h_lep1pt_LHE = TH1F('lep1pt_LHE', 'lep1pt_LHE', 75, 0, 150) h_lep1eta_LHE = TH1F('lep1eta_LHE', 'lep1eta_LHE', 60, -3, 3) h_lep1phi_LHE = TH1F('lep1phi_LHE', 'lep1phi_LHE', 80, -4, 4) h_lep2pt_LHE = TH1F('lep2pt_LHE', 'lep2pt_LHE', 75, 0, 150) h_lep2eta_LHE = TH1F('lep2eta_LHE', 'lep2eta_LHE', 60, -3, 3) h_lep2phi_LHE = TH1F('lep2phi_LHE', 'lep2phi_LHE', 80, -4, 4) h_lep3pt_LHE = TH1F('lep3pt_LHE', 'lep3pt_LHE', 75, 0, 150) h_lep3eta_LHE = TH1F('lep3eta_LHE', 'lep3eta_LHE', 60, -3, 3) h_lep3phi_LHE = TH1F('lep3phi_LHE', 'lep3phi_LHE', 80, -4, 4) h_lep4pt_LHE = TH1F('lep4pt_LHE', 'lep4pt_LHE', 75, 0, 150) h_lep4eta_LHE = TH1F('lep4eta_LHE', 'lep4eta_LHE', 60, -3, 3) h_lep4phi_LHE = TH1F('lep4phi_LHE', 'lep4phi_LHE', 80, -4, 4) h_apt_LHE = TH1F('apt_LHE', 'apt_LHE', 75, 0, 50) h_aeta_LHE = TH1F('aeta_LHE', 'aeta_LHE', 60, -3, 6) h_aphi_LHE = TH1F('aphi_LHE', 'aphi_LHE', 80, -4, 4) h_Z1mass_LHE = TH1F('Z1mass_LHE', 'Z1mass_LHE', 80, 0, 130) h_Z1pt_LHE = TH1F('Z1pt_LHE', 'Z1pt_LHE', 100, 0, 200) h_Z1eta_LHE = TH1F('Z1eta_LHE', 'Z1eta_LHE', 100, -5, 5) h_Z1phi_LHE = TH1F('Z1phi_LHE', 'Z1phi_LHE', 80, -4, 4) h_Z2mass_LHE = TH1F('Z2mass_LHE', 'Z2mass_LHE', 80, 0, 130) h_Z2pt_LHE = TH1F('Z2pt_LHE', 'Z2pt_LHE', 100, 0, 200) h_Z2eta_LHE = TH1F('Z2eta_LHE', 'Z2eta_LHE', 100, -5, 5) h_Z2phi_LHE = TH1F('Z2phi_LHE', 'Z2phi_LHE', 80, -4, 4) h_Vpt_LHE = TH1F('Vpt_LHE', 'Vpt_LHE', 75, 0, 150) h_Dressedlep1pt_GEN = TH1F('Dressedlep1pt_GEN', 'Dressedlep1pt_GEN', 75, 0, 150) h_Dressedlep1eta_GEN = TH1F('Dressedlep1eta_GEN', 'Dressedlep1eta_GEN', 60, -3, 3) h_Dressedlep1phi_GEN = TH1F('Dressedlep1phi_GEN', 'Dressedlep1phi_GEN', 80, -4, 4) h_Dressedlep2pt_GEN = TH1F('Dressedlep2pt_GEN', 'Dressedlep2pt_GEN', 75, 0, 150) h_Dressedlep2eta_GEN = TH1F('Dressedlep2eta_GEN', 'Dressedlep2eta_GEN', 60, -3, 3) h_Dressedlep2phi_GEN = TH1F('Dressedlep2phi_GEN', 'Dressedlep2phi_GEN', 80, -4, 4) h_Dressedlep3pt_GEN = TH1F('Dressedlep3pt_GEN', 'Dressedlep3pt_GEN', 75, 0, 150) h_Dressedlep3eta_GEN = TH1F('Dressedlep3eta_GEN', 'Dressedlep3eta_GEN', 60, -3, 3) h_Dressedlep3phi_GEN = TH1F('Dressedlep3phi_GEN', 'Dressedlep3phi_GEN', 80, -4, 4) h_Dressedlep4pt_GEN = TH1F('Dressedlep4pt_GEN', 'Dressedlep4pt_GEN', 75, 0, 150) h_Dressedlep4eta_GEN = TH1F('Dressedlep4eta_GEN', 'Dressedlep4eta_GEN', 60, -3, 3) h_Dressedlep4phi_GEN = TH1F('Dressedlep4phi_GEN', 'Dressedlep4phi_GEN', 80, -4, 4) h_apt_GEN = TH1F('apt_GEN', 'apt_GEN', 75, 0, 50) h_aeta_GEN = TH1F('aeta_GEN', 'aeta_GEN', 60, -3, 3) h_aphi_GEN = TH1F('aphi_GEN', 'aphi_GEN', 80, -4, 4) h_Z1mass_GEN = TH1F('Z1mass_GEN', 'Z1mass_GEN', 80, 0, 130) h_Z1pt_GEN = TH1F('Z1pt_GEN', 'Z1pt_GEN', 100, 0, 200) h_Z1eta_GEN = TH1F('Z1eta_GEN', 'Z1eta_GEN', 100, -5, 5) h_Z1phi_GEN = TH1F('Z1phi_GEN', 'Z1phi_GEN', 80, -4, 4) h_Z2mass_GEN = TH1F('Z2mass_GEN', 'Z2mass_GEN', 80, 0, 130) h_Z2pt_GEN = TH1F('Z2pt_GEN', 'Z2pt_GEN', 100, 0, 200) h_Z2eta_GEN = TH1F('Z2eta_GEN', 'Z2eta_GEN', 100, -5, 5) h_Z2phi_GEN = TH1F('Z2phi_GEN', 'Z2phi_GEN', 80, -4, 4) h_drl1l2_GEN = TH1F('drl1l2_GEN', 'drl1l2_GEN', 60, 0, 3) h_drl1l3_GEN = TH1F('drl1l3_GEN', 'drl1l3_GEN', 60, 0, 3) h_drl1l4_GEN = TH1F('drl1l4_GEN', 'drl1l4_GEN', 60, 0, 3) h_drl2l3_GEN = TH1F('drl2l3_GEN', 'drl2l3_GEN', 60, 0, 3) h_drl2l4_GEN = TH1F('drl2l4_GEN', 'drl2l4_GEN', 60, 0, 3) h_drl3l4_GEN = TH1F('drl3l4_GEN', 'drl3l4_GEN', 60, 0, 3) h_drl1a_GEN = TH1F('drl1a_GEN', 'drl1a_GEN', 60, 0, 3) h_drl2a_GEN = TH1F('drl2a_GEN', 'drl2a_GEN', 60, 0, 3) h_drl3a_GEN = TH1F('drl3a_GEN', 'drl3a_GEN', 60, 0, 3) h_drl4a_GEN = TH1F('drl4a_GEN', 'drl4a_GEN', 60, 0, 3) h_drz1a_GEN = TH1F('drz1a_GEN', 'drz1a_GEN', 60, 0, 6) h_drz2a_GEN = TH1F('drz2a_GEN', 'drz2a_GEN', 60, 0, 6) h_drz1z2_GEN = TH1F('drz1z2_GEN', 'drz1z2_GEN', 60, 0, 6) h_Vistaupt_GEN = TH1F('Vistaupt_GEN', 'Vistaupt_GEN', 100, 0, 200) h_Vistaueta_GEN = TH1F('Vistaueta_GEN', 'Vistaueta_GEN', 60, -3, 3) h_Vistauphi_GEN = TH1F('Vistauphi_GEN', 'Vistauphi_GEN', 80, -4, 4) h_METpt_GEN = TH1F('METpt_GEN', 'METpt_GEN', 50, 0, 100) h_METphi_GEN = TH1F('METphi_GEN', 'METphi_GEN', 80, -4, 4) h_mzz_GEN = TH1F('mzz_GEN', 'mzz_GEN', 100, 0, 300) ####################### add histos dictionary ############################## histo_array = {} histo_array['h_weight']=h_weight histo_array['h_lep1pt_LHE']=h_lep1pt_LHE histo_array['h_lep1eta_LHE']=h_lep1eta_LHE histo_array['h_lep1phi_LHE']=h_lep1phi_LHE histo_array['h_lep2pt_LHE']=h_lep2pt_LHE histo_array['h_lep2eta_LHE']=h_lep2eta_LHE histo_array['h_lep2phi_LHE'] = h_lep2phi_LHE histo_array['h_lep3pt_LHE']=h_lep3pt_LHE histo_array['h_lep3eta_LHE']=h_lep3eta_LHE histo_array['h_lep3phi_LHE'] = h_lep3phi_LHE histo_array['h_lep4pt_LHE']=h_lep4pt_LHE histo_array['h_lep4eta_LHE']=h_lep4eta_LHE histo_array['h_lep4phi_LHE'] = h_lep4phi_LHE histo_array['h_Vpt_LHE'] = h_Vpt_LHE histo_array['h_Z1mass_LHE']=h_Z1mass_LHE histo_array['h_Z1pt_LHE']=h_Z1pt_LHE histo_array['h_Z1eta_LHE']=h_Z1eta_LHE histo_array['h_Z1phi_LHE']=h_Z1phi_LHE histo_array['h_Z2mass_LHE']=h_Z2mass_LHE histo_array['h_Z2pt_LHE']=h_Z2pt_LHE histo_array['h_Z2eta_LHE']=h_Z2eta_LHE histo_array['h_Z2phi_LHE']=h_Z2phi_LHE histo_array['h_apt_LHE'] = h_apt_LHE histo_array['h_aeta_LHE'] = h_aeta_LHE histo_array['h_aphi_LHE'] = h_aphi_LHE histo_array['h_Dressedlep1pt_GEN']=h_Dressedlep1pt_GEN histo_array['h_Dressedlep1eta_GEN']=h_Dressedlep1eta_GEN histo_array['h_Dressedlep1phi_GEN']=h_Dressedlep1phi_GEN histo_array['h_Dressedlep2pt_GEN']=h_Dressedlep2pt_GEN histo_array['h_Dressedlep2eta_GEN']=h_Dressedlep2eta_GEN histo_array['h_Dressedlep2phi_GEN'] = h_Dressedlep2phi_GEN histo_array['h_Dressedlep3pt_GEN']=h_Dressedlep3pt_GEN histo_array['h_Dressedlep3eta_GEN']=h_Dressedlep3eta_GEN histo_array['h_Dressedlep3phi_GEN'] = h_Dressedlep3phi_GEN histo_array['h_Dressedlep4pt_GEN']=h_Dressedlep4pt_GEN histo_array['h_Dressedlep4eta_GEN']=h_Dressedlep4eta_GEN histo_array['h_Dressedlep4phi_GEN'] = h_Dressedlep4phi_GEN histo_array['h_apt_GEN']=h_apt_GEN histo_array['h_aeta_GEN']=h_aeta_GEN histo_array['h_aphi_GEN'] = h_aphi_GEN histo_array['h_Z1mass_GEN']=h_Z1mass_GEN histo_array['h_Z1pt_GEN']=h_Z1pt_GEN histo_array['h_Z1eta_GEN']=h_Z1eta_GEN histo_array['h_Z1phi_GEN']=h_Z1phi_GEN histo_array['h_Z2mass_GEN']=h_Z2mass_GEN histo_array['h_Z2pt_GEN']=h_Z2pt_GEN histo_array['h_Z2eta_GEN']=h_Z2eta_GEN histo_array['h_Z2phi_GEN']=h_Z2phi_GEN histo_array['h_drl1l2_GEN'] = h_drl1l2_GEN histo_array['h_drl1l3_GEN'] = h_drl1l3_GEN histo_array['h_drl1l4_GEN'] = h_drl1l4_GEN histo_array['h_drl2l3_GEN'] = h_drl2l3_GEN histo_array['h_drl2l4_GEN'] = h_drl2l4_GEN histo_array['h_drl3l4_GEN'] = h_drl3l4_GEN histo_array['h_drl1a_GEN'] = h_drl1a_GEN histo_array['h_drl2a_GEN'] = h_drl2a_GEN histo_array['h_drl3a_GEN'] = h_drl3a_GEN histo_array['h_drl4a_GEN'] = h_drl4a_GEN histo_array['h_drz1a_GEN'] = h_drz1a_GEN histo_array['h_drz2a_GEN'] = h_drz2a_GEN histo_array['h_drz1z2_GEN'] = h_drz1z2_GEN histo_array['h_Vistaupt_GEN']=h_Vistaupt_GEN histo_array['h_Vistaueta_GEN']=h_Vistaueta_GEN histo_array['h_Vistauphi_GEN']=h_Vistauphi_GEN histo_array['h_METpt_GEN']=h_METpt_GEN histo_array['h_METphi_GEN'] = h_METphi_GEN histo_array['h_mzz_GEN'] = h_mzz_GEN for key in histo_array: histo_array[key].SetStats(0) histo_array[key].Sumw2() histo_array[key].GetYaxis().SetTitle("a.u.") histo_array[key].GetYaxis().SetTitleSize(0.05) histo_array[key].GetYaxis().SetTitleOffset(0.75) histo_array[key].GetXaxis().SetTitle(key) histo_array[key].SetMinimum(0) if not os.path.isfile(opt.inputfiles): print 'inputfile does not exist!!' filein=TFile.Open(opt.inputfiles) treein=filein.Get('Events') npos=treein.GetEntries('genWeight>0') nneg=treein.GetEntries('genWeight<0') h_weight.SetBinContent(1,nneg) h_weight.SetBinContent(2,npos) for entry in range(0,treein.GetEntries()): p4temp = TLorentzVector() wp4temp=TLorentzVector() zp4 = TLorentzVector() LHElep = [] LHEjet = [] LHEa = [] treein.GetEntry(entry) weight=(treein.genWeight)/(abs(treein.genWeight)) # LHE info #histo_array['h_Vpt_LHE'].Fill(treein.LHE_Vpt, weight) #histo_array['h_Njets_LHE'].Fill(ord(treein.LHE_Njets), weight) #histo_array['h_HT_LHE'].Fill(treein.LHE_HT, weight) for iLHE in range(2,treein.nLHEPart): # LHE leptons if (abs(treein.LHEPart_pdgId[iLHE])==11 or abs(treein.LHEPart_pdgId[iLHE])==13): p4temp.SetPtEtaPhiM(treein.LHEPart_pt[iLHE], treein.LHEPart_eta[iLHE], treein.LHEPart_phi[iLHE], treein.LHEPart_mass[iLHE]) LHElep.append(extend_p4(p4temp.Clone(), treein.LHEPart_pdgId[iLHE])) # LHE jets if treein.LHEPart_status[iLHE] == 1 and (abs(treein.LHEPart_pdgId[iLHE]) == 1 or abs(treein.LHEPart_pdgId[iLHE]) == 2 or abs(treein.LHEPart_pdgId[iLHE]) == 3 or abs(treein.LHEPart_pdgId[iLHE]) == 4 or abs(treein.LHEPart_pdgId[iLHE]) == 5 or abs(treein.LHEPart_pdgId[iLHE]) == 21): p4temp.SetPtEtaPhiM(treein.LHEPart_pt[iLHE], treein.LHEPart_eta[iLHE], treein.LHEPart_phi[iLHE], treein.LHEPart_mass[iLHE]) LHEjet.append(p4temp.Clone()) if treein.LHEPart_pdgId[iLHE] == 22: p4temp.SetPtEtaPhiM(treein.LHEPart_pt[iLHE], treein.LHEPart_eta[iLHE], treein.LHEPart_phi[iLHE], treein.LHEPart_mass[iLHE]) LHEa.append(p4temp.Clone()) #--end loop LHEpart if len(LHElep) > 0: LHElep.sort(key=lambda x: x.p4_vector.Pt()) # sort the lep by pt if len(LHElep) == 4 and len(LHEa) == 1: histo_array['h_lep1pt_LHE'].Fill(LHElep[0].p4_vector.Pt(), weight) histo_array['h_lep2pt_LHE'].Fill(LHElep[1].p4_vector.Pt(), weight) histo_array['h_lep3pt_LHE'].Fill(LHElep[2].p4_vector.Pt(), weight) histo_array['h_lep4pt_LHE'].Fill(LHElep[3].p4_vector.Pt(), weight) histo_array['h_lep1eta_LHE'].Fill(LHElep[0].p4_vector.Eta(), weight) histo_array['h_lep2eta_LHE'].Fill(LHElep[1].p4_vector.Eta(), weight) histo_array['h_lep3eta_LHE'].Fill(LHElep[2].p4_vector.Eta(), weight) histo_array['h_lep4eta_LHE'].Fill(LHElep[3].p4_vector.Eta(), weight) histo_array['h_lep1phi_LHE'].Fill(LHElep[0].p4_vector.Phi(), weight) histo_array['h_lep2phi_LHE'].Fill(LHElep[1].p4_vector.Phi(), weight) histo_array['h_lep3phi_LHE'].Fill(LHElep[2].p4_vector.Phi(), weight) histo_array['h_lep4phi_LHE'].Fill(LHElep[3].p4_vector.Phi(), weight) histo_array['h_apt_LHE'].Fill(LHEa[0].Pt(), weight) histo_array['h_aphi_LHE'].Fill(LHEa[0].Phi(), weight) histo_array['h_aeta_LHE'].Fill(LHEa[0].Eta(), weight) minZ_lhe, otherZ_lhe = mll(LHElep) histo_array['h_Z1mass_LHE'].Fill(minZ_lhe.M(), weight) histo_array['h_Z1pt_LHE'].Fill(minZ_lhe.Pt(), weight) histo_array['h_Z1phi_LHE'].Fill(minZ_lhe.Phi(), weight) histo_array['h_Z1eta_LHE'].Fill(minZ_lhe.Eta(), weight) histo_array['h_Z2mass_LHE'].Fill(otherZ_lhe.M(), weight) histo_array['h_Z2pt_LHE'].Fill(otherZ_lhe.Pt(), weight) histo_array['h_Z2phi_LHE'].Fill(otherZ_lhe.Phi(), weight) histo_array['h_Z2eta_LHE'].Fill(otherZ_lhe.Eta(), weight) ##--end lhe info GENjet = [] GENDressLep = [] GENgamma_tmp = [] GENgamma = [] Gena = TLorentzVector() HT_GEN = 0. ##-GEN info if treein.nGenDressedLepton>0: for idressedlep in range(0, treein.nGenDressedLepton): if treein.GenDressedLepton_hasTauAnc[idressedlep]: continue p4temp.SetPtEtaPhiM(treein.GenDressedLepton_pt[idressedlep],treein.GenDressedLepton_eta[idressedlep],treein.GenDressedLepton_phi[idressedlep],treein.GenDressedLepton_mass[idressedlep]) GENDressLep.append(extend_p4(p4temp.Clone(), treein.GenDressedLepton_pdgId[idressedlep])) #-sort by pt GENDressLep.sort(key=lambda x: x.p4_vector.Pt()) if len(GENDressLep)==4: if GENDressLep[0].p4_vector.Pt() < 10: continue histo_array['h_Dressedlep1pt_GEN'].Fill(GENDressLep[0].p4_vector.Pt(), weight) histo_array['h_Dressedlep1eta_GEN'].Fill(GENDressLep[0].p4_vector.Eta(), weight) histo_array['h_Dressedlep1phi_GEN'].Fill(GENDressLep[0].p4_vector.Phi(), weight) histo_array['h_Dressedlep2pt_GEN'].Fill(GENDressLep[1].p4_vector.Pt(), weight) histo_array['h_Dressedlep2eta_GEN'].Fill(GENDressLep[1].p4_vector.Eta(), weight) histo_array['h_Dressedlep2phi_GEN'].Fill(GENDressLep[1].p4_vector.Phi(), weight) histo_array['h_Dressedlep3pt_GEN'].Fill(GENDressLep[2].p4_vector.Pt(), weight) histo_array['h_Dressedlep3eta_GEN'].Fill(GENDressLep[2].p4_vector.Eta(), weight) histo_array['h_Dressedlep3phi_GEN'].Fill(GENDressLep[2].p4_vector.Phi(), weight) histo_array['h_Dressedlep4pt_GEN'].Fill(GENDressLep[3].p4_vector.Pt(), weight) histo_array['h_Dressedlep4eta_GEN'].Fill(GENDressLep[3].p4_vector.Eta(), weight) histo_array['h_Dressedlep4phi_GEN'].Fill(GENDressLep[3].p4_vector.Phi(), weight) histo_array['h_drl1l2_GEN'].Fill(GENDressLep[0].p4_vector.DeltaR(GENDressLep[1].p4_vector), weight) histo_array['h_drl1l3_GEN'].Fill(GENDressLep[0].p4_vector.DeltaR(GENDressLep[2].p4_vector), weight) histo_array['h_drl1l4_GEN'].Fill(GENDressLep[0].p4_vector.DeltaR(GENDressLep[3].p4_vector), weight) histo_array['h_drl2l3_GEN'].Fill(GENDressLep[1].p4_vector.DeltaR(GENDressLep[2].p4_vector), weight) histo_array['h_drl2l4_GEN'].Fill(GENDressLep[1].p4_vector.DeltaR(GENDressLep[3].p4_vector), weight) histo_array['h_drl3l4_GEN'].Fill(GENDressLep[2].p4_vector.DeltaR(GENDressLep[3].p4_vector), weight) minZ_gen, otherZ_gen = mll(GENDressLep) histo_array['h_Z1mass_GEN'].Fill(minZ_gen.M(), weight) histo_array['h_Z1pt_GEN'].Fill(minZ_gen.Pt(), weight) histo_array['h_Z1phi_GEN'].Fill(minZ_gen.Phi(), weight) histo_array['h_Z1eta_GEN'].Fill(minZ_gen.Eta(), weight) histo_array['h_Z2mass_GEN'].Fill(otherZ_gen.M(), weight) histo_array['h_Z2pt_GEN'].Fill(otherZ_gen.Pt(), weight) histo_array['h_Z2phi_GEN'].Fill(otherZ_gen.Phi(), weight) histo_array['h_Z2eta_GEN'].Fill(otherZ_gen.Eta(), weight) histo_array['h_drz1z2_GEN'].Fill(otherZ_gen.DeltaR(minZ_gen), weight) histo_array['h_mzz_GEN'].Fill((minZ_gen + otherZ_gen).M(), weight) #--end nGenDressedLepton if len(GENDressLep)==4 and treein.nGenPart>0: for iGenPart in range(0, treein.nGenPart): if treein.GenPart_pdgId[iGenPart]==22: # and treein.GenPart_statusFlags[iGenPart] == 0 p4temp.SetPtEtaPhiM(treein.GenPart_pt[iGenPart],treein.GenPart_eta[iGenPart],treein.GenPart_phi[iGenPart],treein.GenPart_mass[iGenPart]) GENgamma_tmp.append(p4temp.Clone()) for iGENgamma_tmp in range(0, len(GENgamma_tmp)): if GENDressLep[0].p4_vector.DeltaR(GENgamma_tmp[iGENgamma_tmp])>0.5 and GENDressLep[1].p4_vector.DeltaR(GENgamma_tmp[iGENgamma_tmp])>0.5 and GENDressLep[2].p4_vector.DeltaR(GENgamma_tmp[iGENgamma_tmp])>0.5 and GENDressLep[3].p4_vector.DeltaR(GENgamma_tmp[iGENgamma_tmp])>0.5: GENgamma.append(GENgamma_tmp[iGENgamma_tmp].Clone()) GENgamma.sort(key=lambda x: x.Pt(), reverse=True) if len(GENgamma) == 0: continue Gena = GENgamma[0] # finished selecting gamma histo_array['h_apt_GEN'].Fill(Gena.Pt()) histo_array['h_aeta_GEN'].Fill(Gena.Eta()) histo_array['h_aphi_GEN'].Fill(Gena.Phi()) histo_array['h_drl1a_GEN'].Fill(Gena.DeltaR(GENDressLep[0].p4_vector)) histo_array['h_drl2a_GEN'].Fill(Gena.DeltaR(GENDressLep[1].p4_vector)) histo_array['h_drl3a_GEN'].Fill(Gena.DeltaR(GENDressLep[2].p4_vector)) histo_array['h_drl4a_GEN'].Fill(Gena.DeltaR(GENDressLep[3].p4_vector)) histo_array['h_drz1a_GEN'].Fill(Gena.DeltaR(minZ_gen)) histo_array['h_drz2a_GEN'].Fill(Gena.DeltaR(otherZ_gen)) if treein.nGenVisTau>0: histo_array['h_Vistaupt_GEN'].Fill(treein.GenVisTau_pt[0], weight) histo_array['h_Vistaueta_GEN'].Fill(treein.GenVisTau_eta[0], weight) histo_array['h_Vistauphi_GEN'].Fill(treein.GenVisTau_phi[0], weight) histo_array['h_METpt_GEN'].Fill(treein.GenMET_pt, weight) histo_array['h_METphi_GEN'].Fill(treein.GenMET_phi, weight) #if entry > 10: # break fileout=TFile.Open(opt.outputfiles+'.root','RECREATE') # fileout=TFile.Open(opt.outputfiles+'.root','UPDATE') fileout.cd() #print histo_array.keys() for key in histo_array: histo_array[key].Write() fileout.Close()
if data_chain.jet_num < 1: continue jet_0 = TLorentzVector(0, 0, 0, 0) jet_1 = TLorentzVector(0, 0, 0, 0) jet_0.SetPtEtaPhiM(data_chain.fj_ak8_pt[0], data_chain.fj_ak8_eta[0], data_chain.fj_ak8_phi[0], data_chain.fj_ak8_trimmed_mass[0]) jet_1.SetPtEtaPhiM(data_chain.fj_ak8_pt[1], data_chain.fj_ak8_eta[1], data_chain.fj_ak8_phi[1], data_chain.fj_ak8_trimmed_mass[1]) m0 = data_chain.fj_ak8_trimmed_mass[0] m1 = data_chain.fj_ak8_trimmed_mass[1] mass_asym = abs(m0 - m1)/(m0 + m1) delta_eta = abs(jet_0.Eta() - jet_1.Eta()) if m0 + m1 == 0: continue if mass_asym > 0.5: continue if data_chain.fj_ak8_pt[0] < 280 or data_chain.fj_ak8_pt[1] < 280: continue ak8_pt_0[0] = data_chain.fj_ak8_pt[0] ak8_eta_0[0] = data_chain.fj_ak8_eta[0] ak8_phi_0[0] = data_chain.fj_ak8_phi[0] ak8_m_0[0] = data_chain.fj_ak8_trimmed_mass[0] ak8_m_0[0] = data_chain.fj_ak8_m[0]
# At least 1 B jet (using deepcsvm value) ngoodjets = len(jetsP4) #print 'ngoodjets: ', ngoodjets centBjetsP4 = [] BjetsP4 = [] deepcsvm = 0.4941 nMedBjets = 0 for j in range(0, ngoodjets): tempjet = TLorentzVector(0.0, 0.0, 0.0, 0.0) tempjet = jetsP4[j] tempjetcsv = goodjetcsv[j] if tempjetcsv >= deepcsvm: nMedBjets += 1 BjetsP4.append(tempjet) jeteta = tempjet.Eta() if abs(jeteta) < 2.4: centBjetsP4.append(tempjet) if nMedBjets == 0: continue ncut += 1 hCutflow.Fill(ncut, evtwt) # Met > 20 GeV if met_pt < 20: continue ncut += 1 hCutflow.Fill(ncut, evtwt) ak8jet_pt = t.AK8Jets_pt ak8jet_eta = t.AK8Jets_eta ak8jet_phi = t.AK8Jets_phi