38 lowPtElectronSel_(
params.getParameter<
std::
string>(
"lowPtElectronSel")),
44 lowPtElectronName_(
params.getParameter<
std::
string>(
"lowPtElectronName")),
49 produces<nanoaod::FlatTable>(
"jets");
50 produces<nanoaod::FlatTable>(
"muons");
51 produces<nanoaod::FlatTable>(
"electrons");
53 produces<nanoaod::FlatTable>(
"lowPtElectrons");
54 produces<nanoaod::FlatTable>(
"taus");
55 produces<nanoaod::FlatTable>(
"photons");
73 std::vector<uint8_t>
jets;
74 for (
const auto&
j : *jetsIn) {
77 auto jetsTable = std::make_unique<nanoaod::FlatTable>(jetsIn->size(),
jetName_,
false,
true);
81 std::vector<uint8_t>
muons;
82 for (
const auto&
m : *muonsIn) {
85 auto muonsTable = std::make_unique<nanoaod::FlatTable>(muonsIn->size(),
muonName_,
false,
true);
89 std::vector<uint8_t>
eles;
90 for (
const auto&
e : *electronsIn) {
93 auto electronsTable = std::make_unique<nanoaod::FlatTable>(electronsIn->size(),
electronName_,
false,
true);
96 std::vector<uint8_t> lowPtEles;
99 for (
const auto&
e : *lowPtElectronsIn) {
106 std::vector<uint8_t>
taus;
107 for (
const auto&
t : *tausIn) {
110 auto tausTable = std::make_unique<nanoaod::FlatTable>(tausIn->size(),
tauName_,
false,
true);
115 for (
const auto&
p : *photonsIn) {
118 auto photonsTable = std::make_unique<nanoaod::FlatTable>(photonsIn->size(),
photonName_,
false,
true);
135 auto lowPtElectronsTable =
136 std::make_unique<nanoaod::FlatTable>(lowPtElectronsIn->size(),
lowPtElectronName_,
false,
true);
137 lowPtElectronsTable->addColumn<uint8_t>(
name_, lowPtEles,
doc_);
edm::InputTag lowPtElectronsTag_
const edm::EDGetTokenT< edm::View< pat::Photon > > photons_
void endStream() override
const edm::EDGetTokenT< edm::View< pat::Jet > > jets_
const StringCutObjectSelector< pat::Jet > jetSel_
const StringCutObjectSelector< pat::Muon > muonSel_
const edm::EDGetTokenT< edm::View< pat::Tau > > taus_
void addDefault(ParameterSetDescription const &psetDescription)
const StringCutObjectSelector< pat::Photon > photonSel_
const std::string tauName_
edm::EDGetTokenT< edm::View< pat::Electron > > lowPtElectrons_
#define DEFINE_FWK_MODULE(type)
void beginStream(edm::StreamID) override
void produce(edm::Event &, const edm::EventSetup &) override
const std::string jetName_
const std::string lowPtElectronName_
const StringCutObjectSelector< pat::Tau > tauSel_
const std::string muonName_
~NanoAODBaseCrossCleaner() override
const std::string photonName_
const edm::EDGetTokenT< edm::View< pat::Electron > > electrons_
const std::string electronName_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const StringCutObjectSelector< pat::Electron > electronSel_
const edm::EDGetTokenT< edm::View< pat::Muon > > muons_
virtual void objectSelection(const edm::View< pat::Jet > &jets, const edm::View< pat::Muon > &muons, const edm::View< pat::Electron > &eles, const edm::View< pat::Tau > &taus, const edm::View< pat::Photon > &photons, std::vector< uint8_t > &jetBits, std::vector< uint8_t > &muonBits, std::vector< uint8_t > &eleBits, std::vector< uint8_t > &tauBits, std::vector< uint8_t > &photonBits)
NanoAODBaseCrossCleaner(const edm::ParameterSet &)
const StringCutObjectSelector< pat::Electron > lowPtElectronSel_