File indexing completed on 2023-03-17 11:16:07
0001 #include "PhysicsTools/NanoAOD/plugins/NanoAODBaseCrossCleaner.h"
0002
0003 class NanoAODSimpleCrossCleaner : public NanoAODBaseCrossCleaner {
0004 public:
0005 NanoAODSimpleCrossCleaner(const edm::ParameterSet& p) : NanoAODBaseCrossCleaner(p) {}
0006 ~NanoAODSimpleCrossCleaner() override {}
0007
0008 void objectSelection(const edm::View<pat::Jet>& jets,
0009 const edm::View<pat::Muon>& muons,
0010 const edm::View<pat::Electron>& eles,
0011 const edm::View<pat::Tau>& taus,
0012 const edm::View<pat::Photon>& photons,
0013 std::vector<uint8_t>& jetBits,
0014 std::vector<uint8_t>& muonBits,
0015 std::vector<uint8_t>& eleBits,
0016 std::vector<uint8_t>& tauBits,
0017 std::vector<uint8_t>& photonBits) override {
0018 for (size_t i = 0; i < jets.size(); i++) {
0019 for (const auto& m : jets[i].overlaps("muons")) {
0020 if (muonBits[m.key()])
0021 jetBits[i] = 0;
0022 }
0023 for (const auto& m : jets[i].overlaps("electrons")) {
0024 if (eleBits[m.key()])
0025 jetBits[i] = 0;
0026 }
0027 }
0028 }
0029 };
0030 DEFINE_FWK_MODULE(NanoAODSimpleCrossCleaner);