CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
PFTauL1TJetsMatching Class Reference

#include <PFTauL1TJetsMatching.h>

Inheritance diagram for PFTauL1TJetsMatching:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 PFTauL1TJetsMatching (const edm::ParameterSet &)
 
void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override
 
 ~PFTauL1TJetsMatching () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::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
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) 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::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Attributes

const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsL1JetSrc_
 
const double matchingR2_
 
const double minL1TPt_
 
const double minTauPt_
 
const edm::EDGetTokenT< reco::PFTauCollectiontauSrc_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase 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

Definition at line 20 of file PFTauL1TJetsMatching.h.

Constructor & Destructor Documentation

PFTauL1TJetsMatching::PFTauL1TJetsMatching ( const edm::ParameterSet iConfig)
explicit

Definition at line 11 of file PFTauL1TJetsMatching.cc.

11  :
12  tauSrc_ ( consumes<reco::PFTauCollection>(iConfig.getParameter<edm::InputTag>("TauSrc" ) ) ),
13  L1JetSrc_ ( consumes<trigger::TriggerFilterObjectWithRefs>(iConfig.getParameter<edm::InputTag>("L1JetSrc") ) ),
14  matchingR2_ ( iConfig.getParameter<double>("MatchingdR")*iConfig.getParameter<double>("MatchingdR") ),
15  minTauPt_ (iConfig.getParameter<double>("MinTauPt") ),
16  minL1TPt_ (iConfig.getParameter<double>("MinL1TPt") )
17 {
18  produces<reco::PFTauCollection>();
19 }
T getParameter(std::string const &) const
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > L1JetSrc_
const edm::EDGetTokenT< reco::PFTauCollection > tauSrc_
PFTauL1TJetsMatching::~PFTauL1TJetsMatching ( )
override

Definition at line 20 of file PFTauL1TJetsMatching.cc.

20 { }

Member Function Documentation

void PFTauL1TJetsMatching::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 58 of file PFTauL1TJetsMatching.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ConfigurationDescriptions::setComment(), and edm::ParameterDescriptionNode::setComment().

59 {
61  desc.add<edm::InputTag>("L1JetSrc", edm::InputTag("hltL1VBFDiJetOR"))->setComment("Input filter objects passing L1 seed" );
62  desc.add<edm::InputTag>("TauSrc", edm::InputTag("hltSelectedPFTausTrackFindingLooseChargedIsolationAgainstMuon"))->setComment("Input collection of PFTaus");
63  desc.add<double> ("MatchingdR",0.5)->setComment("Maximum dR for matching between PFTaus and L1 filter jets");
64  desc.add<double> ("MinTauPt",20.0)->setComment("PFTaus above this pt will be considered");
65  desc.add<double> ("MinL1TPt",115.0)->setComment("L1T Objects above this pt will be considered");
66  descriptions.setComment("This module produces a collection of PFTaus matched to the leading jet passing the L1 seed filter.");
67  descriptions.add ("PFTauL1TJetsMatching",desc);
68 }
void setComment(std::string const &value)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void setComment(std::string const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void PFTauL1TJetsMatching::produce ( edm::StreamID  iSId,
edm::Event iEvent,
const edm::EventSetup iES 
) const
override

Definition at line 22 of file PFTauL1TJetsMatching.cc.

References reco::deltaR2(), edm::Event::getByToken(), trigger::TriggerRefsCollections::getObjects(), trackerHitRTTI::isMatched(), L1JetSrc_, matchingR2_, minL1TPt_, minTauPt_, eostools::move(), p4, EnergyCorrector::pt, edm::Event::put(), nano_cff::taus, tauSrc_, and trigger::TriggerL1Jet.

23 {
24  std::unique_ptr<reco::PFTauCollection> L1TmatchedPFTau(new reco::PFTauCollection);
25 
27  iEvent.getByToken(tauSrc_, taus);
28 
30  iEvent.getByToken(L1JetSrc_,L1Jets);
31 
32  l1t::JetVectorRef jetCandRefVec;
33  L1Jets->getObjects(trigger::TriggerL1Jet,jetCandRefVec);
34 
35  /* Loop over taus that must pass a certain minTauPt_ cut */
36  /* then loop over L1T jets that must pass minL1TPt_ */
37  /* and check whether they match, if yes -> include the taus in */
38  /* the new L1T matched PFTau collection */
39 
40  for(unsigned int iTau = 0; iTau < taus->size(); iTau++){
41  bool isMatched = false;
42  if ((*taus)[iTau].pt() > minTauPt_){
43  for (unsigned int iJet = 0; iJet < jetCandRefVec.size(); iJet++) {
44  if (jetCandRefVec[iJet]->pt() > minL1TPt_){
45 
46  if(reco::deltaR2((*taus)[iTau].p4(), jetCandRefVec[iJet]->p4()) < matchingR2_){
47  isMatched = true;
48  break;
49  }
50  }
51  }
52  }
53  if(isMatched) L1TmatchedPFTau->push_back((*taus)[iTau]);
54  }
55  iEvent.put(std::move(L1TmatchedPFTau));
56 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
std::vector< PFTau > PFTauCollection
collection of PFTau objects
Definition: PFTauFwd.h:9
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
std::vector< JetRef > JetVectorRef
Definition: Jet.h:14
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > L1JetSrc_
double p4[4]
Definition: TauolaWrapper.h:92
bool isMatched(TrackingRecHit const &hit)
T1 deltaR2(T1 eta1, T2 phi1, T3 eta2, T4 phi2)
Definition: deltaR.h:36
const edm::EDGetTokenT< reco::PFTauCollection > tauSrc_
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> PFTauL1TJetsMatching::L1JetSrc_
private

Definition at line 24 of file PFTauL1TJetsMatching.h.

Referenced by produce().

const double PFTauL1TJetsMatching::matchingR2_
private

Definition at line 25 of file PFTauL1TJetsMatching.h.

Referenced by produce().

const double PFTauL1TJetsMatching::minL1TPt_
private

Definition at line 27 of file PFTauL1TJetsMatching.h.

Referenced by produce().

const double PFTauL1TJetsMatching::minTauPt_
private

Definition at line 26 of file PFTauL1TJetsMatching.h.

Referenced by produce().

const edm::EDGetTokenT<reco::PFTauCollection> PFTauL1TJetsMatching::tauSrc_
private

Definition at line 23 of file PFTauL1TJetsMatching.h.

Referenced by produce().