16 hltProcessName_(ps.getUntrackedParameter<
std::
string>(
"HLTProcessName",
"HLT")),
17 triggerResultsSrc_(ps.getUntrackedParameter<
edm::
InputTag>(
"TriggerResultsSrc")),
19 triggerEventSrc_(ps.getUntrackedParameter<
edm::
InputTag>(
"TriggerEventSrc")),
21 pathRegex_(ps.getUntrackedParameter<
std::
string>(
"Paths")),
22 nPtBins_(ps.getUntrackedParameter<
int>(
"PtHistoBins", 20)),
23 nEtaBins_(ps.getUntrackedParameter<
int>(
"EtaHistoBins",12)),
24 nPhiBins_(ps.getUntrackedParameter<
int>(
"PhiHistoBins",18)),
25 ptMax_(ps.getUntrackedParameter<double>(
"PtHistoMax",200)),
26 highPtMax_(ps.getUntrackedParameter<double>(
"HighPtHistoMax",1000)),
27 l1MatchDr_(ps.getUntrackedParameter<double>(
"L1MatchDeltaR", 0.5)),
28 hltMatchDr_(ps.getUntrackedParameter<double>(
"HLTMatchDeltaR", 0.5)),
29 dqmBaseFolder_(ps.getUntrackedParameter<
std::
string>(
"DQMBaseFolder")),
31 prescaleEvt_(ps.getUntrackedParameter<
int>(
"prescaleEvt", -1))
36 if(ps.
exists(
"L1Plotter") && !ps.
exists(
"TagAndProbe")) {
40 if(ps.
exists(
"PathSummaryPlotter")) {
45 if(ps.
exists(
"TagAndProbe")) {
46 std::vector<edm::ParameterSet> tagAndProbePaths = ps.
getUntrackedParameter<std::vector<edm::ParameterSet> >(
"TagAndProbe");
57 using VPSet = std::vector<edm::ParameterSet>;
71 bool hltMenuChanged =
false;
73 LogDebug(
"HLTTauDQMOffline") <<
"dqmBeginRun(), hltMenuChanged " << hltMenuChanged;
76 std::vector<std::string> foundPaths;
80 if(std::regex_search(pathName, what,
pathRegex_)) {
81 LogDebug(
"HLTTauDQMOffline") <<
"Found path " << pathName;
82 foundPaths.emplace_back(pathName);
85 std::sort(foundPaths.begin(), foundPaths.end());
89 std::vector<const HLTTauDQMPath *> pathObjects;
91 pathObjects.reserve(foundPaths.size());
93 pathPlotters_.emplace_back(pathName,
HLTCP_,
doRefAnalysis_,
dqmBaseFolder_,
hltProcessName_,
nPtBins_,
nEtaBins_,
nPhiBins_,
ptMax_,
highPtMax_,
l1MatchDr_,
hltMatchDr_);
116 pathPlotter.bookHistograms(iBooker);
119 tpPlotter->bookHistograms(iBooker,iRun,iSetup);
135 if(!triggerResultsHandle.
isValid()) {
142 if(!triggerEventHandle.
isValid()) {
156 if(refObj.objID == 11) {
159 else if(refObj.objID == 13) {
160 refC.
muons.insert(refC.
muons.end(), collHandle->begin(), collHandle->end());
162 else if(refObj.objID == 15) {
163 refC.
taus.insert(refC.
taus.end(), collHandle->begin(), collHandle->end());
165 else if(refObj.objID == 0) {
166 refC.
met.insert(refC.
met.end(), collHandle->begin(), collHandle->end());
173 if(pathPlotter.isValid())
174 pathPlotter.analyze(*triggerResultsHandle, *triggerEventHandle, refC);
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const std::string dqmBaseFolder_
edm::InputTag triggerEventSrc_
void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c) override
std::vector< LV > electrons
The single EDProduct to be saved for each event (AOD case)
std::string hltProcessName_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEventToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< RefObject > refObjects_
void bookHistograms(DQMStore::IBooker &iBooker, const edm::Run &r, const edm::EventSetup &c) override
const std::vector< std::string > & triggerNames() const
names of trigger paths
bool exists(std::string const ¶meterName) const
checks if a parameter exists
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
std::vector< std::unique_ptr< GenericTriggerEventFlag > > den_genTriggerEventFlag_
~HLTTauDQMOfflineSource() override
HLTTauDQMOfflineSource(const edm::ParameterSet &)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< std::unique_ptr< GenericTriggerEventFlag > > num_genTriggerEventFlag_
std::vector< HLTTauDQMPathPlotter > pathPlotters_
std::vector< std::unique_ptr< HLTTauDQMTagAndProbePlotter > > tagandprobePlotters_
std::unique_ptr< HLTTauDQMPathSummaryPlotter > pathSummaryPlotter_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
const std::regex pathRegex_
edm::InputTag triggerResultsSrc_
edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken_
std::unique_ptr< HLTTauDQML1Plotter > l1Plotter_
void analyze(const edm::Event &e, const edm::EventSetup &c) override