42 #include <TLorentzVector.h> 129 edm::LogError(
"HLTPhotonJetVal") <<
"Initialization of HLTConfigProvider failed!!";
141 nvertices_ = iBooker.
book1D(
"nvertices",
"Number of vertices", 100, 0, 100);
143 nphotons_ = iBooker.
book1D(
"nphotons",
"Number of photons", 100, 0, 10);
149 pfmet_ = iBooker.
book1D(
"pfmet",
"PF MET", 100, 0, 250);
151 pfmetphi_ = iBooker.
book1D(
"pfmetphi",
"PF MET phi;#phi_{PFMET}", 100, -4, 4);
153 iBooker.
book1D(
"delphiphomet_reco",
"Reco: #Delta#phi(photon, MET);#Delta#phi(#gamma,MET)", 100, 0, 4);
154 delphiphomet_ = iBooker.
book1D(
"delphiphomet",
"#Delta#phi(photon, MET);#Delta#phi(#gamma,MET)", 100, 0, 4);
156 npfjets_ = iBooker.
book1D(
"npfjets",
"Number of PF Jets", 100, 0, 20);
158 iBooker.
book1D(
"delphijetmet_reco",
"Reco: #Delta#phi(PFJet, MET);#Delta#phi(Jet,MET)", 100, 0, 4);
159 delphijetmet_ = iBooker.
book1D(
"delphijetmet",
"#Delta#phi(PFJet, MET);#Delta#phi(Jet,MET)", 100, 0, 4);
160 invmassjj_reco_ = iBooker.
book1D(
"invmassjj_reco",
"Reco: Inv mass two leading jets;M_{jj}[GeV]", 100, 0, 2000);
161 invmassjj_ = iBooker.
book1D(
"invmassjj",
"Inv mass two leading jets;M_{jj}[GeV]", 100, 0, 2000);
162 deletajj_reco_ = iBooker.
book1D(
"deletajj_reco",
"Reco: #Delta#eta(jj);|#Delta#eta_{jj}|", 100, 0, 6);
163 deletajj_ = iBooker.
book1D(
"deletajj",
"#Delta#eta(jj);|#Delta#eta_{jj}|", 100, 0, 6);
168 "Reco: Trigger vs. # vertices;N_{vertices};Trigger",
176 "Trigger vs. # vertices;N_{vertices};Trigger",
191 if (!triggerResults.
isValid()) {
192 edm::LogError(
"HigPhotonJetHLT") <<
"Missing triggerResults collection" << std::endl;
211 std::cout <<
"xshi:: N vertices : " << vertices->size() << std::endl;
219 for (
unsigned int itrig = 0; itrig < triggerResults->
size(); itrig++) {
247 std::cout <<
"xshi:: number of pfmets: " << pfmets->size() << std::endl;
259 for (
auto const& phoIter : *photons) {
269 double tmp_delphiphomet = fabs(
deltaPhi(phoIter.phi(), pfmet.
phi()));
284 std::cout <<
"xshi:: N pfjets : " << pfjets->size() << std::endl;
286 double min_delphijetmet = 6.0;
287 TLorentzVector p4jet1, p4jet2, p4jj;
289 double etajet1(0), etajet2(0);
291 for (
auto const& jetIter : *pfjets) {
296 double tmp_delphijetmet = fabs(
deltaPhi(jetIter.phi(), pfmet.
phi()));
297 if (tmp_delphijetmet < min_delphijetmet)
298 min_delphijetmet = tmp_delphijetmet;
301 p4jet1.SetXYZM(jetIter.px(), jetIter.py(), jetIter.pz(), jetIter.mass());
302 etajet1 = jetIter.eta();
305 p4jet2.SetXYZM(jetIter.px(), jetIter.py(), jetIter.pz(), jetIter.mass());
306 etajet2 = jetIter.eta();
316 p4jj = p4jet1 + p4jet2;
317 double deletajj = etajet1 - etajet2;
319 std::cout <<
"xshi:: invmass jj " << p4jj.M() << std::endl;
336 std::cout <<
"xshi:: endRun total number of events: " <<
evtsrun_ <<
", integral = " << h->Integral()
337 <<
", norm = " << norm << std::endl;
343 for (
unsigned int itrig = 0; itrig < triggerResults->
size(); itrig++) {
349 if (triggername.find(
i) != std::string::npos) {
std::string hltProcessName_
MonitorElement * deletajj_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::PFJetCollection > pfJetsToken_
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
MonitorElement * pfmetphi_reco_
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
MonitorElement * nphotons_reco_
MonitorElement * photonpt_
MonitorElement * invmassjj_
MonitorElement * nvertices_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
void setCurrentFolder(std::string const &fullpath)
MonitorElement * npfjets_
MonitorElement * pfmet_reco_
MonitorElement * deletajj_reco_
edm::EDGetTokenT< reco::PFMETCollection > pfMetToken_
edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken_
MonitorElement * nvertices_reco_
edm::EDGetTokenT< reco::VertexCollection > pvToken_
MonitorElement * nphotons_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
edm::EDGetTokenT< reco::PhotonCollection > photonsToken_
MonitorElement * trigvsnvtx_
#define DEFINE_FWK_MODULE(type)
double et() const final
transverse energy
unsigned int size() const
Get number of paths stored.
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * photonpt_reco_
MonitorElement * pfmetphi_
static std::string const triggerResults
MonitorElement * delphijetmet_
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * trigvsnvtx_reco_
MonitorElement * triggers_reco_
Integral< F, X >::type integral(const F &f)
HigPhotonJetHLTOfflineSource(const edm::ParameterSet &)
MonitorElement * delphiphomet_
MonitorElement * delphiphomet_reco_
MonitorElement * photonrapidity_reco_
bool isMonitoredTriggerAccepted(const edm::TriggerNames &, const edm::Handle< edm::TriggerResults > &)
MonitorElement * invmassjj_reco_
std::string const & triggerName(unsigned int index) const
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
MonitorElement * photonrapidity_
std::vector< std::string > hltPathsToCheck_
MonitorElement * npfjets_reco_
double phi() const final
momentum azimuthal angle
MonitorElement * triggers_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
void dqmEndRun(const edm::Run &, const edm::EventSetup &) override
MonitorElement * delphijetmet_reco_