CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
HLTJetL1TMatchProducer< T > Class Template Reference

#include <HLTJetL1TMatchProducer.h>

Inheritance diagram for HLTJetL1TMatchProducer< T >:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginJob ()
 
 HLTJetL1TMatchProducer (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~HLTJetL1TMatchProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Attributes

double DeltaR_
 
edm::InputTag jetsInput_
 
edm::InputTag L1Jets_
 
edm::EDGetTokenT< std::vector< T > > m_theJetToken
 
edm::EDGetTokenT< l1t::JetBxCollectionm_theL1JetToken
 

Additional Inherited Members

- 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 Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

template<typename T>
class HLTJetL1TMatchProducer< T >

Definition at line 21 of file HLTJetL1TMatchProducer.h.

Constructor & Destructor Documentation

template<typename T >
HLTJetL1TMatchProducer< T >::HLTJetL1TMatchProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 14 of file HLTJetL1TMatchProducer.cc.

15 {
16  jetsInput_ = iConfig.template getParameter<edm::InputTag>("jetsInput");
17  L1Jets_ = iConfig.template getParameter<edm::InputTag>("L1Jets");
18  DeltaR_ = iConfig.template getParameter<double>("DeltaR");
19 
20  typedef std::vector<T> TCollection;
21  m_theJetToken = consumes<TCollection>(jetsInput_);
22  m_theL1JetToken = consumes<l1t::JetBxCollection>(L1Jets_);
23  produces<TCollection> ();
24 
25 }
edm::EDGetTokenT< std::vector< T > > m_theJetToken
edm::EDGetTokenT< l1t::JetBxCollection > m_theL1JetToken
template<typename T >
HLTJetL1TMatchProducer< T >::~HLTJetL1TMatchProducer ( )
overridedefault

Member Function Documentation

template<typename T >
void HLTJetL1TMatchProducer< T >::beginJob ( void  )
virtual

Definition at line 28 of file HLTJetL1TMatchProducer.cc.

References HLTJetL1TMatchProducer< T >::~HLTJetL1TMatchProducer().

29 {
30 
31 }
template<typename T >
void HLTJetL1TMatchProducer< T >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 37 of file HLTJetL1TMatchProducer.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and defaultModuleLabel().

37  {
39  desc.add<edm::InputTag>("jetsInput",edm::InputTag("hltAntiKT5PFJets"));
40  desc.add<edm::InputTag>("L1Jets",edm::InputTag("hltCaloStage2Digis"));
41  desc.add<double>("DeltaR",0.5);
42  descriptions.add(defaultModuleLabel<HLTJetL1TMatchProducer<T>>(), desc);
43 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<typename T >
void HLTJetL1TMatchProducer< T >::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 46 of file HLTJetL1TMatchProducer.cc.

References BXVector< T >::begin(), hiPixelPairStep_cff::deltaPhi, BXVector< T >::end(), edm::Event::getByToken(), BXVector< T >::getFirstBX(), BXVector< T >::getLastBX(), trackerHitRTTI::isMatched(), edm::HandleBase::isValid(), fwrapper::jets, eostools::move(), edm::Event::put(), mps_fire::result, and mathSSE::sqrt().

47 {
48 
49  typedef std::vector<T> TCollection;
50 
52  iEvent.getByToken(m_theJetToken, jets);
53 
54  std::unique_ptr<TCollection> result (new TCollection);
55 
56 
58  iEvent.getByToken(m_theL1JetToken,l1Jets);
59  bool trigger_bx_only = true; // selection of BX not implemented
60 
61  if (l1Jets.isValid()){
62  typename TCollection::const_iterator jet_iter;
63  for (jet_iter = jets->begin(); jet_iter != jets->end(); ++jet_iter) {
64  bool isMatched=false;
65  for (int ibx = l1Jets->getFirstBX(); ibx <= l1Jets->getLastBX(); ++ibx) {
66  if (trigger_bx_only && (ibx != 0)) continue;
67  for (auto it=l1Jets->begin(ibx); it!=l1Jets->end(ibx); it++){
68  if (it->et() == 0) continue; // if you don't care about L1T candidates with zero ET.
69  const double deltaeta=jet_iter->eta()-it->eta();
70  const double deltaphi=deltaPhi(jet_iter->phi(),it->phi());
71  if (sqrt(deltaeta*deltaeta+deltaphi*deltaphi) < DeltaR_) isMatched=true;
72  //cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
73  }
74  }
75  if (isMatched==true) result->push_back(*jet_iter);
76  } // jet_iter
77  } else {
78  edm::LogWarning("MissingProduct") << "L1Upgrade l1Jets bx collection not found." << std::endl;
79  }
80 
81  iEvent.put(std::move(result));
82 
83 }
const_iterator end(int bx) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:127
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:508
edm::EDGetTokenT< std::vector< T > > m_theJetToken
T sqrt(T t)
Definition: SSEVec.h:18
vector< PseudoJet > jets
bool isMatched(TrackingRecHit const &hit)
bool isValid() const
Definition: HandleBase.h:74
int getFirstBX() const
int getLastBX() const
const_iterator begin(int bx) const
edm::EDGetTokenT< l1t::JetBxCollection > m_theL1JetToken
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

template<typename T >
double HLTJetL1TMatchProducer< T >::DeltaR_
private

Definition at line 34 of file HLTJetL1TMatchProducer.h.

template<typename T >
edm::InputTag HLTJetL1TMatchProducer< T >::jetsInput_
private

Definition at line 31 of file HLTJetL1TMatchProducer.h.

template<typename T >
edm::InputTag HLTJetL1TMatchProducer< T >::L1Jets_
private

Definition at line 32 of file HLTJetL1TMatchProducer.h.

template<typename T >
edm::EDGetTokenT<std::vector<T> > HLTJetL1TMatchProducer< T >::m_theJetToken
private

Definition at line 29 of file HLTJetL1TMatchProducer.h.

template<typename T >
edm::EDGetTokenT<l1t::JetBxCollection> HLTJetL1TMatchProducer< T >::m_theL1JetToken
private

Definition at line 30 of file HLTJetL1TMatchProducer.h.