Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport Updates on DQMOffline/ZCounting #39168

Merged
merged 2 commits into from Aug 31, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions DQMOffline/Lumi/BuildFile.xml
Expand Up @@ -4,6 +4,7 @@
<use name="DataFormats/EgammaCandidates"/>
<use name="DataFormats/HLTReco"/>
<use name="CommonTools/Egamma"/>
<use name="HLTrigger/HLTcore"/>
<use name="rootcore"/>
<export>
<lib name="1"/>
Expand Down
22 changes: 0 additions & 22 deletions DQMOffline/Lumi/interface/TTrigger.h

This file was deleted.

11 changes: 0 additions & 11 deletions DQMOffline/Lumi/interface/TriggerDefs.h

This file was deleted.

30 changes: 0 additions & 30 deletions DQMOffline/Lumi/interface/TriggerRecord.h

This file was deleted.

75 changes: 64 additions & 11 deletions DQMOffline/Lumi/interface/TriggerTools.h
@@ -1,20 +1,73 @@
#ifndef DQMOFFLINE_LUMI_TRIGGERTOOLS_H
#define DQMOFFLINE_LUMI_TRIGGERTOOLS_H

#include "DQMOffline/Lumi/interface/TriggerDefs.h"
#include "DQMOffline/Lumi/interface/TriggerRecord.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/Common/interface/TriggerNames.h"
#include "DataFormats/Common/interface/TriggerResults.h"
#include "DataFormats/HLTReco/interface/TriggerEvent.h"
#include <vector>
#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"

namespace ZCountingTrigger {
#include <bitset>

class TriggerTools {
public:
static TriggerObjects matchHLT(const double eta,
const double phi,
const std::vector<TriggerRecord> &triggerRecords,
const trigger::TriggerEvent &triggerEvent);
const unsigned int kNTrigBit = 128;
typedef std::bitset<kNTrigBit> TriggerBits;
const unsigned int kNTrigObjectBit = 256;
typedef std::bitset<kNTrigObjectBit> TriggerObjectBits;

class TriggerTools {
public:
TriggerTools(){};
~TriggerTools(){};

void readEvent(const edm::Event &iEvent);

void setTriggerResultsToken(edm::EDGetTokenT<edm::TriggerResults> token) { fHLTTag_token = token; }
void setTriggerEventToken(edm::EDGetTokenT<trigger::TriggerEvent> token) { fHLTObjTag_token = token; }
void setDRMAX(const double _drMax) { DRMAX = _drMax; }

void addTriggerRecord(const std::string &name) {
Record rec;
rec.hltPattern = name;
records.push_back(rec);
}
void addTriggerRecord(const std::string &name, const std::string &objName) {
Record rec;
rec.hltPattern = name;
rec.hltObjName = objName;
records.push_back(rec);
}

void initHLTObjects(const HLTConfigProvider &hltConfigProvider_);

bool pass() const;
bool passObj(const double eta, const double phi) const;

private:
struct Record {
std::string hltPattern; // HLT path name/pattern (wildcards allowed: *,?)
std::string hltPathName = ""; // HLT path name in trigger menu
unsigned int hltPathIndex = (unsigned int)-1; // HLT path index in trigger menu
std::string hltObjName = ""; // trigger object name in trigger menu
};
std::vector<Record> records;

edm::EDGetTokenT<edm::TriggerResults> fHLTTag_token;
edm::EDGetTokenT<trigger::TriggerEvent> fHLTObjTag_token;

edm::Handle<edm::TriggerResults> hTrgRes;
edm::Handle<trigger::TriggerEvent> hTrgEvt;

edm::ParameterSetID fTriggerNamesID;

// initialization from HLT menu; needs to be called on every change in HLT menu
void initPathNames(const std::vector<std::string> &triggerNames);

TriggerBits triggerBits;

// Matching parameter
double DRMAX = 0.1;
};

} // namespace ZCountingTrigger
#endif