46 : jets_(consumes<edm::
View<pat::
Jet>>(iConfig.getParameter<edm::
InputTag>(
"src"))),
47 dropJetVars_(iConfig.getParameter<std::
string>(
"dropJetVars")),
48 dropDaughters_(iConfig.getParameter<std::
string>(
"dropDaughters")),
49 rekeyDaughters_(iConfig.getParameter<std::
string>(
"rekeyDaughters")),
50 dropTrackRefs_(iConfig.getParameter<std::
string>(
"dropTrackRefs")),
51 dropSpecific_(iConfig.getParameter<std::
string>(
"dropSpecific")),
52 dropTagInfos_(iConfig.getParameter<std::
string>(
"dropTagInfos")),
53 modifyJet_(iConfig.getParameter<bool>(
"modifyJets")),
54 mayNeedDaughterMap_(iConfig.getParameter<std::
string>(
"dropDaughters") !=
"1" &&
55 iConfig.getParameter<std::
string>(
"rekeyDaughters") !=
"0"),
56 mixedDaughters_(iConfig.getParameter<bool>(
"mixedDaughters")) {
62 pf2pc_ = consumes<edm::Association<pat::PackedCandidateCollection>>(
68 jetModifier_ = std::make_unique<pat::ObjectModifier<pat::Jet>>(mod_config, consumesCollector());
70 produces<std::vector<pat::Jet>>();
78 jetModifier_->setEventContent(iSetup);
84 if (mayNeedDaughterMap_) {
85 if (mixedDaughters_) {
92 auto out = std::make_unique<std::vector<pat::Jet>>();
96 jetModifier_->setEvent(iEvent);
104 jetModifier_->modify(jet);
107 if (dropTagInfos_(*it)) {
112 if (dropJetVars_(*it)) {
117 if (dropTrackRefs_(*it)) {
120 if (dropDaughters_(*it)) {
124 }
else if (rekeyDaughters_(*it)) {
128 if (mixedDaughters_) {
129 std::vector<reco::CandidatePtr> ptrs;
131 ptrs.push_back((*pf2pcAny)[oldptr]);
133 std::sort(ptrs.begin(), ptrs.end());
138 std::map<unsigned int, reco::CandidatePtr> ptrs;
139 for (
unsigned int i = 0;
i < old.size();
i++) {
143 for (std::map<unsigned int, reco::CandidatePtr>::iterator itp = ptrs.begin(); itp != ptrs.end();
150 if (dropSpecific_(*it)) {
std::unique_ptr< pat::ObjectModifier< pat::Jet > > jetModifier_
const StringCutObjectSelector< pat::Jet > dropDaughters_
~PATJetSlimmer() override
CaloTowerFwdPtrVector caloTowersFwdPtr_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
TagInfoFwdPtrCollection tagInfosFwdPtr_
edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > pf2pc_
const StringCutObjectSelector< pat::Jet > dropTrackRefs_
edm::EDGetTokenT< edm::ValueMap< reco::CandidatePtr > > pf2pcAny_
const bool mayNeedDaughterMap_
std::vector< PFSpecific > specificPF_
edm::OwnVector< reco::BaseTagInfo > tagInfos_
std::vector< CaloSpecific > specificCalo_
void clearDaughters() override
clear daughter references
const StringCutObjectSelector< pat::Jet > dropSpecific_
const StringCutObjectSelector< pat::Jet > dropTagInfos_
tuple key
prepare the HTCondor submission files and eventually submit them
std::vector< std::string > tagInfoLabels_
std::vector< CandidatePtr > daughters
collection of references to daughters
const StringCutObjectSelector< pat::Jet > rekeyDaughters_
void setAssociatedTracks(const reco::TrackRefVector &tracks)
method to set the vector of refs to the tracks associated to this jet
T getParameter(std::string const &) const
Analysis-level calorimeter jet class.
const edm::EDGetTokenT< edm::View< pat::Jet > > jets_
PATJetSlimmer(const edm::ParameterSet &iConfig)
const reco::CompositePtrCandidate::daughters & daughterPtrVector() const override
references to daughtes
const StringCutObjectSelector< pat::Jet > dropJetVars_
virtual void setNPasses(int fPasses)
Set number of passes taken by algorithm.
reco::PFCandidateFwdPtrVector pfCandidatesFwdPtr_
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
const bool mixedDaughters_
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
void addDaughter(const CandidatePtr &)
add a daughter via a reference
Matcher of reconstructed objects to L1 Muons.