CMS 3D CMS Logo

List of all members | Static Public Member Functions
ZCountingTrigger::TriggerTools Class Reference

#include <TriggerTools.h>

Static Public Member Functions

static TriggerObjects matchHLT (const double eta, const double phi, const std::vector< TriggerRecord > &triggerRecords, const trigger::TriggerEvent &triggerEvent)
 

Detailed Description

Definition at line 11 of file TriggerTools.h.

Member Function Documentation

TriggerObjects TriggerTools::matchHLT ( const double  eta,
const double  phi,
const std::vector< TriggerRecord > &  triggerRecords,
const trigger::TriggerEvent triggerEvent 
)
static

Definition at line 9 of file TriggerTools.cc.

References reco::deltaR(), allElectronIsolations_cfi::dRMax, trigger::TriggerObject::eta(), trigger::TriggerEvent::filterIndex(), trigger::TriggerEvent::filterKeys(), diMuonOutputModule_cfi::filterName, trigger::TriggerEvent::getObjects(), relativeConstraints::keys, trigger::TriggerObject::phi(), trigger::TriggerEvent::sizeFilters(), and AlCaHLTBitMon_QueryRunRegistry::string.

12 {
13  const double dRMax = 0.2;
14 
15  TriggerObjects matchBits;
16  for(unsigned int irec=0; irec<triggerRecords.size(); irec++) {
17  for(unsigned int iobj=0; iobj<triggerRecords[irec].objectMap.size(); iobj++) {
18  const std::string &filterName = triggerRecords[irec].objectMap[iobj].first;
19  const unsigned int filterBit = triggerRecords[irec].objectMap[iobj].second;
20 
21  edm::InputTag filterTag(filterName,"","HLT");
22  // filterIndex must be less than the size of trgEvent or you get a CMSException: _M_range_check
23  if(triggerEvent.filterIndex(filterTag) < triggerEvent.sizeFilters()) {
24  const trigger::TriggerObjectCollection& toc(triggerEvent.getObjects());
25  const trigger::Keys& keys(triggerEvent.filterKeys(triggerEvent.filterIndex(filterTag)));
26 
27  for(unsigned int hlto=0; hlto<keys.size(); hlto++) {
28  trigger::size_type hltf = keys[hlto];
29  const trigger::TriggerObject& tobj(toc[hltf]);
30  if(reco::deltaR(eta,phi,tobj.eta(),tobj.phi()) < dRMax) {
31  matchBits[filterBit] = true;
32  }
33  }
34  }
35  }
36  }
37 
38  return matchBits;
39 }
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:135
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:111
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
Definition: TriggerEvent.h:123
uint16_t size_type
std::bitset< kNTrigObjectBit > TriggerObjects
Definition: TriggerDefs.h:9
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:22
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:98
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:81
std::vector< size_type > Keys