예제 #1
0
                    NMatch_bq_40 += 1
                    if TLV.DeltaR(p_j,p) < 0.2:
                        NMatch_bq_20 += 1
            if jet.BTag:
                result["NMatchBJets_20"].append([NMatch_lq_20,NMatch_bq_20])
                result["NMatchBJets_40"].append([NMatch_lq_40,NMatch_bq_40])
            else:
                result["NMatchLJets_20"].append([NMatch_lq_20,NMatch_bq_20])
                result["NMatchLJets_40"].append([NMatch_lq_40,NMatch_bq_40]) 
            

#         result["gen"] = [ ]
#         for var in tree_vars:
#             if var in result:
#                 result["gen"].append(result[var])
#             else: # if one variable does not exist for this event, no tree
#                 del result["gen"]
#                 break
        
        
        return result



if __name__=="__main__":
    import sys
    from DelphesAnalysis.BaseControlPlots import runTest
    runTest(sys.argv[1], GenControlPlots())


예제 #2
0
#                    result["M_j2l"] = (lepton.TLV+ji[1].TLV).M()
                    result["DeltaR_j2l"] = TLV.DeltaR(lepton.TLV,ji[1].TLV)
                    result["DeltaPhi_j2l"] = fold(abs(lepton.Phi - ji[1].Phi))
                    result["DeltaEtaDeltaPhi_j2l"] = [[ abs(lepton.Eta - ji[1].Eta),
                                                        result["DeltaPhi_j2l"] ]]
                    if len(ji)>2:
                        result["DeltaEtaDeltaPhi_j3l"] = [[ abs(lepton.Eta - ji[2].Eta),
                                                            fold(abs(lepton.Phi - ji[2].Phi)) ]]
        
        
        # respect the order of branches when adding variables
#        result["cleanup"] = [ result[var] for var in result if var in tree_vars ]
        result["cleanup"] = [ ]
        for var in tree_vars:
            if var in result:
                result["cleanup"].append(result[var])
            else: # if one variable does not exist for this event, no tree
                del result["cleanup"]
                break

        return result




if __name__=="__main__":
  import sys
  from DelphesAnalysis.BaseControlPlots import runTest
  runTest(sys.argv[1], CleanUpControlPlots())

예제 #3
0
      self.add("DeltaR_ll","lepton-lepton DeltaR_ll",100,0,4.5)
      self.add("DeltaR_bb","bjet-bjet DeltaR_bb",100,0,4.5)
      self.add("DeltaPhi_bbll","DeltaPhi_bbll",100,0,3.5)

    # get information
    def process(self, event):
    
        result = { }
        
        if event.M_ll:
            result["M_ll"] = event.M_ll
        if event.M_bb:
            result["M_bb"] = event.M_bb
        if event.DeltaR_ll<100:
            result["DeltaR_ll"] = event.DeltaR_ll
        if event.DeltaR_bb<100:
            result["DeltaR_bb"] = event.DeltaR_bb
        if event.DeltaPhi_bbll:
            result["DeltaPhi_bbll"] = event.DeltaPhi_bbll

        return result




if __name__=="__main__":
  import sys
  from DelphesAnalysis.BaseControlPlots import runTest
  runTest(sys.argv[1], LeptonControlPlots())

예제 #4
0
    def process(self, event):
      #get information
      result = { }
      result["JetPt"] = [ ]
      result["JetEta"] = [ ]
      result["JetPhi"] = [ ]
      result["BjetPt"] = [ ]
      result["BjetEta"] = [ ]
      result["BjetPhi"] = [ ]
      nb=0
      for jet in event.selectedJets:
        result["JetPt"].append(jet.PT)
        result["JetEta"].append(jet.Eta)
        result["JetPhi"].append(jet.Phi)
        if jet.BTag:
          nb+=1
          result["BjetPt"].append(jet.PT)
          result["BjetEta"].append(jet.Eta)
          result["BjetPhi"].append(jet.Phi)
      result["Njets"]  = len(event.selectedJets)
      result["Nbjets"] = nb
      result["MET"] = event.MEt[0].MET
      result["METphi"] = event.MEt[0].Phi
      return result

if __name__=="__main__":
  import sys
  from DelphesAnalysis.BaseControlPlots import runTest
  runTest(sys.argv[1], JetControlPlots())

예제 #5
0
                        [q_Hbb_a1,q_Wjj_a1] = vectors
                        q_HWW_a1 = q_Wjj_a1 + q_Wlnu1
                        q_HHbbWW_a1 = q_Hbb_a1 + q_HWW_a1
                        result["Hbb_a1Pt" ] = q_Hbb_a1.Pt()
                        result["Hbb_a1Eta"] = q_Hbb_a1.Eta()
                        result["Hbb_a1M"  ] = q_Hbb_a1.M()
                        result["Wjj_a1Pt" ] = q_Wjj_a1.Pt()
                        result["Wjj_a1Eta"] = q_Wjj_a1.Eta()
                        result["Wjj_a1M"  ] = q_Wjj_a1.M()
                        if MH_min < q_Hbb_a1.M() < MH_max: #and MH_min < q_HWW_a1.M() < MH_max:
                            result["Hbb_a1M_window1"] = q_Hbb_a1.M()
                            if q_Wjj_a1.M() < MW_max:
                                result["Hbb_a1M_window2"] = q_Hbb_a1.M()
                                if q_Wjj_a1.M() < MW_offshell_max:
                                    result["Hbb_a1M_window3"] = q_Hbb_a1.M()
#                        result["WWM_a1"] = [[ q_Wjj_a1.M(), q_Wlnu1.M() ]]
#                        result["WWM_a1"] = [[ q_Wjj_a1.M(), WlnuMt ]]
#                        result["HWW_a1Mc"] = recoHWWMC1(q_Wjj_a1,lepton,event.met[0])

        return result




if __name__=="__main__":
  import sys
  from DelphesAnalysis.BaseControlPlots import runTest
  runTest(sys.argv[1], recoControlPlots())


예제 #6
0
    def process(self, event):
        #get information
        result = {}
        result["JetPt"] = []
        result["JetEta"] = []
        result["JetPhi"] = []
        result["BjetPt"] = []
        result["BjetEta"] = []
        result["BjetPhi"] = []
        nb = 0
        for jet in event.selectedJets:
            result["JetPt"].append(jet.PT)
            result["JetEta"].append(jet.Eta)
            result["JetPhi"].append(jet.Phi)
            if jet.BTag:
                nb += 1
                result["BjetPt"].append(jet.PT)
                result["BjetEta"].append(jet.Eta)
                result["BjetPhi"].append(jet.Phi)
        result["Njets"] = len(event.selectedJets)
        result["Nbjets"] = nb
        result["MET"] = event.MEt[0].MET
        result["METphi"] = event.MEt[0].Phi
        return result


if __name__ == "__main__":
    import sys
    from DelphesAnalysis.BaseControlPlots import runTest
    runTest(sys.argv[1], JetControlPlots())
예제 #7
0
        # declare histograms
        self.add("ElectronPt", "Electron Pt", 100, 0, 200)
        self.add("MuonPt", "Muon Pt", 100, 0, 200)
        self.add("ElectronEta", "Electron Eta", 50, -2.5, 2.5)
        self.add("MuonEta", "Muon Eta", 50, -2.5, 2.5)
        self.add("NMuons", "Muon multiplicity", 10, 0, 10)
        self.add("NElectrons", "Electron multiplicity", 10, 0, 10)

    def process(self, event):
        #get information
        result = {}
        result["ElectronPt"] = []
        result["MuonPt"] = []
        result["ElectronEta"] = []
        result["MuonEta"] = []
        for mu in event.muons:
            result["MuonPt"].append(mu.PT)
            result["MuonEta"].append(mu.Eta)
        for ele in event.electrons:
            result["ElectronPt"].append(ele.PT)
            result["ElectronEta"].append(ele.Eta)
        result["NMuons"] = event.muons.GetEntries()
        result["NElectrons"] = event.electrons.GetEntries()
        return result


if __name__ == "__main__":
    import sys
    from DelphesAnalysis.BaseControlPlots import runTest
    runTest(sys.argv[1], LeptonControlPlots())
예제 #8
0
        if len(event.topCandidates_H):
            top = event.topCandidates_H[0]
            result["bestHmass"] = (top[0].P4() + top[1].P4() + top[2].P4()).M()
            result["bestHpt"] = (top[0].P4() + top[1].P4() + top[2].P4()).Pt()
        if len(event.topCandidates_L):
            top = event.topCandidates_L[0]
            met = ROOT.TLorentzVector()
            met.SetPtEtaPhiE(top[2].MET, 0, top[2].Phi, top[2].MET)
            momentum = top[0].P4() + top[1].P4() + met
            momentum.SetPz(0)
            result["bestLmass"] = momentum.M()
            result["bestLpt"] = momentum.Pt()
        if len(event.topPairCandidates):
            top = event.topPairCandidates[0][:3]
            result["mass1"] = (top[0].P4() + top[1].P4() + top[2].P4()).M()
            result["pt1"] = (top[0].P4() + top[1].P4() + top[2].P4()).Pt()
            top = event.topPairCandidates[0][3:]
            met = ROOT.TLorentzVector()
            met.SetPtEtaPhiE(top[2].MET, 0, top[2].Phi, top[2].MET)
            momentum = top[0].P4() + top[1].P4() + met
            momentum.SetPz(0)
            result["mass2"] = momentum.M()
            result["pt2"] = momentum.Pt()
        return result


if __name__ == "__main__":
    import sys
    from DelphesAnalysis.BaseControlPlots import runTest
    runTest(sys.argv[1], TopControlPlots())
예제 #9
0
      if len(event.topCandidates_H):
        top = event.topCandidates_H[0]
        result["bestHmass"] = (top[0].P4()+top[1].P4()+top[2].P4()).M()
        result["bestHpt"] = (top[0].P4()+top[1].P4()+top[2].P4()).Pt()
      if len(event.topCandidates_L):
        top = event.topCandidates_L[0]
        met = ROOT.TLorentzVector()
        met.SetPtEtaPhiE(top[2].MET,0,top[2].Phi,top[2].MET)
        momentum = top[0].P4()+top[1].P4()+met
        momentum.SetPz(0)
        result["bestLmass"] = momentum.M()
        result["bestLpt"] = momentum.Pt()
      if len(event.topPairCandidates):
        top = event.topPairCandidates[0][:3]
        result["mass1"] = (top[0].P4()+top[1].P4()+top[2].P4()).M()
        result["pt1"] = (top[0].P4()+top[1].P4()+top[2].P4()).Pt()
        top = event.topPairCandidates[0][3:]
        met = ROOT.TLorentzVector()
        met.SetPtEtaPhiE(top[2].MET,0,top[2].Phi,top[2].MET)
        momentum = top[0].P4()+top[1].P4()+met
        momentum.SetPz(0)
        result["mass2"] = momentum.M()
        result["pt2"] =momentum.Pt()
      return result

if __name__=="__main__":
  import sys
  from DelphesAnalysis.BaseControlPlots import runTest
  runTest(sys.argv[1], TopControlPlots())