CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Attributes
pat::PATJetSlimmer Class Reference

Matcher of reconstructed objects to L1 Muons. More...

Inheritance diagram for pat::PATJetSlimmer:
edm::stream::EDProducer<>

Public Member Functions

 PATJetSlimmer (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 ~PATJetSlimmer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

const StringCutObjectSelector
< pat::Jet
dropDaughters_
 
const StringCutObjectSelector
< pat::Jet
dropJetVars_
 
const StringCutObjectSelector
< pat::Jet
dropSpecific_
 
const StringCutObjectSelector
< pat::Jet
dropTagInfos_
 
const StringCutObjectSelector
< pat::Jet
dropTrackRefs_
 
std::unique_ptr
< pat::ObjectModifier
< pat::Jet > > 
jetModifier_
 
const edm::EDGetTokenT
< edm::View< pat::Jet > > 
jets_
 
const bool mayNeedDaughterMap_
 
const bool mixedDaughters_
 
const bool modifyJet_
 
edm::EDGetTokenT
< edm::Association
< pat::PackedCandidateCollection > > 
pf2pc_
 
edm::EDGetTokenT
< edm::ValueMap
< reco::CandidatePtr > > 
pf2pcAny_
 
const StringCutObjectSelector
< pat::Jet
rekeyDaughters_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Matcher of reconstructed objects to L1 Muons.

Author
Giovanni Petrucciani

Definition at line 26 of file PATJetSlimmer.cc.

Constructor & Destructor Documentation

pat::PATJetSlimmer::PATJetSlimmer ( const edm::ParameterSet iConfig)
explicit

Definition at line 45 of file PATJetSlimmer.cc.

References edm::ParameterSet::getParameter(), jetModifier_, mayNeedDaughterMap_, mixedDaughters_, modifyJet_, pf2pc_, and pf2pcAny_.

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")) {
57  if (mayNeedDaughterMap_) {
58  if (mixedDaughters_) {
59  pf2pcAny_ =
60  consumes<edm::ValueMap<reco::CandidatePtr>>(iConfig.getParameter<edm::InputTag>("packedPFCandidates"));
61  } else {
62  pf2pc_ = consumes<edm::Association<pat::PackedCandidateCollection>>(
63  iConfig.getParameter<edm::InputTag>("packedPFCandidates"));
64  }
65  }
66  if (modifyJet_) {
67  const edm::ParameterSet& mod_config = iConfig.getParameter<edm::ParameterSet>("modifierConfig");
68  jetModifier_ = std::make_unique<pat::ObjectModifier<pat::Jet>>(mod_config, consumesCollector());
69  }
70  produces<std::vector<pat::Jet>>();
71 }
std::unique_ptr< pat::ObjectModifier< pat::Jet > > jetModifier_
const StringCutObjectSelector< pat::Jet > dropDaughters_
edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > pf2pc_
const StringCutObjectSelector< pat::Jet > dropTrackRefs_
edm::EDGetTokenT< edm::ValueMap< reco::CandidatePtr > > pf2pcAny_
const bool mayNeedDaughterMap_
const bool modifyJet_
const StringCutObjectSelector< pat::Jet > dropSpecific_
const StringCutObjectSelector< pat::Jet > dropTagInfos_
const StringCutObjectSelector< pat::Jet > rekeyDaughters_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::EDGetTokenT< edm::View< pat::Jet > > jets_
const StringCutObjectSelector< pat::Jet > dropJetVars_
const bool mixedDaughters_
pat::PATJetSlimmer::~PATJetSlimmer ( )
inlineoverride

Definition at line 29 of file PATJetSlimmer.cc.

29 {}

Member Function Documentation

void pat::PATJetSlimmer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 73 of file PATJetSlimmer.cc.

References reco::CompositePtrCandidate::addDaughter(), pat::Jet::caloTowersFwdPtr_, edm::OwnVector< T, P >::clear(), pat::Jet::clearDaughters(), pat::Jet::daughterPtrVector(), edm::Event::getByToken(), mps_fire::i, metsig::jet, submitPVResolutionJobs::key, eostools::move(), submitPVResolutionJobs::out, pat::Jet::pfCandidatesFwdPtr_, edm::Event::put(), edm::refToPtr(), pat::Jet::setAssociatedTracks(), reco::Jet::setNPasses(), pat::Jet::specificCalo_, pat::Jet::specificPF_, alcazmumu_cfi::src, pat::Jet::tagInfoLabels_, pat::Jet::tagInfos_, and pat::Jet::tagInfosFwdPtr_.

73  {
74  using namespace edm;
75  using namespace std;
76 
77  if (modifyJet_)
78  jetModifier_->setEventContent(iSetup);
79 
81  iEvent.getByToken(jets_, src);
84  if (mayNeedDaughterMap_) {
85  if (mixedDaughters_) {
86  iEvent.getByToken(pf2pcAny_, pf2pcAny);
87  } else {
88  iEvent.getByToken(pf2pc_, pf2pc);
89  }
90  }
91 
92  auto out = std::make_unique<std::vector<pat::Jet>>();
93  out->reserve(src->size());
94 
95  if (modifyJet_) {
96  jetModifier_->setEvent(iEvent);
97  }
98 
99  for (edm::View<pat::Jet>::const_iterator it = src->begin(), ed = src->end(); it != ed; ++it) {
100  out->push_back(*it);
101  pat::Jet& jet = out->back();
102 
103  if (modifyJet_) {
104  jetModifier_->modify(jet);
105  }
106 
107  if (dropTagInfos_(*it)) {
108  jet.tagInfoLabels_.clear();
109  jet.tagInfos_.clear();
110  jet.tagInfosFwdPtr_.clear();
111  }
112  if (dropJetVars_(*it)) {
113  // jet.setJetArea(0);
114  jet.setNPasses(0);
115  // jet.setPileup(0);
116  }
117  if (dropTrackRefs_(*it)) {
119  }
120  if (dropDaughters_(*it)) {
121  jet.clearDaughters();
122  jet.pfCandidatesFwdPtr_.clear();
123  jet.caloTowersFwdPtr_.clear();
124  } else if (rekeyDaughters_(*it)) { //rekey
125  //copy old
127  jet.clearDaughters();
128  if (mixedDaughters_) {
129  std::vector<reco::CandidatePtr> ptrs;
130  for (const reco::CandidatePtr& oldptr : old) {
131  ptrs.push_back((*pf2pcAny)[oldptr]);
132  }
133  std::sort(ptrs.begin(), ptrs.end());
134  for (const reco::CandidatePtr& newptr : ptrs) {
135  jet.addDaughter(newptr);
136  }
137  } else {
138  std::map<unsigned int, reco::CandidatePtr> ptrs;
139  for (unsigned int i = 0; i < old.size(); i++) {
140  // jet.addDaughter(refToPtr((*pf2pc)[old[i]]));
141  ptrs[((*pf2pc)[old[i]]).key()] = refToPtr((*pf2pc)[old[i]]);
142  }
143  for (std::map<unsigned int, reco::CandidatePtr>::iterator itp = ptrs.begin(); itp != ptrs.end();
144  itp++) //iterate on sorted items
145  {
146  jet.addDaughter(itp->second);
147  }
148  }
149  }
150  if (dropSpecific_(*it)) {
151  // FIXME add method in pat::Jet
152  jet.specificCalo_.clear();
153  jet.specificPF_.clear();
154  }
155  // if (dropJetCorrFactors_(*it)) {
156  // // FIXME add method in pat::Jet
157  // jet.jetEnergyCorrections_.clear();
158  // }
159  }
160 
161  iEvent.put(std::move(out));
162 }
std::unique_ptr< pat::ObjectModifier< pat::Jet > > jetModifier_
const StringCutObjectSelector< pat::Jet > dropDaughters_
CaloTowerFwdPtrVector caloTowersFwdPtr_
Definition: Jet.h:598
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
Definition: RefToPtr.h:18
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
TagInfoFwdPtrCollection tagInfosFwdPtr_
Definition: Jet.h:637
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_
Definition: Jet.h:648
const bool modifyJet_
edm::OwnVector< reco::BaseTagInfo > tagInfos_
Definition: Jet.h:636
std::vector< CaloSpecific > specificCalo_
Definition: Jet.h:646
void clearDaughters() override
clear daughter references
Definition: Jet.h:500
def move
Definition: eostools.py:511
void clear()
Definition: OwnVector.h:481
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_
Definition: Jet.h:635
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
Analysis-level calorimeter jet class.
Definition: Jet.h:77
const edm::EDGetTokenT< edm::View< pat::Jet > > jets_
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.
Definition: Jet.h:111
reco::PFCandidateFwdPtrVector pfCandidatesFwdPtr_
Definition: Jet.h:603
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
const bool mixedDaughters_
void addDaughter(const CandidatePtr &)
add a daughter via a reference

Member Data Documentation

const StringCutObjectSelector<pat::Jet> pat::PATJetSlimmer::dropDaughters_
private

Definition at line 37 of file PATJetSlimmer.cc.

const StringCutObjectSelector<pat::Jet> pat::PATJetSlimmer::dropJetVars_
private

Definition at line 37 of file PATJetSlimmer.cc.

const StringCutObjectSelector<pat::Jet> pat::PATJetSlimmer::dropSpecific_
private

Definition at line 37 of file PATJetSlimmer.cc.

const StringCutObjectSelector<pat::Jet> pat::PATJetSlimmer::dropTagInfos_
private

Definition at line 37 of file PATJetSlimmer.cc.

const StringCutObjectSelector<pat::Jet> pat::PATJetSlimmer::dropTrackRefs_
private

Definition at line 37 of file PATJetSlimmer.cc.

std::unique_ptr<pat::ObjectModifier<pat::Jet> > pat::PATJetSlimmer::jetModifier_
private

Definition at line 40 of file PATJetSlimmer.cc.

Referenced by PATJetSlimmer().

const edm::EDGetTokenT<edm::View<pat::Jet> > pat::PATJetSlimmer::jets_
private

Definition at line 36 of file PATJetSlimmer.cc.

const bool pat::PATJetSlimmer::mayNeedDaughterMap_
private

Definition at line 39 of file PATJetSlimmer.cc.

Referenced by PATJetSlimmer().

const bool pat::PATJetSlimmer::mixedDaughters_
private

Definition at line 39 of file PATJetSlimmer.cc.

Referenced by PATJetSlimmer().

const bool pat::PATJetSlimmer::modifyJet_
private

Definition at line 39 of file PATJetSlimmer.cc.

Referenced by PATJetSlimmer().

edm::EDGetTokenT<edm::Association<pat::PackedCandidateCollection> > pat::PATJetSlimmer::pf2pc_
private

Definition at line 34 of file PATJetSlimmer.cc.

Referenced by PATJetSlimmer().

edm::EDGetTokenT<edm::ValueMap<reco::CandidatePtr> > pat::PATJetSlimmer::pf2pcAny_
private

Definition at line 35 of file PATJetSlimmer.cc.

Referenced by PATJetSlimmer().

const StringCutObjectSelector<pat::Jet> pat::PATJetSlimmer::rekeyDaughters_
private

Definition at line 37 of file PATJetSlimmer.cc.