1 #ifndef DQMOFFLINE_TRIGGER_EGHLTTRIGTOOLS
2 #define DQMOFFLINE_TRIGGER_EGHLTTRIGTOOLS
19 void getActiveFilters(
const HLTConfigProvider&
hltConfig,std::vector<std::string>& activeFilters,std::vector<std::string>& activeEleFilters,std::vector<std::string>& activeEle2LegFilters,std::vector<std::string>& activePhoFilters,std::vector<std::string>& activePho2LegFilters);
24 void filterInactiveTriggers(std::vector<std::string>& namesToFilter,std::vector<std::string>& activeFilters);
45 const std::vector<std::pair<std::string,std::string> >& l1PreAndSeedFilters,
49 std::vector<TrigCodes::TrigBitSet> partTrigBits(particles.size());
50 const double maxDeltaR=0.1;
51 for(
size_t filterNrInVec=0;filterNrInVec<filters.size();filterNrInVec++){
55 if(filterNrInEvt<trigEvt->sizeFilters()){
58 for(
size_t partNr=0;partNr<particles.size();partNr++){
59 for(trigger::Keys::const_iterator keyIt=trigKeys.begin();keyIt!=trigKeys.end();++keyIt){
60 float trigObjEta = trigObjColl[*keyIt].eta();
61 float trigObjPhi = trigObjColl[*keyIt].phi();
62 if (
reco::deltaR(particles[partNr].
eta(),particles[partNr].
phi(),trigObjEta,trigObjPhi) < maxDeltaR){
63 partTrigBits[partNr] |= filterCode;
71 for(
size_t l1FilterNrInVec=0;l1FilterNrInVec<l1PreAndSeedFilters.size();l1FilterNrInVec++){
73 if((filterCode&evtTrigBits)==filterCode){
77 if(filterNrInEvt<trigEvt->sizeFilters()){
80 for(
size_t partNr=0;partNr<particles.size();partNr++){
81 for(trigger::Keys::const_iterator keyIt=trigKeys.begin();keyIt!=trigKeys.end();++keyIt){
82 float trigObjEta = trigObjColl[*keyIt].eta();
83 float trigObjPhi = trigObjColl[*keyIt].phi();
84 if (
reco::deltaR(particles[partNr].
eta(),particles[partNr].
phi(),trigObjEta,trigObjPhi) < maxDeltaR){
85 partTrigBits[partNr] |= filterCode;
93 for(
size_t partNr=0;partNr<particles.size();partNr++) particles[partNr].setTrigBits(partTrigBits[partNr]);
The single EDProduct to be saved for each event (AOD case)
static TrigBitSet getCode(const std::string &descript)
const Keys & filterKeys(trigger::size_type index) const
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
std::vector< TPRegexp > filters
double deltaR(double eta1, double phi1, double eta2, double phi2)
U second(std::pair< T, U > const &p)
const TriggerObjectCollection & getObjects() const
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
std::vector< size_type > Keys
std::bitset< maxNrBits_ > TrigBitSet