CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes
TrigObjTnPHistColl::FilterSelector Class Reference

#include <TrigObjTnPHistColl.h>

Classes

class  FilterSet
 

Public Member Functions

 FilterSelector (const edm::ParameterSet &config)
 
const trigger::Keys getPassingKeys (const trigger::TriggerEvent &trigEvt) const
 

Static Public Member Functions

static edm::ParameterSetDescription makePSetDescription ()
 

Static Private Member Functions

static void cleanTrigKeys (trigger::Keys &keys)
 
static void mergeTrigKeys (trigger::Keys &keys, const trigger::Keys &keysToMerge, bool isAND)
 

Private Attributes

std::vector< FilterSetfilterSets_
 
bool isAND_
 

Detailed Description

Definition at line 92 of file TrigObjTnPHistColl.h.

Constructor & Destructor Documentation

TrigObjTnPHistColl::FilterSelector::FilterSelector ( const edm::ParameterSet config)
explicit

Definition at line 75 of file TrigObjTnPHistColl.cc.

References filterSets_, and edm::ParameterSet::getParameter().

75  :
76  isAND_(config.getParameter<bool>("isAND"))
77 {
78  auto filterSetConfigs = config.getParameter<std::vector<edm::ParameterSet>>("filterSets");
79  for(auto& filterSetConfig : filterSetConfigs) filterSets_.emplace_back(FilterSet(filterSetConfig));
80 }
T getParameter(std::string const &) const
std::vector< FilterSet > filterSets_

Member Function Documentation

void TrigObjTnPHistColl::FilterSelector::cleanTrigKeys ( trigger::Keys keys)
staticprivate

Definition at line 119 of file TrigObjTnPHistColl.cc.

References SiStripPI::max, jetUpdater_cfi::sort, and tier0::unique().

Referenced by getPassingKeys().

120 {
121  std::sort(keys.begin(),keys.end());
122  std::unique(keys.begin(),keys.end());
123  while(!keys.empty() && keys.back()==std::numeric_limits<trigger::size_type>::max()){
124  keys.pop_back();
125  }
126 }
def unique(seq, keepstr=True)
Definition: tier0.py:25
const trigger::Keys TrigObjTnPHistColl::FilterSelector::getPassingKeys ( const trigger::TriggerEvent trigEvt) const

Definition at line 90 of file TrigObjTnPHistColl.cc.

References cleanTrigKeys(), filterSets_, isAND_, and mergeTrigKeys().

Referenced by TrigObjTnPHistColl::fill().

91 {
92  trigger::Keys passingKeys;
93  bool isFirstFilterSet = true;
94  for(const auto& filterSet : filterSets_){
95  auto keysOfFilterSet = filterSet.getPassingKeys(trigEvt);
96  if(isFirstFilterSet) passingKeys = keysOfFilterSet;
97  else mergeTrigKeys(passingKeys,keysOfFilterSet,isAND_);
98  isFirstFilterSet = false;
99  }
100  cleanTrigKeys(passingKeys);
101  return passingKeys;
102 }
static void cleanTrigKeys(trigger::Keys &keys)
static void mergeTrigKeys(trigger::Keys &keys, const trigger::Keys &keysToMerge, bool isAND)
std::vector< size_type > Keys
std::vector< FilterSet > filterSets_
edm::ParameterSetDescription TrigObjTnPHistColl::FilterSelector::makePSetDescription ( )
static

Definition at line 82 of file TrigObjTnPHistColl.cc.

References edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addVPSet(), and TrigObjTnPHistColl::FilterSelector::FilterSet::makePSetDescription().

Referenced by TrigObjTnPHistColl::makePSetDescription().

83 {
85  desc.addVPSet("filterSets",FilterSet::makePSetDescription(),std::vector<edm::ParameterSet>());
86  desc.add<bool>("isAND",false);
87  return desc;
88 }
ParameterDescriptionBase * addVPSet(U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
static edm::ParameterSetDescription makePSetDescription()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void TrigObjTnPHistColl::FilterSelector::mergeTrigKeys ( trigger::Keys keys,
const trigger::Keys keysToMerge,
bool  isAND 
)
staticprivate

Definition at line 104 of file TrigObjTnPHistColl.cc.

References KineDebug3::count(), crabWrapper::key, and SiStripPI::max.

Referenced by getPassingKeys().

105 {
106  if(isAND){
107  for(auto& key : keys) {
108  if(std::count(keysToMerge.begin(),keysToMerge.end(),key)==0){
110  }
111  }
112  }else{
113  for(const auto key : keysToMerge){
114  keys.push_back(key);
115  }
116  }
117 }

Member Data Documentation

std::vector<FilterSet> TrigObjTnPHistColl::FilterSelector::filterSets_
private

Definition at line 114 of file TrigObjTnPHistColl.h.

Referenced by FilterSelector(), and getPassingKeys().

bool TrigObjTnPHistColl::FilterSelector::isAND_
private

Definition at line 115 of file TrigObjTnPHistColl.h.

Referenced by getPassingKeys().