Skip to content

Commit

Permalink
Merge pull request #19585 from tankit/SUSYVBF_HLTMON
Browse files Browse the repository at this point in the history
Update of #19565: SUSY VBF trigger monitoring 93X
  • Loading branch information
cmsbuild authored Jul 13, 2017
2 parents 8a01259 + 1cfdc43 commit 8960944
Show file tree
Hide file tree
Showing 12 changed files with 204 additions and 34 deletions.
77 changes: 77 additions & 0 deletions DQMOffline/Trigger/plugins/HTDQM.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
#include "DQMOffline/Trigger/plugins/HTDQM.h"

HTDQM::HTDQM(){}

HTDQM::~HTDQM(){}

void HTDQM::initialise(const edm::ParameterSet& iConfig ){

ht_variable_binning_ = iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("htBinning");
met_variable_binning_ = iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<std::vector<double> >("metBinning2");
ht_binning_ = getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("htPSet"));
ls_binning_ = getHistoLSPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("htlsPSet"));

}

void HTDQM::bookHistograms(DQMStore::IBooker & ibooker)
{

std::string histname, histtitle;

histname = "ht_variable"; histtitle = "PFHT";
bookME(ibooker,htME_variableBinning_,histname,histtitle,ht_variable_binning_);
setMETitle(htME_variableBinning_,"PF HT [GeV]","events / [GeV]");

histname = "htVsMET"; histtitle = "PFHT vs PFMET";
bookME(ibooker,htVsMET_,histname,histtitle,met_variable_binning_,ht_variable_binning_);
setMETitle(htVsMET_,"PF MET [GeV]","PF HT [GeV]");

histname = "htVsLS"; histtitle = "PFHT vs LS";
bookME(ibooker,htVsLS_,histname,histtitle,ls_binning_.nbins, ls_binning_.xmin, ls_binning_.xmax,ht_binning_.xmin, ht_binning_.xmax);
setMETitle(htVsLS_,"LS","PF HT [GeV]");

}

void HTDQM::fillHistograms(const std::vector<reco::PFJet> & htjets,
const double & met,
const int & ls,
const bool passCond){

// filling histograms (denominator)
double htSum = 0;
for (unsigned ij(0); ij<htjets.size(); ++ij){
htSum += htjets[ij].pt();
}

htME_variableBinning_.denominator -> Fill(htSum);

htVsMET_.denominator -> Fill(met, htSum);
htVsLS_.denominator -> Fill(ls, htSum);

// applying selection for numerator
if (passCond){
// filling histograms (num_genTriggerEventFlag_)
htME_variableBinning_.numerator -> Fill(htSum);
htVsMET_.numerator -> Fill(met, htSum);
htVsLS_.numerator -> Fill(ls, htSum);
}

}

void HTDQM::fillHtDescription(edm::ParameterSetDescription & histoPSet){

edm::ParameterSetDescription htPSet;
fillHistoPSetDescription(htPSet);
histoPSet.add<edm::ParameterSetDescription>("htPSet", htPSet);

std::vector<double> bins = {0.,50.,100.,150.,200.,250.,300.,350.,400.,450.,500.,550.,600.,650.,700.,750.,800.,900.,1000.,1200.,1500.,2000.};
histoPSet.add<std::vector<double> >("htBinning", bins);

std::vector<double> metbins = {0.,20.,40.,60.,80.,100.,120.,140.,160.,180.,200.,220.,240.,260.,280.,300.,320.,340.,360.,380.,400.,450.,500.,1000.};
histoPSet.add<std::vector<double> >("metBinning2", metbins);

edm::ParameterSetDescription lsPSet;
fillHistoLSPSetDescription(lsPSet);
histoPSet.add<edm::ParameterSetDescription>("htlsPSet", lsPSet);

}
39 changes: 39 additions & 0 deletions DQMOffline/Trigger/plugins/HTDQM.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef DQMOffline_Trigger_HTDQM_H
#define DQMOffline_Trigger_HTDQM_H

#include "DQMOffline/Trigger/plugins/TriggerDQMBase.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "DataFormats/JetReco/interface/PFJet.h"
#include "DataFormats/METReco/interface/PFMET.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

class HTDQM : public TriggerDQMBase
{
public:
HTDQM();
virtual ~HTDQM();

void initialise(const edm::ParameterSet& iConfig);
void bookHistograms(DQMStore::IBooker &);
void fillHistograms(const std::vector<reco::PFJet> & htjets,
const double & met,
const int & ls,
const bool passCond);
static void fillHtDescription(edm::ParameterSetDescription & histoPSet);


private:

std::vector<double> ht_variable_binning_;
std::vector<double> met_variable_binning_;
MEbinning ht_binning_;
MEbinning ls_binning_;

ObjME htME_variableBinning_;
ObjME htVsMET_;
ObjME htVsLS_;

};//class

#endif //DQMOffline_Trigger_HTDQM_H
19 changes: 0 additions & 19 deletions DQMOffline/Trigger/plugins/JetDQM.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,6 @@ void JetDQM::initialise(const edm::ParameterSet& iConfig){
mindphijmet_binning_ = getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("mindphijmetPSet"));
ls_binning_ = getHistoLSPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("jetlsPSet"));

jet1ptME_.clear();
jet2ptME_.clear();
jet1etaME_.clear();
jet2etaME_.clear();

cjetetaME_.clear();
fjetetaME_.clear();
cjetptME_.clear();
fjetptME_.clear();

mjjME_.clear();
detajjME_.clear();
dphijjME_.clear();

mindphijmetME_.clear();

jet1etaVsLS_.clear();
mjjVsLS_.clear();
mindphijmetVsLS_.clear();
}

void JetDQM::bookHistograms(DQMStore::IBooker & ibooker)
Expand Down
8 changes: 0 additions & 8 deletions DQMOffline/Trigger/plugins/METDQM.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,6 @@ void METDQM::initialise(const edm::ParameterSet& iConfig ){
phi_binning_ = getHistoPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("phiPSet"));
ls_binning_ = getHistoLSPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet> ("lsPSet") );

metME_.numerator = nullptr;
metME_.denominator = nullptr;
metME_variableBinning_.numerator = nullptr;
metME_variableBinning_.denominator = nullptr;
metVsLS_.numerator = nullptr;
metVsLS_.denominator = nullptr;
metPhiME_.numerator = nullptr;
metPhiME_.denominator = nullptr;
}

void METDQM::bookHistograms(DQMStore::IBooker & ibooker)
Expand Down
13 changes: 12 additions & 1 deletion DQMOffline/Trigger/plugins/ObjMonitor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,13 @@ ObjMonitor::ObjMonitor( const edm::ParameterSet& iConfig ) :
, muoToken_ ( mayConsume<reco::MuonCollection> (iConfig.getParameter<edm::InputTag>("muons") ) )
, do_met_ (iConfig.getParameter<bool>("doMETHistos") )
, do_jet_ (iConfig.getParameter<bool>("doJetHistos") )
, do_ht_ (iConfig.getParameter<bool>("doHTHistos") )
, num_genTriggerEventFlag_(std::make_unique<GenericTriggerEventFlag>(iConfig.getParameter<edm::ParameterSet>("numGenericTriggerEventPSet"),consumesCollector(), *this))
, den_genTriggerEventFlag_(std::make_unique<GenericTriggerEventFlag>(iConfig.getParameter<edm::ParameterSet>("denGenericTriggerEventPSet"),consumesCollector(), *this))
, metSelection_ ( iConfig.getParameter<std::string>("metSelection") )
, jetSelection_ ( iConfig.getParameter<std::string>("jetSelection") )
, jetId_ ( iConfig.getParameter<std::string>("jetId") )
, htjetSelection_ ( iConfig.getParameter<std::string>("htjetSelection"))
, eleSelection_ ( iConfig.getParameter<std::string>("eleSelection") )
, muoSelection_ ( iConfig.getParameter<std::string>("muoSelection") )
, njets_ ( iConfig.getParameter<int>("njets" ) )
Expand All @@ -40,6 +42,9 @@ ObjMonitor::ObjMonitor( const edm::ParameterSet& iConfig ) :
if (do_jet_){
jetDQM_.initialise(iConfig);
}
if (do_ht_ ){
htDQM_.initialise(iConfig);
}
}

ObjMonitor::~ObjMonitor()
Expand All @@ -57,6 +62,7 @@ void ObjMonitor::bookHistograms(DQMStore::IBooker & ibooker,

if (do_met_) metDQM_.bookHistograms(ibooker);
if (do_jet_) jetDQM_.bookHistograms(ibooker);
if (do_ht_ ) htDQM_.bookHistograms(ibooker);

// Initialize the GenericTriggerEventFlag
if ( num_genTriggerEventFlag_ && num_genTriggerEventFlag_->on() ) num_genTriggerEventFlag_->initRun( iRun, iSetup );
Expand All @@ -80,6 +86,7 @@ void ObjMonitor::analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup
edm::Handle<reco::PFJetCollection> jetHandle;
iEvent.getByToken( jetToken_, jetHandle );
std::vector<reco::PFJet> jets;
std::vector<reco::PFJet> htjets;
if ( int(jetHandle->size()) < njets_ ) return;
for ( auto const & j : *jetHandle ) {
if ( jetSelection_( j ) ) {
Expand All @@ -96,6 +103,7 @@ void ObjMonitor::analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup
}
else jets.push_back(j);
}
if ( htjetSelection_( j ) ) htjets.push_back(j);
}
if ( int(jets.size()) < njets_ ) return;

Expand Down Expand Up @@ -123,6 +131,7 @@ void ObjMonitor::analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup

if (do_met_) metDQM_.fillHistograms(met,phi,ls,passNumCond);
if (do_jet_) jetDQM_.fillHistograms(jets,pfmet,ls,passNumCond);
if (do_ht_ ) htDQM_.fillHistograms(htjets,met,ls,passNumCond);

}

Expand Down Expand Up @@ -178,6 +187,7 @@ void ObjMonitor::fillDescriptions(edm::ConfigurationDescriptions & descriptions)
desc.add<std::string>("metSelection", "pt > 0");
desc.add<std::string>("jetSelection", "pt > 0");
desc.add<std::string>("jetId", "");
desc.add<std::string>("htjetSelection", "pt > 30");
desc.add<std::string>("eleSelection", "pt > 0");
desc.add<std::string>("muoSelection", "pt > 0");
desc.add<int>("njets", 0);
Expand Down Expand Up @@ -206,7 +216,8 @@ void ObjMonitor::fillDescriptions(edm::ConfigurationDescriptions & descriptions)
METDQM::fillMetDescription(histoPSet);
desc.add<bool>("doJetHistos", true);
JetDQM::fillJetDescription(histoPSet);

desc.add<bool>("doHTHistos", true);
HTDQM::fillHtDescription(histoPSet);

desc.add<edm::ParameterSetDescription>("histoPSet",histoPSet);

Expand Down
4 changes: 4 additions & 0 deletions DQMOffline/Trigger/plugins/ObjMonitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
#include "DQMOffline/Trigger/plugins/TriggerDQMBase.h"
#include "DQMOffline/Trigger/plugins/METDQM.h"
#include "DQMOffline/Trigger/plugins/JetDQM.h"
#include "DQMOffline/Trigger/plugins/HTDQM.h"



Expand Down Expand Up @@ -93,6 +94,8 @@ class ObjMonitor : public DQMEDAnalyzer
METDQM metDQM_;
bool do_jet_;
JetDQM jetDQM_;
bool do_ht_;
HTDQM htDQM_;


std::unique_ptr<GenericTriggerEventFlag> num_genTriggerEventFlag_;
Expand All @@ -101,6 +104,7 @@ class ObjMonitor : public DQMEDAnalyzer
StringCutObjectSelector<reco::MET,true> metSelection_;
StringCutObjectSelector<reco::PFJet,true > jetSelection_;
std::string jetId_;
StringCutObjectSelector<reco::PFJet,true > htjetSelection_;
StringCutObjectSelector<reco::GsfElectron,true> eleSelection_;
StringCutObjectSelector<reco::Muon,true> muoSelection_;
int njets_;
Expand Down
8 changes: 2 additions & 6 deletions DQMOffline/Trigger/plugins/TriggerDQMBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,8 @@ class TriggerDQMBase
};

struct ObjME {
MonitorElement* numerator;
MonitorElement* denominator;
inline void clear(){
numerator = nullptr;
denominator = nullptr;
};
MonitorElement* numerator = nullptr;
MonitorElement* denominator = nullptr;
};

static void fillHistoPSetDescription(edm::ParameterSetDescription & pset);
Expand Down
6 changes: 6 additions & 0 deletions DQMOffline/Trigger/python/ObjMonitor_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@
xmin = cms.double( 0),
xmax = cms.double(3.1416),
)
hltobjmonitoring.doHTHistos = cms.bool(True)
hltobjmonitoring.histoPSet.htPSet = cms.PSet(
nbins = cms.uint32 ( 60 ),
xmin = cms.double( -0.5),
xmax = cms.double(1499.5),
)

hltobjmonitoring.met = cms.InputTag("pfMetEI") # pfMet
hltobjmonitoring.jets = cms.InputTag("pfJetsEI") # ak4PFJets, ak4PFJetsCHS
Expand Down
3 changes: 3 additions & 0 deletions DQMOffline/Trigger/python/SusyMonitoring_Client_cff.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import FWCore.ParameterSet.Config as cms

from DQMOffline.Trigger.VBFSUSYMonitor_Client_cff import *

susyClient = cms.Sequence(
vbfsusyClient
)
2 changes: 2 additions & 0 deletions DQMOffline/Trigger/python/SusyMonitoring_cff.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import FWCore.ParameterSet.Config as cms

from DQMOffline.Trigger.RazorMonitor_cff import *
from DQMOffline.Trigger.VBFSUSYMonitor_cff import *

susyMonitorHLT = cms.Sequence(
susyHLTRazorMonitoring
*susyHLTVBFMonitoring
)
40 changes: 40 additions & 0 deletions DQMOffline/Trigger/python/VBFSUSYMonitor_Client_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import FWCore.ParameterSet.Config as cms
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester

vbfsusyEfficiency = DQMEDHarvester("DQMGenericClient",
subDirs = cms.untracked.vstring("HLT/SUSY/VBF/*"),
verbose = cms.untracked.uint32(0), # Set to 2 for all messages
resolution = cms.vstring(),
efficiency = cms.vstring(
"effic_ht_variable 'HT turnON; PF HT [GeV]; efficiency' ht_variable_numerator ht_variable_denominator",
"effic_met_variable 'MET turnON; PF MET [GeV]; efficiency' met_variable_numerator met_variable_denominator",
"effic_metPhi 'MET efficiency vs phi; PF MET phi [rad]; efficiency' metPhi_numerator metPhi_denominator",
"effic_jet1pt 'jet1 pT turnON; PFJet1 pT [GeV]; efficiency' jet1pt_numerator jet1pt_denominator",
"effic_jet2pt 'jet2 pT turnON; PFJet2 pT [GeV]; efficiency' jet2pt_numerator jet2pt_denominator",
"effic_jet1eta 'jet1 #eta turnON; jet1 #eta; efficiency' jet1eta_numerator jet1eta_denominator",
"effic_jet2eta 'jet2 #eta turnON; jet2 #eta; efficiency' jet2eta_numerator jet2eta_denominator",
"effic_cjetpt 'central jet pT turnON; central jet pT [GeV]; efficiency' cjetpt_numerator cjetpt_denominator",
"effic_cjeteta 'central jet #eta turnON; central jet #eta; efficiency' cjeteta_numerator cjeteta_denominator",
"effic_fjetpt 'forward jet pT turnON; forward jet pT [GeV]; efficiency' fjetpt_numerator fjetpt_denominator",
"effic_fjeteta 'forward jet #eta turnON; forward jet #eta; efficiency' fjeteta_numerator fjeteta_denominator",
"effic_mjj 'M_{jj} turnON; DiPFJet mass [GeV]; efficiency' mjj_numerator mjj_denominator",
"effic_detajj '#Delta#eta_{jj} turnON; #Delta#eta_{jj}; efficiency' detajj_numerator detajj_denominator",
"effic_dphijj '#Delta#phi_{jj} turnON; #Delta#phi_{jj}; efficiency' dphijj_numerator dphijj_denominator",
"effic_mindphijmet 'min#Delta#phi(j,MET) turnON; min#Delta#phi(jet,MET); efficiency' mindphijmet_numerator mindphijmet_denominator",

),
efficiencyProfile = cms.untracked.vstring(
"effic_ht_vs_MET 'HT efficiency vs MET; MET; PF HT efficiency' htVsMET_numerator htVsMET_denominator",
"effic_ht_vs_LS 'HT efficiency vs LS; LS; PF HT efficiency' htVsLS_numerator htVsLS_denominator",
"effic_met_vs_LS 'MET efficiency vs LS; LS; PF MET efficiency' metVsLS_numerator metVsLS_denominator",
"effic_jet1etaVsLS 'Jet1 #eta efficiency vs LS; LS; jet1 #eta efficiency' jet1etaVsLS_numerator jet1etaVsLS_denominator",
"effic_mjjVsLS 'M_{jj} efficiency vs LS; LS; M_{jj} efficiency' mjjVsLS_numerator mjjVsLS_denominator",
"effic_mindphijmetVsLS 'min#Delta#phi(jet,MET) efficiency vs LS; LS; min#Delta#phi(jet,MET) efficiency' mindphijmetVsLS_numerator mindphijmetVsLS_denominator",
),

)


vbfsusyClient = cms.Sequence(
vbfsusyEfficiency
)
19 changes: 19 additions & 0 deletions DQMOffline/Trigger/python/VBFSUSYMonitor_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import FWCore.ParameterSet.Config as cms

from DQMOffline.Trigger.ObjMonitor_cfi import hltobjmonitoring

# HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v* and
VBFSUSYmonitoring = hltobjmonitoring.clone()
VBFSUSYmonitoring.FolderName = cms.string('HLT/SUSY/VBF/DiJet/')
VBFSUSYmonitoring.numGenericTriggerEventPSet.hltInputTag = cms.InputTag( "TriggerResults","","HLT" )
VBFSUSYmonitoring.numGenericTriggerEventPSet.hltPaths = cms.vstring("HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v*","HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v*")
VBFSUSYmonitoring.jetSelection = cms.string("pt>40 & abs(eta)<5.0")
VBFSUSYmonitoring.jetId = cms.string("loose")
VBFSUSYmonitoring.njets = cms.int32(2)
#VBFSUSYmonitoring.metSelection = cms.string("pt>50")
VBFSUSYmonitoring.htjetSelection = cms.string("pt>30 & abs(eta)<5.0")

susyHLTVBFMonitoring = cms.Sequence(
VBFSUSYmonitoring
)

0 comments on commit 8960944

Please sign in to comment.