CMS 3D CMS Logo

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

#include <TopQuarkAnalysis/TopJetProducers/src/CATopJetTagger.cc>

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

Public Member Functions

 CATopJetTagger (const edm::ParameterSet &)
 
 ~CATopJetTagger () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
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)
 
 ~ProducerBase () noexcept(false) override
 
- 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
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
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)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override
 

Private Attributes

const edm::EDGetTokenT< edm::View< reco::Jet > > input_jet_token_
 
const edm::InputTag src_
 
const double TopMass_
 
const bool verbose_
 
const double WMass_
 

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
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
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

Description: This is a tagger to identify boosted top quark jets.

Implementation: We input the jets from CATopJetProducer and make kinematic cuts on the jet mass and the minimum invariant mass pairing of the subjets. Described in "Top-tagging: A Method for Identifying Boosted Hadronic Tops" David E. Kaplan, Keith Rehermann, Matthew D. Schwartz, Brock Tweedie arXiv:0806.0848v1 [hep-ph]

Produces: A list of pair<Jet,CATopJetTagInfo> that represents the tag decision.

Definition at line 65 of file CATopJetTagger.h.

Constructor & Destructor Documentation

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

Definition at line 20 of file CATopJetTagger.cc.

20  :
21  src_(iConfig.getParameter<InputTag>("src") ),
22  TopMass_(iConfig.getParameter<double>("TopMass") ),
23  WMass_(iConfig.getParameter<double>("WMass") ),
24  verbose_(iConfig.getParameter<bool>("verbose") ),
26 {
27  produces<CATopJetTagInfoCollection>();
28 }
T getParameter(std::string const &) const
const double TopMass_
const edm::InputTag src_
const edm::EDGetTokenT< edm::View< reco::Jet > > input_jet_token_
const bool verbose_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const double WMass_
CATopJetTagger::~CATopJetTagger ( )
override

Definition at line 31 of file CATopJetTagger.cc.

32 {
33 }

Member Function Documentation

void CATopJetTagger::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
overrideprivate

Definition at line 42 of file CATopJetTagger.cc.

References edm::View< T >::begin(), DEFINE_FWK_MODULE, edm::View< T >::end(), edm::Event::getByToken(), input_jet_token_, reco::CATopJetTagInfo::insert(), eostools::move(), edm::Event::put(), combinedMVAV2BJetTags_cfi::tagInfos, TopMass_, verbose_, and WMass_.

43 {
44 
45  // Set up output list
46  auto tagInfos = std::make_unique<CATopJetTagInfoCollection>();
47 
48  // Get the input list of basic jets corresponding to the hard jets
49  Handle<View<Jet> > pBasicJets;
50  iEvent.getByToken(input_jet_token_, pBasicJets);
51 
52  // Get a convenient handle
53  View<Jet> const & hardJets = *pBasicJets;
54 
56 
57  // Now loop over the hard jets and do kinematic cuts
58  View<Jet>::const_iterator ihardJet = hardJets.begin(),
59  ihardJetEnd = hardJets.end();
60  size_t iihardJet = 0;
61  for ( ; ihardJet != ihardJetEnd; ++ihardJet, ++iihardJet ) {
62 
63  if ( verbose_ ) edm::LogInfo("CATopJetTagger") << "Processing ihardJet with pt = " << ihardJet->pt() << endl;
64 
65  // Initialize output variables
66  // Get a ref to the hard jet
67  RefToBase<Jet> ref( pBasicJets, iihardJet );
68  // Get properties
69  CATopJetProperties properties = helper( *ihardJet );
70 
71  CATopJetTagInfo tagInfo;
72  tagInfo.insert( ref, properties );
73  tagInfos->push_back( tagInfo );
74  }// end loop over hard jets
75 
76  iEvent.put(std::move(tagInfos));
77 
78  return;
79 }
const double TopMass_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
Definition: helper.py:1
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
void insert(const edm::RefToBase< Jet > &jet, const CATopJetProperties &properties)
const edm::EDGetTokenT< edm::View< reco::Jet > > input_jet_token_
const bool verbose_
const_iterator begin() const
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
const double WMass_
const_iterator end() const
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

const edm::EDGetTokenT<edm::View<reco::Jet> > CATopJetTagger::input_jet_token_
private

Definition at line 82 of file CATopJetTagger.h.

Referenced by produce().

const edm::InputTag CATopJetTagger::src_
private

Definition at line 76 of file CATopJetTagger.h.

const double CATopJetTagger::TopMass_
private

Definition at line 78 of file CATopJetTagger.h.

Referenced by produce().

const bool CATopJetTagger::verbose_
private

Definition at line 80 of file CATopJetTagger.h.

Referenced by produce().

const double CATopJetTagger::WMass_
private

Definition at line 79 of file CATopJetTagger.h.

Referenced by produce().