10 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"Constructor SUSY_HLT_DiJet_MET::SUSY_HLT_DiJet_MET " << std::endl;
31 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"Destructor SUSY_HLT_DiJet_MET::~SUSY_HLT_DiJet_MET " << std::endl;
38 edm::LogError(
"SUSY_HLT_DiJet_MET") <<
"Initialization of HLTConfigProvider failed!!";
42 bool pathFound =
false;
44 for (
size_t j = 0; j < allTrigNames.size(); ++j) {
51 LogDebug(
"SUSY_HLT_DiJet_MET") <<
"Path not found" 56 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::beginRun" << std::endl;
60 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::bookHistograms" << std::endl;
66 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::analyze" << std::endl;
73 if (!pfMETCollection.
isValid()) {
74 edm::LogError(
"SUSY_HLT_DiJet_MET") <<
"invalid collection: PFMET" 80 if (!caloMETCollection.
isValid()) {
81 edm::LogError(
"SUSY_HLT_DiJet_MET") <<
"invalid collection: CaloMET" 90 if (!pfJetCollection.
isValid()) {
91 edm::LogError(
"SUSY_HLT_DiJet_MET") <<
"invalid collection: PFJets" 97 if (!caloJetCollection.
isValid()) {
98 edm::LogError(
"SUSY_HLT_DiJet_MET") <<
"invalid collection: CaloJets" 109 edm::LogError(
"SUSY_HLT_DiJet_MET") <<
"invalid collection: TriggerResults" 115 if (!triggerSummary.
isValid()) {
116 edm::LogError(
"SUSY_HLT_DiJet_MET") <<
"invalid collection: TriggerSummary" 127 if (!(filterIndex >= triggerSummary->
sizeFilters())) {
129 for (
size_t j = 0; j < keys.size(); ++j) {
136 std::vector<float> ptJet, etaJet, phiJet;
137 if (!(jetFilterIndex >= triggerSummary->
sizeFilters())) {
139 for (
size_t j = 0; j < keys_jetfilter.size(); ++j) {
145 ptJet.push_back(foundObject.
pt());
146 etaJet.push_back(foundObject.
eta());
147 phiJet.push_back(foundObject.
phi());
152 bool hasFired =
false;
153 bool hasFiredAuxiliaryForHadronicLeg =
false;
155 unsigned int numTriggers = trigNames.
size();
156 for (
unsigned int hltIndex = 0; hltIndex < numTriggers; ++hltIndex) {
158 hltresults->
accept(hltIndex))
161 hltresults->
wasrun(hltIndex) && hltresults->
accept(hltIndex))
162 hasFiredAuxiliaryForHadronicLeg =
true;
165 if (hasFiredAuxiliaryForHadronicLeg) {
166 int offlineJetCounter = 0;
167 int offlineCentralJets = 0;
168 int nMatch = 0, jet1Index = -1, jet2Index = -1;
170 for (reco::PFJetCollection::const_iterator i_pfjet = pfJetCollection->begin(); i_pfjet != pfJetCollection->end();
173 offlineCentralJets++;
174 if (offlineCentralJets == 2 && pfMETCollection->begin()->et() >
metCut_)
177 for (
unsigned int itrigjet = 0; itrigjet < ptJet.size(); ++itrigjet) {
179 (
sqrt((i_pfjet->phi() - phiJet.at(itrigjet)) * (i_pfjet->phi() - phiJet.at(itrigjet)) +
180 (i_pfjet->eta() - etaJet.at(itrigjet)) * (i_pfjet->eta() - etaJet.at(itrigjet))) < 0.4)) {
183 jet1Index = offlineJetCounter;
185 jet2Index = offlineJetCounter;
191 if (offlineCentralJets == 2 && pfMETCollection->begin()->et() >
metCut_)
208 if (jet1Index > -1 && jet2Index > -1) {
210 fabs(
reco::deltaPhi(pfJetCollection->at(jet1Index).phi(), pfJetCollection->at(jet2Index).phi())));
223 edm::LogInfo(
"SUSY_HLT_DiJet_MET") <<
"SUSY_HLT_DiJet_MET::endRun" << std::endl;
232 h_pfJetPt = ibooker_.
book1D(
"pfJetPt",
"PF Jet p_{T} (trigger-matched jets, |#eta| < 2.4); GeV", 20, 0.0, 500.0);
233 h_pfJetEta = ibooker_.
book1D(
"pfJetEta",
"PF Jet #eta (trigger-matched jets, |#eta| < 2.4)", 20, -3.0, 3.0);
234 h_pfJetPhi = ibooker_.
book1D(
"pfJetPhi",
"PF Jet #phi (trigger-matched jets, |#eta| < 2.4)", 20, -3.5, 3.5);
236 ibooker_.
book1D(
"pfJet1Jet2DPhi",
"|#Delta#phi| between two leading trigger-matched jets", 20, 0.0, 3.5);
237 h_caloMetvsPFMet = ibooker_.
book2D(
"caloMetvsPFMet",
"Calo MET vs PF MET; GeV; GeV", 25, 0.0, 500.0, 25, 0.0, 500.0);
250 ibooker_.
book1D(
"pfJet2PtTurnOn_num",
"PF Jet2 Pt (NCentralPFJets >= 2, PFMET > 250)", 20, 0.0, 500.0);
constexpr double deltaPhi(double phi1, double phi2)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool wasrun() const
Was at least one path run?
MonitorElement * h_triggerJetEta
trigger::size_type sizeFilters() const
edm::InputTag triggerFilter_
edm::EDGetTokenT< reco::CaloJetCollection > theCaloJetCollection_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * h_pfMetTurnOn_num
MonitorElement * h_pfMetPhi
MonitorElement * h_pfJetPt
bool accept() const
Has at least one path accepted the event?
const std::vector< std::string > & triggerNames() const
names of trigger paths
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_caloMetvsPFMet
MonitorElement * h_pfJetEta
Strings::size_type size() const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
MonitorElement * h_triggerMetPhi
void bookHistos(DQMStore::IBooker &)
Single trigger physics object (e.g., an isolated muon)
edm::EDGetTokenT< reco::PFMETCollection > thePfMETCollection_
void endRun(edm::Run const &run, edm::EventSetup const &eSetup) override
#define DEFINE_FWK_MODULE(type)
void setCurrentFolder(std::string const &fullpath)
const TriggerObjectCollection & getObjects() const
MonitorElement * h_triggerMet
MonitorElement * h_pfJet2PtTurnOn_den
MonitorElement * h_pfJet1Jet2DPhi
MonitorElement * book1D(Args &&...args)
~SUSY_HLT_DiJet_MET() override
void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
static const char *const trigNames[]
MonitorElement * h_pfJetPhi
edm::InputTag triggerJetFilter_
MonitorElement * book2D(Args &&...args)
std::string const & triggerName(unsigned int index) const
std::vector< size_type > Keys
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
HLTConfigProvider fHltConfig
MonitorElement * h_pfJet2PtTurnOn_num
edm::EDGetTokenT< reco::PFJetCollection > thePfJetCollection_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
edm::EDGetTokenT< reco::CaloMETCollection > theCaloMETCollection_
std::string triggerPathAuxiliaryForHadronic_
MonitorElement * h_pfMetTurnOn_den
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
edm::EDGetTokenT< trigger::TriggerEvent > theTrigSummary_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * h_triggerJetPt
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
MonitorElement * h_triggerJetPhi
SUSY_HLT_DiJet_MET(const edm::ParameterSet &ps)