CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
JetConstituentSelector< T, C > Class Template Reference
Inheritance diagram for JetConstituentSelector< T, C >:
edm::stream::EDProducer<>

Public Types

using ConstituentsOutput = C
 
using JetsOutput = std::vector< T >
 
using ValueType = typename C::value_type
 
- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Public Member Functions

ConstituentsOutput::value_type const initptr (edm::Ptr< reco::Candidate > const &dau) const
 
template<>
edm::Ptr< pat::PackedCandidate > const initptr (edm::Ptr< reco::Candidate > const &dau) const
 
template<>
edm::Ptr< pat::PackedGenParticle > const initptr (edm::Ptr< reco::Candidate > const &dau) const
 
 JetConstituentSelector (edm::ParameterSet const &params)
 
void produce (edm::Event &iEvent, edm::EventSetup const &iSetup) override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

StringCutObjectSelector< T > const selector_
 
edm::EDGetTokenT< edm::View< T > > const srcToken_
 

Detailed Description

template<class T, typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
class JetConstituentSelector< T, C >

Definition at line 32 of file JetConstituentSelector.cc.

Member Typedef Documentation

template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
using JetConstituentSelector< T, C >::ConstituentsOutput = C

Definition at line 35 of file JetConstituentSelector.cc.

template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
using JetConstituentSelector< T, C >::JetsOutput = std::vector<T>

Definition at line 34 of file JetConstituentSelector.cc.

template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
using JetConstituentSelector< T, C >::ValueType = typename C::value_type

Definition at line 36 of file JetConstituentSelector.cc.

Constructor & Destructor Documentation

template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
JetConstituentSelector< T, C >::JetConstituentSelector ( edm::ParameterSet const &  params)
inline

Definition at line 38 of file JetConstituentSelector.cc.

References edm::ParameterSet::getParameter(), CalibrationSummaryClient_cfi::params, JetConstituentSelector< T, C >::selector_, and AlCaHLTBitMon_QueryRunRegistry::string.

39  : srcToken_{consumes<edm::View<T>>(params.getParameter<edm::InputTag>("src"))},
40  selector_{params.getParameter<std::string>("cut")} {
41  produces<JetsOutput>();
42  produces<ConstituentsOutput>("constituents");
43  }
StringCutObjectSelector< T > const selector_
edm::EDGetTokenT< edm::View< T > > const srcToken_

Member Function Documentation

template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
static void JetConstituentSelector< T, C >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inlinestatic

Definition at line 45 of file JetConstituentSelector.cc.

References edm::ParameterSetDescription::add(), edm::ConfigurationDescriptions::addDefault(), and AlCaHLTBitMon_QueryRunRegistry::string.

45  {
47  desc.add<edm::InputTag>("src")->setComment("InputTag used for retrieving jets in event.");
48  desc.add<std::string>("cut")->setComment(
49  "Cut used by which to select jets. For example:\n"
50  " \"pt > 100.0 && abs(rapidity()) < 2.4\".");
51 
52  // addDefault must be used here instead of add unless this function is specialized
53  // for different sets of template parameter types. Each specialization would need
54  // a different module label. Otherwise the generated cfi filenames will conflict
55  // for the different plugins.
56  descriptions.addDefault(desc);
57  }
void addDefault(ParameterSetDescription const &psetDescription)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
ConstituentsOutput::value_type const JetConstituentSelector< T, C >::initptr ( edm::Ptr< reco::Candidate > const &  dau) const
inline

Definition at line 60 of file JetConstituentSelector.cc.

Referenced by JetConstituentSelector< T, C >::produce().

60  {
61  return typename ConstituentsOutput::value_type(dau, dau);
62  }
template<>
edm::Ptr< pat::PackedCandidate > const JetConstituentSelector< pat::Jet, std::vector< edm::Ptr< pat::PackedCandidate > > >::initptr ( edm::Ptr< reco::Candidate > const &  dau) const

Definition at line 95 of file JetConstituentSelector.cc.

96  {
98  return retval;
99 }
template<>
edm::Ptr< pat::PackedGenParticle > const JetConstituentSelector< reco::GenJet, std::vector< edm::Ptr< pat::PackedGenParticle > > >::initptr ( edm::Ptr< reco::Candidate > const &  dau) const

Definition at line 103 of file JetConstituentSelector.cc.

104  {
106  return retval;
107 }
template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
void JetConstituentSelector< T, C >::produce ( edm::Event iEvent,
edm::EventSetup const &  iSetup 
)
inlineoverride

Definition at line 64 of file JetConstituentSelector.cc.

References edm::Event::getByToken(), JetConstituentSelector< T, C >::initptr(), metsig::jet, singleTopDQM_cfi::jets, eostools::move(), edm::Event::put(), JetConstituentSelector< T, C >::selector_, and JetConstituentSelector< T, C >::srcToken_.

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

64  {
65  auto jets = std::make_unique<JetsOutput>();
66  auto candsOut = std::make_unique<ConstituentsOutput>();
67 
69  iEvent.getByToken(srcToken_, h_jets);
70 
71  // Now set the Ptrs with the orphan handles.
72  for (auto const& jet : *h_jets) {
73  // Check the selection
74  if (selector_(jet)) {
75  // Add the jets that pass to the output collection
76  jets->push_back(jet);
77 
78  for (unsigned int ida{}; ida < jet.numberOfDaughters(); ++ida) {
79  candsOut->emplace_back(initptr(jet.daughterPtr(ida)));
80  }
81  }
82  }
83 
84  iEvent.put(std::move(jets));
85  iEvent.put(std::move(candsOut), "constituents");
86  }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
StringCutObjectSelector< T > const selector_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
edm::EDGetTokenT< edm::View< T > > const srcToken_
def move(src, dest)
Definition: eostools.py:511
ConstituentsOutput::value_type const initptr(edm::Ptr< reco::Candidate > const &dau) const

Member Data Documentation

template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
StringCutObjectSelector<T> const JetConstituentSelector< T, C >::selector_
private
template<class T , typename C = std::vector<typename T::ConstituentTypeFwdPtr>>
edm::EDGetTokenT<edm::View<T> > const JetConstituentSelector< T, C >::srcToken_
private

Definition at line 89 of file JetConstituentSelector.cc.

Referenced by JetConstituentSelector< T, C >::produce().