nKSL = 0 KS = f.Events.recoVertexCompositePtrCandidates_slimmedKshortVertices__RECO.product( ) TLk = TLorentzVector() mK = [] for k in KS: kl = k.p4() TLk.SetPtEtaPhiM(kl.pt(), kl.eta(), kl.phi(), kl.mass()) if TLk.DeltaR(TLs4) < 0.5: print k.numberOfDaughters(), k.daughter(0), k.daughter( 0).pt(), k.daughter(0).eta(), k.daughter(0).phi(), k.daughter( 1), k.daughter(1).pt(), k.daughter(1).eta(), k.daughter( 1).phi(), "V", k.vx(), k.vy(), k.vz() #, dir(k) print "Match K", k.pt() / s4.pt(), k.mass(), isS nKSL += 1 mK.append(TLk.Clone()) # EDM # Lam = f.Events.recoVertexCompositeCandidates_generalV0Candidates_Lambda_RECO.product()\ # MiniAOD Lam = f.Events.recoVertexCompositePtrCandidates_slimmedLambdaVertices__RECO.product( ) for k in Lam: k = k.p4() TLk.SetPtEtaPhiE(k.pt(), k.eta(), k.phi(), k.e()) if TLk.DeltaR(TLs4) < 0.5: print "Match L", k.pt() / s4.pt(), k.mass(), isS nKSL += 1 if nKSL > 0: print "Total KS/Lambda: ", nKSL if len(mK) == 0: continue jtl = TLorentzVector() Jets = f.Events.patJets_slimmedJets__RECO.product()
neu_mad = TLorentzVector(0, 0, 0, 0) count = count + 1 if count % 100 == 0: print "count = ", count event.getByLabel(labelPruned, handlePruned) pruned = handlePruned.product() 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)
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 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()