|
|
#include <TopDiLeptonDQM.h>
Definition at line 38 of file TopDiLeptonDQM.h.
◆ TopDiLeptonDQM()
◆ ~TopDiLeptonDQM()
TopDiLeptonDQM::~TopDiLeptonDQM |
( |
| ) |
|
|
override |
◆ analyze()
Reimplemented from DQMEDAnalyzer.
Definition at line 168 of file TopDiLeptonDQM.cc.
173 const int N_TriggerPaths =
hltPaths_.size();
177 bool Fired_Signal_Trigger[100] = {
false};
178 bool Fired_Control_Trigger[100] = {
false};
184 double DilepMass = 0.;
186 double vertex_X = 100.;
187 double vertex_Y = 100.;
188 double vertex_Z = 100.;
206 if (!
fake && numberTracks > 3) {
221 int N_Triggers = trigResults->
size();
225 for (
int i_Trig = 0; i_Trig < N_Triggers; ++i_Trig) {
229 for (
int i = 0;
i < N_TriggerPaths;
i++) {
238 for (
int j = 0;
j < N_SignalPaths; ++
j) {
240 Fired_Signal_Trigger[
j] =
true;
243 for (
int k = 0;
k < N_ControlPaths; ++
k) {
245 Fired_Control_Trigger[
k] =
true;
258 reco::MuonCollection::const_iterator
muon;
260 if (!
muons.failedToGet()) {
263 N_leptons = N_leptons +
muons->size();
266 float N_muons =
muons->size();
267 float Q_muon =
muon->charge();
271 double track_X = 100.;
272 double track_Y = 100.;
273 double track_Z = 100.;
275 if (
muon->isGlobalMuon()) {
278 track_X =
track->vx();
279 track_Y =
track->vy();
280 track_Z =
track->vz();
301 double muonCombRelIso = 1.;
303 if (
muon->pt() != 0.)
329 reco::GsfElectronCollection::const_iterator elec;
331 if (!
elecs.failedToGet()) {
334 N_leptons = N_leptons +
elecs->size();
336 for (elec =
elecs->begin(); elec !=
elecs->end(); ++elec) {
337 float N_elecs =
elecs->size();
338 float Q_elec = elec->charge();
339 float HoverE = elec->hcalOverEcal();
345 double track_X = 100.;
346 double track_Y = 100.;
347 double track_Z = 100.;
351 track_X =
track->vx();
352 track_Y =
track->vy();
353 track_Z =
track->vz();
372 double elecCombRelIso = 1.;
374 if (elec->et() != 0.)
401 reco::MuonCollection::const_reference mu1 =
muons->at(0);
402 reco::MuonCollection::const_reference mu2 =
muons->at(1);
404 DilepMass =
sqrt((mu1.energy() + mu2.energy()) * (mu1.energy() + mu2.energy()) -
405 (mu1.px() + mu2.px()) * (mu1.px() + mu2.px()) - (mu1.py() + mu2.py()) * (mu1.py() + mu2.py()) -
406 (mu1.pz() + mu2.pz()) * (mu1.pz() + mu2.pz()));
410 if (mu1.charge() * mu2.charge() < 0.) {
427 for (
int k = 0;
k < N_SignalPaths; ++
k) {
428 if (Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k])
431 if (Fired_Control_Trigger[
k])
445 if (mu1.charge() * mu2.charge() > 0.) {
457 if (N_iso_el > 0 && N_iso_mu > 0) {
465 reco::MuonCollection::const_reference mu1 =
muons->at(0);
466 reco::GsfElectronCollection::const_reference el1 =
elecs->at(0);
468 DilepMass =
sqrt((mu1.energy() + el1.energy()) * (mu1.energy() + el1.energy()) -
469 (mu1.px() + el1.px()) * (mu1.px() + el1.px()) - (mu1.py() + el1.py()) * (mu1.py() + el1.py()) -
470 (mu1.pz() + el1.pz()) * (mu1.pz() + el1.pz()));
474 if (mu1.charge() * el1.charge() < 0.) {
486 for (elec =
elecs->begin(); elec !=
elecs->end(); ++elec) {
497 for (
int k = 0;
k < N_SignalPaths; ++
k) {
498 if (Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k])
501 if (Fired_Control_Trigger[
k])
515 if (mu1.charge() * el1.charge() > 0.) {
535 reco::GsfElectronCollection::const_reference el1 =
elecs->at(0);
536 reco::GsfElectronCollection::const_reference el2 =
elecs->at(1);
538 DilepMass =
sqrt((el1.energy() + el2.energy()) * (el1.energy() + el2.energy()) -
539 (el1.px() + el2.px()) * (el1.px() + el2.px()) - (el1.py() + el2.py()) * (el1.py() + el2.py()) -
540 (el1.pz() + el2.pz()) * (el1.pz() + el2.pz()));
544 if (el1.charge() * el2.charge() < 0.) {
550 for (elec =
elecs->begin(); elec !=
elecs->end(); ++elec) {
561 for (
int k = 0;
k < N_SignalPaths; ++
k) {
562 if (Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k])
565 if (Fired_Control_Trigger[
k])
579 if (el1.charge() * el2.charge() > 0.) {
References funct::abs(), edm::HLTGlobalStatus::accept(), reco::GsfElectron::IsolationVariables::ecalRecHitSumEt, singleTopDQM_cfi::elecs, reco::MuonIsolation::emEt, edm::HandleBase::failedToGet(), RunInfoPI::fake, edm::Event::getByToken(), reco::MuonIsolation::hadEt, reco::GsfElectron::IsolationVariables::hcalDepth1TowerSumEt, reco::MuonIsolation::hoEt, mps_fire::i, dqmiolumiharvest::j, dqmdumpme::k, HLT_FULL_cff::muon, PDWG_BPHSkim_cff::muons, reco::MuonIsolation::nJets, reco::MuonIsolation::nTracks, BeamMonitor_cff::primaryVertex, edm::Handle< T >::product(), edm::HLTGlobalStatus::size(), mathSSE::sqrt(), reco::MuonIsolation::sumPt, reco::GsfElectron::IsolationVariables::tkSumPt, HLT_FULL_cff::track, edm::Event::triggerNames(), commonCuts_cff::triggerResults_, and EgHLTOffTrigSelection_cfi::trigName.
◆ bookHistograms()
Implements DQMEDAnalyzer.
Definition at line 97 of file TopDiLeptonDQM.cc.
100 Events_ = iBooker.
book1D(
"00_Events",
"Isolated dilepton events", 5, 0., 5.);
105 Trigs_ = iBooker.
book1D(
"01_Trigs",
"Fired muon/electron triggers", 15, 0., 15.);
106 TriggerEff_ = iBooker.
book1D(
"02_TriggerEff",
"HL Trigger Efficiencies", 10, 0., 10.);
108 "HL Trigger Efficiencies #epsilon_{signal} = #frac{[signal] && "
109 "[control]}{[control]}");
110 Ntracks_ = iBooker.
book1D(
"Ntracks",
"Number of tracks", 50, 0., 50.);
112 Nmuons_ = iBooker.
book1D(
"03_Nmuons",
"Number of muons", 20, 0., 10.);
113 Nmuons_iso_ = iBooker.
book1D(
"04_Nmuons_iso",
"Number of isolated muons", 20, 0., 10.);
114 Nmuons_charge_ = iBooker.
book1D(
"Nmuons_charge",
"Number of muons * moun charge", 19, -10., 10.);
115 VxVy_muons_ = iBooker.
book2D(
"VxVy_muons",
"Vertex x-y-positon (global)", 40, -1., 1., 40, -1., 1.);
116 Vz_muons_ = iBooker.
book1D(
"Vz_muons",
"Vertex z-positon (global)", 40, -20., 20.);
121 Nelecs_ = iBooker.
book1D(
"05_Nelecs",
"Number of electrons", 20, 0., 10.);
122 Nelecs_iso_ = iBooker.
book1D(
"06_Nelecs_iso",
"Number of isolated electrons", 20, 0., 10.);
123 Nelecs_charge_ = iBooker.
book1D(
"Nelecs_charge",
"Number of elecs * elec charge", 19, -10., 10.);
125 pT_elecs_ = iBooker.
book1D(
"pT_elecs",
"P_T of electrons", 40, 0., 200.);
141 const int nbins = 200;
149 double log = logmin + (logmax - logmin) *
i /
nbins;
153 dimassRC_ = iBooker.
book1D(
"09_dimassRC",
"Dilepton mass RC", 50, 0., 200.);
154 dimassWC_ = iBooker.
book1D(
"11_dimassWC",
"Dilepton mass WC", 50, 0., 200.);
References trigObjTnPSource_cfi::bins, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), mps_fire::i, dqm-mbProfile::log, LaserClient_cfi::nbins, funct::pow(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), and dqm::impl::MonitorElement::setTitle().
◆ D_eta_elecs_
◆ D_eta_lepts_
◆ D_eta_muons_
◆ D_phi_elecs_
◆ D_phi_lepts_
◆ D_phi_muons_
◆ dimassRC_
◆ dimassRC_LOG10_
◆ dimassRC_LOGX_
◆ dimassWC_
◆ dimassWC_LOG10_
◆ dimassWC_LOGX_
◆ Eff
float TopDiLeptonDQM::Eff[100] |
|
private |
◆ elec_emf_cut_
double TopDiLeptonDQM::elec_emf_cut_ |
|
private |
◆ elec_eta_cut_
double TopDiLeptonDQM::elec_eta_cut_ |
|
private |
◆ elec_iso_cut_
double TopDiLeptonDQM::elec_iso_cut_ |
|
private |
◆ elec_pT_cut_
double TopDiLeptonDQM::elec_pT_cut_ |
|
private |
◆ ElecIso_cal_
◆ ElecIso_CombRelIso_
◆ ElecIso_trk_
◆ elecs_
◆ eta_elecs_
◆ eta_muons_
◆ Events_
◆ hltPaths_
std::vector<std::string> TopDiLeptonDQM::hltPaths_ |
|
private |
◆ hltPaths_sig_
std::vector<std::string> TopDiLeptonDQM::hltPaths_sig_ |
|
private |
◆ hltPaths_trig_
std::vector<std::string> TopDiLeptonDQM::hltPaths_trig_ |
|
private |
◆ HoverE_elecs_
◆ MassWindow_down_
double TopDiLeptonDQM::MassWindow_down_ |
|
private |
◆ MassWindow_up_
double TopDiLeptonDQM::MassWindow_up_ |
|
private |
◆ moduleName_
std::string TopDiLeptonDQM::moduleName_ |
|
private |
◆ MuIso_CombRelIso03_
◆ MuIso_emEt03_
◆ MuIso_hadEt03_
◆ MuIso_hoEt03_
◆ MuIso_nJets03_
◆ MuIso_nTracks03_
◆ MuIso_sumPt03_
◆ muon_eta_cut_
double TopDiLeptonDQM::muon_eta_cut_ |
|
private |
◆ muon_iso_cut_
double TopDiLeptonDQM::muon_iso_cut_ |
|
private |
◆ muon_pT_cut_
double TopDiLeptonDQM::muon_pT_cut_ |
|
private |
◆ muons_
◆ N_elel
int TopDiLeptonDQM::N_elel |
|
private |
◆ N_muel
int TopDiLeptonDQM::N_muel |
|
private |
◆ N_mumu
int TopDiLeptonDQM::N_mumu |
|
private |
◆ N_sig
int TopDiLeptonDQM::N_sig[100] |
|
private |
◆ N_trig
int TopDiLeptonDQM::N_trig[100] |
|
private |
◆ Nelecs_
◆ Nelecs_charge_
◆ Nelecs_iso_
◆ Nmuons_
◆ Nmuons_charge_
◆ Nmuons_iso_
◆ Ntracks_
◆ outfile
std::ofstream TopDiLeptonDQM::outfile |
|
private |
◆ outputFile_
std::string TopDiLeptonDQM::outputFile_ |
|
private |
◆ phi_elecs_
◆ phi_muons_
◆ pT_elecs_
◆ pT_muons_
◆ TriggerEff_
◆ triggerResults_
◆ Trigs_
◆ vertex_
◆ vertex_X_cut_
double TopDiLeptonDQM::vertex_X_cut_ |
|
private |
◆ vertex_Y_cut_
double TopDiLeptonDQM::vertex_Y_cut_ |
|
private |
◆ vertex_Z_cut_
double TopDiLeptonDQM::vertex_Z_cut_ |
|
private |
◆ VxVy_muons_
◆ Vz_muons_
MonitorElement * MuIso_nTracks03_
MonitorElement * Nelecs_charge_
MonitorElement * pT_muons_
T const * product() const
virtual void setTitle(const std::string &title)
set (ie. change) histogram/profile title
MonitorElement * pT_elecs_
MonitorElement * MuIso_CombRelIso03_
int nJets
number of jets in the cone
MonitorElement * dimassWC_LOG10_
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * TriggerEff_
edm::EDGetTokenT< reco::MuonCollection > muons_
MonitorElement * phi_elecs_
T getUntrackedParameter(std::string const &, T const &) const
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
MonitorElement * phi_muons_
primaryVertex
hltOfflineBeamSpot for HLTMON
float sumPt
sum-pt of tracks
MonitorElement * dimassRC_
MonitorElement * dimassWC_
MonitorElement * D_eta_lepts_
unsigned int size() const
Get number of paths stored.
MonitorElement * Ntracks_
MonitorElement * Nelecs_iso_
MonitorElement * Nmuons_charge_
float hcalDepth1TowerSumEt
MonitorElement * D_phi_muons_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * eta_muons_
edm::EDGetTokenT< reco::GsfElectronCollection > elecs_
MonitorElement * ElecIso_trk_
MonitorElement * Vz_muons_
MonitorElement * D_phi_lepts_
MonitorElement * HoverE_elecs_
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)
int nTracks
number of tracks in the cone (excluding veto region)
MonitorElement * D_phi_elecs_
MonitorElement * dimassRC_LOGX_
MonitorElement * MuIso_hoEt03_
MonitorElement * eta_elecs_
MonitorElement * dimassWC_LOGX_
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * MuIso_hadEt03_
MonitorElement * MuIso_emEt03_
MonitorElement * ElecIso_cal_
std::vector< std::string > hltPaths_
MonitorElement * VxVy_muons_
MonitorElement * D_eta_muons_
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
MonitorElement * MuIso_nJets03_
MonitorElement * dimassRC_LOG10_
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::VertexCollection > vertex_
bool accept() const
Has at least one path accepted the event?
Power< A, B >::type pow(const A &a, const B &b)
MonitorElement * Nmuons_iso_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
Abs< T >::type abs(const T &t)
MonitorElement * D_eta_elecs_
MonitorElement * ElecIso_CombRelIso_
std::vector< std::string > hltPaths_trig_
MonitorElement * MuIso_sumPt03_
std::vector< std::string > hltPaths_sig_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())