#include <TopQuarkAnalysis/TopTools/plugins/GenTtbarCategorizer.cc>
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 Member Functions | |
std::vector< int > | nHadronsOrderedJetIndices (const std::map< int, int > &m_jetIndex) const |
void | produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override |
Additional Inherited Members | |
Public Types inherited from edm::global::EDProducerBase | |
typedef EDProducerBase | ModuleType |
Public Types inherited from edm::ProducerBase | |
template<typename T > | |
using | BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T > |
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::ProducerBase | |
template<Transition Tr = Transition::Event> | |
auto | produces (std::string instanceName) noexcept |
declare what type of product will make and with which optional label More... | |
template<Transition B> | |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
template<BranchType B> | |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
template<typename ProductType , Transition B> | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
template<class ProductType > | |
BranchAliasSetterT< ProductType > | produces () |
template<typename ProductType , BranchType B> | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
template<typename ProductType , BranchType B> | |
BranchAliasSetterT< ProductType > | produces () |
template<class ProductType > | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
template<typename ProductType , Transition B> | |
BranchAliasSetterT< ProductType > | produces () |
template<Transition Tr = Transition::Event> | |
auto | produces () noexcept |
ProducesCollector | producesCollector () |
Protected Member Functions inherited from edm::EDConsumerBase | |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
template<BranchType B = InEvent> | |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
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<Transition Tr = Transition::Event> | |
constexpr auto | esConsumes () |
template<Transition Tr = Transition::Event> | |
auto | esConsumes (ESInputTag tag) |
template<Transition Tr = Transition::Event> | |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
Used with EventSetupRecord::doGet. More... | |
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) |
void | resetItemsToGetFrom (BranchType iType) |
Description: Categorization of different tt+xx processes, returning unique ID for each process as e.g. tt+bb, tt+b, tt+2b, tt+cc, ...
Implementation:
The classification scheme returns an ID per event, and works as follows: All jets in the following need to be in the acceptance as given by the config parameters |eta|, pt. A c jet must contain at least one c hadron and should contain no b hadrons First, b jets from top are identified, i.e. jets containing a b hadron from t->b decay They are encoded in the ID as numberOfBjetsFromTop*100, i.e. 0xx: no b jets from top in acceptance 1xx: 1 b jet from top in acceptance 2xx: both b jets from top in acceptance Then, b jets from W are identified, i.e. jets containing a b hadron from W->b decay They are encoded in the ID as numberOfBjetsFromW*1000, i.e. 0xxx: no b jets from W in acceptance 1xxx: 1 b jet from W in acceptance 2xxx: 2 b jets from W in acceptance Then, c jets from W are identified, i.e. jets containing a c hadron from W->c decay, but no b hadrons They are encoded in the ID as numberOfCjetsFromW*10000, i.e. 0xxxx: no c jets from W in acceptance 1xxxx: 1 c jet from W in acceptance 2xxxx: 2 c jets from W in acceptance From the remaining jets, the ID is formed based on the additional b jets (IDs x5x) and c jets (IDs x4x) in the following order: x55: at least 2 additional b jets with at least two of them having >= 2 b hadrons in each x54: at least 2 additional b jets with one of them having >= 2 b hadrons, the others having =1 b hadron x53: at least 2 additional b jets with all having =1 b hadron x52: exactly 1 additional b jet having >=2 b hadrons x51: exactly 1 additional b jet having =1 b hadron x45: at least 2 additional c jets with at least two of them having >= 2 c hadrons in each x44: at least 2 additional c jets with one of them having >= 2 c hadrons, the others having =1 c hadron x43: at least 2 additional c jets with all having =1 c hadron x42: exactly 1 additional c jet having >=2 c hadrons x41: exactly 1 additional c jet having =1 c hadron x00: No additional b or c jet, i.e. only light flavour jets or no additional jets
Definition at line 73 of file GenTtbarCategorizer.cc.
|
explicit |
Definition at line 119 of file GenTtbarCategorizer.cc.
|
static |
Definition at line 404 of file GenTtbarCategorizer.cc.
References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and HLT_2022v15_cff::InputTag.
|
private |
Definition at line 380 of file GenTtbarCategorizer.cc.
References jetsAK4_CHS_cff::sort, and trackerHitRTTI::vector.
Referenced by produce().
|
overrideprivatevirtual |
Implements edm::global::EDProducerBase.
Definition at line 149 of file GenTtbarCategorizer.cc.
References funct::abs(), ttHFGenFilter_cfi::genBHadFlavour, genBHadFlavourToken_, ttHFGenFilter_cfi::genBHadFromTopWeakDecay, genBHadFromTopWeakDecayToken_, ttHFGenFilter_cfi::genBHadIndex, genBHadIndexToken_, ttbarCategorization_cff::genBHadJetIndex, genBHadJetIndexToken_, ttbarCategorization_cff::genBHadLeptonHadronIndex, genBHadLeptonHadronIndexToken_, ttbarCategorization_cff::genBHadLeptonViaTau, genBHadLeptonViaTauToken_, ttHFGenFilter_cfi::genBHadPlusMothers, ttHFGenFilter_cfi::genBHadPlusMothersIndices, genBHadPlusMothersIndicesToken_, genBHadPlusMothersToken_, ttbarCategorization_cff::genCHadBHadronId, genCHadBHadronIdToken_, ttbarCategorization_cff::genCHadFlavour, genCHadFlavourToken_, ttbarCategorization_cff::genCHadFromTopWeakDecay, genCHadFromTopWeakDecayToken_, ttbarCategorization_cff::genCHadJetIndex, genCHadJetIndexToken_, genJetAbsEtaMax_, genJetPtMin_, l1tCaloJetHTTProducer_cfi::genJets, genJetsToken_, iEvent, SiStripPI::max, SiStripPI::min, eostools::move(), and nHadronsOrderedJetIndices().
|
private |
Definition at line 94 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 95 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 98 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 93 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 99 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 100 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 97 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 96 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 105 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 103 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 104 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 102 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 88 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 87 of file GenTtbarCategorizer.cc.
Referenced by produce().
|
private |
Definition at line 91 of file GenTtbarCategorizer.cc.
Referenced by produce().