6 #include <boost/algorithm/string.hpp> 7 #include "Math/GenVector/VectorUtil.h" 11 size_t versionStart = pathName.rfind(
"_v");
12 if(versionStart == std::string::npos)
14 return pathName.substr(0, versionStart);
21 nbinsPt_(iConfig.getParameter<
int>(
"nPtBins")),
22 ptmin_(iConfig.getParameter<double>(
"ptmin")),
23 ptmax_(iConfig.getParameter<double>(
"ptmax")),
24 nbinsPhi_(iConfig.getParameter<
int>(
"nPhiBins")),
25 phimin_(iConfig.getParameter<double>(
"phimin")),
26 phimax_(iConfig.getParameter<double>(
"phimax")),
27 xvariable(iConfig.getParameter<
std::
string>(
"xvariable"))
83 const unsigned nTriggers = triggerVids.size();
84 for (
size_t iTrig = 0; iTrig < nTriggers; ++iTrig) {
88 return LV(trigObject.
px(),trigObject.
py(),trigObject.
pz(),trigObject.
energy());
95 std::vector<LV> offlineObjects;
99 if(
xvariable ==
"met") offlineObjects = refCollection.
met;
105 for(
const LV& offlineObject: offlineObjects) {
107 bool passTrigger =
false;
108 bool hltMatched =
false;
112 for (
unsigned int hltIndex = 0; hltIndex < trigNames.
size(); ++hltIndex){
117 if(dr < 0.4) hltMatched =
true;
121 if (passTrigger)
break;
123 if(!passTrigger)
return;
124 if(hltMatched)
return;
136 for (
unsigned int hltIndex = 0; hltIndex < trigNames.
size(); ++hltIndex){
138 if (passTrigger)
break;
140 if (passTrigger)
break;
142 if(!passTrigger)
return;
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::string > moduleLabels
bool wasrun() const
Was at least one path run?
unsigned int nOfflineObjs
std::vector< LV > electrons
The single EDProduct to be saved for each event (AOD case)
trigger::size_type sizeFilters() const
LV findTrgObject(std::string, const trigger::TriggerEvent &)
void bookHistograms(DQMStore::IBooker &iBooker, edm::Run const &iRun, edm::EventSetup const &iSetup)
math::XYZTLorentzVectorD LV
std::vector< std::string > numTriggers
bool accept() const
Has at least one path accepted the event?
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
MonitorElement * h_den_etaphi
~HLTTauDQMTagAndProbePlotter()
MonitorElement * h_den_pt
const std::string & triggerTag() const
Strings::size_type size() const
Single trigger physics object (e.g., an isolated muon)
const Vids & filterIds(trigger::size_type index) const
void setCurrentFolder(std::string const &fullpath)
MonitorElement * h_num_eta
const TriggerObjectCollection & getObjects() const
MonitorElement * book1D(Args &&...args)
MonitorElement * h_num_etaphi
static std::string const triggerResults
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
static const char *const trigNames[]
MonitorElement * book2D(Args &&...args)
std::string const & triggerName(unsigned int index) const
std::vector< size_type > Keys
MonitorElement * h_den_phi
MonitorElement * h_num_pt
MonitorElement * h_den_eta
MonitorElement * h_num_phi
HLTTauDQMTagAndProbePlotter(const edm::ParameterSet &iConfig, const std::vector< std::string > &modLabels, const std::string &dqmBaseFolder)
std::vector< std::string > denTriggers
void analyze(edm::Event const &iEvent, const edm::TriggerResults &triggerResults, const trigger::TriggerEvent &triggerEvent, const HLTTauDQMOfflineObjects &refCollection)
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override