![]() |
![]() |
#include <HLTJetTag.h>
Public Member Functions | |
virtual bool | filter (edm::Event &event, const edm::EventSetup &setup) |
HLTJetTag (const edm::ParameterSet &config) | |
~HLTJetTag () | |
Private Attributes | |
edm::InputTag | m_jetTag |
std::string | m_label |
double | m_maxTag |
int | m_minJets |
double | m_minTag |
bool | m_saveTag |
This class is an HLTFilter (a spcialized EDFilter) implementing tagged multi-jet trigger for b and tau. It should be run after the normal multi-jet trigger.
This class is an HLTFilter (a spcialized EDFilter) implementing tagged multi-jet trigger for b and tau. It should be run after the normal multi-jet trigger.
Definition at line 28 of file HLTJetTag.h.
HLTJetTag::HLTJetTag | ( | const edm::ParameterSet & | config | ) | [explicit] |
Definition at line 29 of file HLTJetTag.cc.
References edm::InputTag::encode(), m_jetTag, m_label, m_maxTag, m_minJets, and m_minTag.
: m_jetTag( config.getParameter<edm::InputTag> ("JetTag") ), m_minTag( config.getParameter<double> ("MinTag") ), m_maxTag( config.getParameter<double> ("MaxTag") ), m_minJets( config.getParameter<int> ("MinJets") ), m_saveTag( config.getParameter<bool> ("SaveTag") ), m_label( config.getParameter<std::string> ("@module_label") ) { edm::LogInfo("") << m_label << " (HLTJetTag) trigger cuts: " << std::endl << "\ttype of tagged jets used: " << m_jetTag.encode() << std::endl << "\tmin/max tag value: [" << m_minTag << ".." << m_maxTag << "]" << std::endl << "\tmin no. tagged jets: " << m_minJets << std::endl; //register your products produces<trigger::TriggerFilterObjectWithRefs>(); }
HLTJetTag::~HLTJetTag | ( | ) |
Definition at line 47 of file HLTJetTag.cc.
{ }
bool HLTJetTag::filter | ( | edm::Event & | event, |
const edm::EventSetup & | setup | ||
) | [virtual] |
Implements HLTFilter.
Definition at line 57 of file HLTJetTag.cc.
References accept(), edm::ProductID::id(), metsig::jet, LogTrace, m_jetTag, m_label, m_maxTag, m_minJets, m_saveTag, module(), edm::Provenance::moduleLabel(), path(), edm::Provenance::processName(), edm::Provenance::productInstanceName(), edm::HandleBase::provenance(), dt_dqm_sourceclient_common_cff::reco, edm::second(), and trigger::TriggerBJet.
{ using namespace std; using namespace edm; using namespace reco; // store jets used for triggering. auto_ptr<trigger::TriggerFilterObjectWithRefs> filterproduct (new trigger::TriggerFilterObjectWithRefs(path(),module())); edm::Handle<JetTagCollection> h_jetTag; event.getByLabel(m_jetTag, h_jetTag); const reco::JetTagCollection & jetTags = * h_jetTag; if (m_saveTag and jetTags.size()) { // find out which InputTag identifies the jets being tagged, and request it to be stored in the event // if there are no tagged jets, there is nothing to save ProductID jetsId = jetTags.begin()->first.id(); edm::Handle<edm::View<reco::Jet> > h_jets; event.get(jetsId, h_jets); const edm::Provenance & jets_data = * h_jets.provenance(); edm::InputTag jets_name( jets_data.moduleLabel(), jets_data.productInstanceName(), jets_data.processName() ); filterproduct->addCollectionTag( jets_name ); } // Look at all jets in decreasing order of Et. int nJet = 0; int nTag = 0; for (JetTagCollection::const_iterator jet = jetTags.begin(); jet != jetTags.end(); ++jet) { LogTrace("") << "Jet " << nJet << " : Et = " << jet->first->et() << " , tag value = " << jet->second; ++nJet; // Check if jet is tagged. if ( (m_minTag <= jet->second) and (jet->second <= m_maxTag) ) { ++nTag; // Store a reference to the jets which passed tagging cuts // N.B. this *should* work as we start from a CaloJet in HLT filterproduct->addObject(trigger::TriggerBJet, jet->first.castTo<reco::CaloJetRef>() ); } } // filter decision bool accept = (nTag >= m_minJets); // put filter object into the Event event.put(filterproduct); edm::LogInfo("") << m_label << " trigger accept ? = " << accept << " nTag/nJet = " << nTag << "/" << nJet << std::endl; return accept; }
edm::InputTag HLTJetTag::m_jetTag [private] |
Definition at line 37 of file HLTJetTag.h.
Referenced by filter(), and HLTJetTag().
std::string HLTJetTag::m_label [private] |
Definition at line 42 of file HLTJetTag.h.
Referenced by filter(), and HLTJetTag().
double HLTJetTag::m_maxTag [private] |
Definition at line 38 of file HLTJetTag.h.
Referenced by filter(), and HLTJetTag().
int HLTJetTag::m_minJets [private] |
Definition at line 39 of file HLTJetTag.h.
Referenced by filter(), and HLTJetTag().
double HLTJetTag::m_minTag [private] |
Definition at line 38 of file HLTJetTag.h.
Referenced by HLTJetTag().
bool HLTJetTag::m_saveTag [private] |
Definition at line 40 of file HLTJetTag.h.
Referenced by filter().