112 : folderName_(iConfig.getParameter<
std::
string>(
"FolderName")),
113 requireValidHLTPaths_(iConfig.getParameter<
bool>(
"requireValidHLTPaths")),
114 hltPathsAreValid_(
false),
116 dijetpt_binning_(getHistoPSet(
118 dijetptThr_binning_(getHistoPSet(
121 iConfig.getParameter<
edm::
ParameterSet>(
"numGenericTriggerEventPSet"), consumesCollector(), *this)),
123 iConfig.getParameter<
edm::
ParameterSet>(
"denGenericTriggerEventPSet"), consumesCollector(), *this)),
124 ptcut_(iConfig.getParameter<double>(
"ptcut")) {}
160 histtitle =
"leading Jet Pt";
165 histtitle =
"second leading Jet Pt";
169 histname =
"jetphi1";
170 histtitle =
"leading Jet Phi";
175 histname =
"jetphi2";
176 histtitle =
"second leading Jet Phi";
181 histname =
"jeteta1";
182 histtitle =
"leading Jet Eta";
187 histname =
"jeteta2";
188 histtitle =
"second leading Jet Eta";
193 histname =
"jetptAvgB";
194 histtitle =
"Pt average before offline selection";
199 histname =
"jetptAvgA";
200 histtitle =
"Pt average after offline selection";
205 histname =
"jetptAvgAThr";
206 histtitle =
"Pt average after offline selection";
216 histname =
"jetptTag";
217 histtitle =
"Tag Jet Pt";
222 histname =
"jetptPrb";
223 histtitle =
"Probe Jet Pt";
228 histname =
"jetptAsym";
229 histtitle =
"Jet Pt Asymetry";
233 histname =
"jetetaPrb";
234 histtitle =
"Probe Jet eta";
244 histname =
"jetetaTag";
245 histtitle =
"Tag Jet eta";
255 histname =
"ptAsymVSetaPrb";
256 histtitle =
"Pt_Asym vs eta_prb";
269 histname =
"etaPrbVSphiPrb";
270 histtitle =
"eta_prb vs phi_prb";
283 histname =
"jetphiPrb";
284 histtitle =
"Probe Jet phi";
294 histname =
"jetphiTag";
295 histtitle =
"Tag Jet phi";
317 std::vector<double> v_jetpt;
318 std::vector<double> v_jeteta;
319 std::vector<double> v_jetphi;
331 for (reco::PFJetCollection::const_iterator ibegin = offjets->begin(), iend = offjets->end(), ijet = ibegin;
334 if (ijet->pt() <
ptcut_) {
337 v_jetpt.push_back(ijet->pt());
338 v_jeteta.push_back(ijet->eta());
339 v_jetphi.push_back(ijet->phi());
341 if (v_jetpt.size() < 2) {
344 double pt_1 = v_jetpt[0];
345 double eta_1 = v_jeteta[0];
346 double phi_1 = v_jetphi[0];
347 double pt_2 = v_jetpt[1];
348 double eta_2 = v_jeteta[1];
349 double phi_2 = v_jetphi[1];
350 double pt_avg_b = (pt_1 + pt_2) * 0.5;
351 int tag_id = -999, probe_id = -999;
362 if (tag_id == 0 && probe_id == 1) {
363 double pt_asy = (pt_2 - pt_1) / (pt_1 + pt_2);
364 double pt_avg = (pt_1 + pt_2) * 0.5;
377 if (tag_id == 1 && probe_id == 0) {
378 double pt_asy = (pt_1 - pt_2) / (pt_2 + pt_1);
379 double pt_avg = (pt_2 + pt_1) * 0.5;
404 if (tag_id == 0 && probe_id == 1) {
405 double pt_asy = (pt_2 - pt_1) / (pt_1 + pt_2);
406 double pt_avg = (pt_1 + pt_2) * 0.5;
419 if (tag_id == 1 && probe_id == 0) {
420 double pt_asy = (pt_1 - pt_2) / (pt_2 + pt_1);
421 double pt_avg = (pt_2 + pt_1) * 0.5;
452 float delta_phi_1_2 = (phi_1 - phi_2);
453 bool other_cuts = (
std::abs(delta_phi_1_2) >= phicut);
462 int numb =
Event % 2;
473 return (passeta && other_cuts);
479 desc.add<
bool>(
"requireValidHLTPaths",
true);
485 desc.add<
int>(
"njets", 0);
486 desc.add<
int>(
"nelectrons", 0);
487 desc.add<
double>(
"ptcut", 20);
502 std::vector<double>
bins = {
503 0., 20., 40., 60., 80., 90., 100., 110., 120., 130., 140., 150., 160.,
504 170., 180., 190., 200., 220., 240., 260., 280., 300., 350., 400., 450., 1000.};
512 descriptions.
add(
"dijetMonitoring",
desc);
dqm::reco::DQMStore DQMStore
std::unique_ptr< GenericTriggerEventFlag > den_genTriggerEventFlag_
static void fillHistoLSPSetDescription(edm::ParameterSetDescription &pset)
virtual void setCurrentFolder(std::string const &fullpath)
std::unique_ptr< GenericTriggerEventFlag > num_genTriggerEventFlag_
#define DEFINE_FWK_MODULE(type)
void analyze(edm::Event const &iEvent, edm::EventSetup const &iSetup) override
MEbinning dijetpt_binning_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MEbinning dijetptThr_binning_
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
dqm::reco::MonitorElement MonitorElement
static void fillHistoPSetDescription(edm::ParameterSetDescription &pset)
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
const std::string folderName_
void setMETitle(ObjME &me, const std::string &titleX, const std::string &titleY)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
DiJetMonitor(const edm::ParameterSet &)
std::vector< Muon > MuonCollection
collection of Muon objects
edm::EDGetTokenT< reco::GsfElectronCollection > eleToken_
edm::EDGetTokenT< reco::PFJetCollection > dijetSrc_
const bool requireValidHLTPaths_
const double DiJet_MAX_PHI
MEbinning dijet_phi_binning
bool dijet_selection(double eta_1, double phi_1, double eta_2, double phi_2, double pt_1, double pt_2, int &tag_id, int &probe_id, int Event)
MonitorElement * denominator
MonitorElement * numerator
Abs< T >::type abs(const T &t)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void bookME(DQMStore::IBooker &, ObjME &me, const std::string &histname, const std::string &histtitle, const uint nbins, const double xmin, const double xmax, const bool bookDen=true)
const double DiJet_MAX_ETA
std::vector< PFJet > PFJetCollection
collection of PFJet objects
edm::EDGetTokenT< reco::MuonCollection > muoToken_
MEbinning dijet_eta_binning
edm::EDGetTokenT< reco::PFMETCollection > metToken_
Log< level::Warning, false > LogWarning
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
static void fillPSetDescription(edm::ParameterSetDescription &desc)