def select_jets(jets, mu, el, selected_muons, selected_electrons, pt_cut,
                aeta_cut, jet_lepton_dr_cut, btag_cut):
    this_worker = get_worker_wrapper()
    NUMPY_LIB = this_worker.NUMPY_LIB
    backend = this_worker.backend

    passes_id = jets.puId == True
    passes_aeta = NUMPY_LIB.abs(jets.eta) < aeta_cut
    passes_pt = jets.pt > pt_cut
    passes_btag = jets.btag > btag_cut

    selected_jets = passes_id & passes_aeta & passes_pt

    jets_d = {"eta": jets.eta, "phi": jets.phi, "offsets": jets.offsets}
    jets_pass_dr_mu = ha_kernels.mask_deltar_first(backend, jets_d,
                                                   selected_jets, {
                                                       "eta": mu.eta,
                                                       "phi": mu.phi,
                                                       "offsets": mu.offsets
                                                   }, selected_muons,
                                                   jet_lepton_dr_cut)

    jets_pass_dr_el = ha_kernels.mask_deltar_first(backend, jets_d,
                                                   selected_jets, {
                                                       "eta": el.eta,
                                                       "phi": el.phi,
                                                       "offsets": el.offsets
                                                   }, selected_electrons,
                                                   jet_lepton_dr_cut)

    selected_jets_no_lepton = selected_jets & jets_pass_dr_mu & jets_pass_dr_el
    selected_jets_btag = selected_jets_no_lepton & passes_btag

    return selected_jets_no_lepton, selected_jets_btag
示例#2
0
 def test_kernel_mask_deltar_first(self):
     print("kernel_mask_deltar_first")
     dataset = self.dataset
     muons = dataset.structs["Muon"][0]
     jet = dataset.structs["Jet"][0]
     sel_ev = self.NUMPY_LIB.ones(muons.numevents(),
                                  dtype=self.NUMPY_LIB.bool)
     sel_mu = self.NUMPY_LIB.ones(muons.numobjects(),
                                  dtype=self.NUMPY_LIB.bool)
     sel_jet = jet.pt > 10
     muons_matched_to_jet = kernels.mask_deltar_first(
         self.ha,
         {
             "offsets": muons.offsets,
             "eta": muons.eta,
             "phi": muons.phi
         },
         sel_mu,
         {
             "offsets": jet.offsets,
             "eta": jet.eta,
             "phi": jet.phi
         },
         sel_jet,
         0.3,
     )
     self.assertEqual(len(muons_matched_to_jet), muons.numobjects())
     self.assertEqual(muons_matched_to_jet.sum(), 1698542)
     return muons.numevents()
示例#3
0
def test_kernel_mask_deltar_first(dataset):
    muons = dataset.structs["Muon"][0]
    jet = dataset.structs["Jet"][0]
    sel_ev = nplib.ones(muons.numevents(), dtype=nplib.bool)
    sel_mu = nplib.ones(muons.numobjects(), dtype=nplib.bool)
    sel_jet = (jet.pt > 10)
    muons_matched_to_jet = kernels.mask_deltar_first(
        backend,
        {"offsets": muons.offsets, "eta": muons.eta, "phi": muons.phi},
        sel_mu,
        {"offsets": jet.offsets, "eta": jet.eta, "phi": jet.phi},
        sel_jet, 0.3
    )