Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:23:42

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;  //prefer muons
0022       }
0023       for (const auto& m : jets[i].overlaps("electrons")) {
0024         if (eleBits[m.key()])
0025           jetBits[i] = 0;  //prefer electrons
0026       }
0027     }
0028   }
0029 };
0030 DEFINE_FWK_MODULE(NanoAODSimpleCrossCleaner);