215 const int N_TriggerPaths =
hltPaths_.size();
219 bool Fired_Signal_Trigger[100] = {
false};
220 bool Fired_Control_Trigger[100] = {
false};
222 int N_run = (evt.
id()).
run();
223 int N_event = (evt.
id()).
event();
231 double DilepMass = 0.;
233 double vertex_X = 100.;
234 double vertex_Y = 100.;
235 double vertex_Z = 100.;
248 int numberTracks = primaryVertex.
tracksSize();
250 bool fake = primaryVertex.
isFake();
254 if (!fake && numberTracks > 3) {
256 vertex_X = primaryVertex.
x();
257 vertex_Y = primaryVertex.
y();
258 vertex_Z = primaryVertex.
z();
271 int N_Triggers = trigResults->size();
275 for (
int i_Trig = 0; i_Trig < N_Triggers; ++i_Trig) {
277 if (trigResults.
product()->accept(i_Trig)) {
281 for (
int i = 0;
i < N_TriggerPaths;
i++) {
292 for (
int j = 0;
j < N_SignalPaths; ++
j) {
295 Fired_Signal_Trigger[
j] =
true;
298 for (
int k = 0;
k < N_ControlPaths; ++
k) {
301 Fired_Control_Trigger[
k] =
true;
314 reco::MuonCollection::const_iterator
muon;
320 N_leptons = N_leptons + muons->size();
322 for (muon = muons->begin(); muon != muons->end(); ++
muon) {
324 float N_muons = muons->size();
325 float Q_muon = muon->charge();
329 double track_X = 100.;
330 double track_Y = 100.;
331 double track_Z = 100.;
333 if (muon->isGlobalMuon()) {
337 track_X = track->vx();
338 track_Y = track->vy();
339 track_Z = track->vz();
355 double muonCombRelIso = 1.;
357 if (muon->pt() != 0.)
384 reco::GsfElectronCollection::const_iterator elec;
390 N_leptons = N_leptons + elecs->size();
392 for (elec = elecs->begin(); elec != elecs->end(); ++elec) {
394 float N_elecs = elecs->size();
395 float Q_elec = elec->charge();
396 float HoverE = elec->hcalOverEcal();
402 double track_X = 100.;
403 double track_Y = 100.;
404 double track_Z = 100.;
408 track_X = track->vx();
409 track_Y = track->vy();
410 track_Z = track->vz();
422 elec->dr03IsolationVariables();
424 double elecCombRelIso = 1.;
426 if (elec->et() != 0.)
457 reco::MuonCollection::const_reference mu1 = muons->at(0);
458 reco::MuonCollection::const_reference mu2 = muons->at(1);
461 sqrt((mu1.energy() + mu2.energy()) * (mu1.energy() + mu2.energy()) -
462 (mu1.px() + mu2.px()) * (mu1.px() + mu2.px()) -
463 (mu1.py() + mu2.py()) * (mu1.py() + mu2.py()) -
464 (mu1.pz() + mu2.pz()) * (mu1.pz() + mu2.pz()));
468 if (mu1.charge() * mu2.charge() < 0.) {
476 for (muon = muons->begin(); muon != muons->end(); ++
muon) {
488 if (mu1.isGlobalMuon() && mu2.isGlobalMuon()) {
490 outfile <<
"--------------------"
492 outfile <<
" Run : " << N_run <<
"\n";
493 outfile <<
" Event : " << N_event <<
"\n";
494 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
497 outfile <<
"--------------------"
499 outfile <<
"DilepMass : " << DilepMass <<
"\n";
500 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
501 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
502 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
503 outfile <<
"Mu2 Pt : " << mu2.pt() <<
"\n";
504 outfile <<
"Mu2 Eta : " << mu2.eta() <<
"\n";
505 outfile <<
"Mu2 Phi : " << mu2.phi() <<
"\n";
506 outfile <<
"--------------------"
513 for (
int k = 0;
k < N_SignalPaths; ++
k) {
515 if (Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k]) ++
N_sig[
k];
517 if (Fired_Control_Trigger[k]) ++
N_trig[
k];
533 if (mu1.charge() * mu2.charge() > 0.) {
541 if (mu1.isGlobalMuon() && mu2.isGlobalMuon()) {
543 outfile <<
"---------------------"
545 outfile <<
" Run : " << N_run <<
"\n";
546 outfile <<
" Event : " << N_event <<
"\n";
547 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
550 outfile <<
"---------------------"
552 outfile <<
"DilepMass : " << DilepMass <<
"\n";
553 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
554 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
555 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
556 outfile <<
"Mu2 Pt : " << mu2.pt() <<
"\n";
557 outfile <<
"Mu2 Eta : " << mu2.eta() <<
"\n";
558 outfile <<
"Mu2 Phi : " << mu2.phi() <<
"\n";
559 outfile <<
"---------------------"
571 if (N_iso_el > 0 && N_iso_mu > 0) {
582 reco::MuonCollection::const_reference mu1 = muons->at(0);
583 reco::GsfElectronCollection::const_reference el1 = elecs->at(0);
586 sqrt((mu1.energy() + el1.energy()) * (mu1.energy() + el1.energy()) -
587 (mu1.px() + el1.px()) * (mu1.px() + el1.px()) -
588 (mu1.py() + el1.py()) * (mu1.py() + el1.py()) -
589 (mu1.pz() + el1.pz()) * (mu1.pz() + el1.pz()));
593 if (mu1.charge() * el1.charge() < 0.) {
601 for (muon = muons->begin(); muon != muons->end(); ++
muon) {
608 for (elec = elecs->begin(); elec != elecs->end(); ++elec) {
620 if (mu1.isGlobalMuon() && el1.isElectron()) {
622 outfile <<
"--------------------"
624 outfile <<
" Run : " << N_run <<
"\n";
625 outfile <<
" Event : " << N_event <<
"\n";
626 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
629 outfile <<
"--------------------"
631 outfile <<
"DilepMass : " << DilepMass <<
"\n";
632 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
633 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
634 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
635 outfile <<
"El1 Pt : " << el1.pt() <<
"\n";
636 outfile <<
"El1 Eta : " << el1.eta() <<
"\n";
637 outfile <<
"El1 Phi : " << el1.phi() <<
"\n";
638 outfile <<
"--------------------"
645 for (
int k = 0; k < N_SignalPaths; ++
k) {
647 if (Fired_Signal_Trigger[k] && Fired_Control_Trigger[k]) ++
N_sig[
k];
649 if (Fired_Control_Trigger[k]) ++
N_trig[
k];
665 if (mu1.charge() * el1.charge() > 0.) {
689 reco::GsfElectronCollection::const_reference el1 = elecs->at(0);
690 reco::GsfElectronCollection::const_reference el2 = elecs->at(1);
693 sqrt((el1.energy() + el2.energy()) * (el1.energy() + el2.energy()) -
694 (el1.px() + el2.px()) * (el1.px() + el2.px()) -
695 (el1.py() + el2.py()) * (el1.py() + el2.py()) -
696 (el1.pz() + el2.pz()) * (el1.pz() + el2.pz()));
700 if (el1.charge() * el2.charge() < 0.) {
708 for (elec = elecs->begin(); elec != elecs->end(); ++elec) {
720 if (el1.isElectron() && el2.isElectron()) {
722 outfile <<
"--------------------"
724 outfile <<
" Run : " << N_run <<
"\n";
725 outfile <<
" Event : " << N_event <<
"\n";
726 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
729 outfile <<
"--------------------"
731 outfile <<
"DilepMass : " << DilepMass <<
"\n";
732 outfile <<
"El1 Pt : " << el1.pt() <<
"\n";
733 outfile <<
"El1 Eta : " << el1.eta() <<
"\n";
734 outfile <<
"El1 Phi : " << el1.phi() <<
"\n";
735 outfile <<
"El2 Pt : " << el2.pt() <<
"\n";
736 outfile <<
"El2 Eta : " << el2.eta() <<
"\n";
737 outfile <<
"El2 Phi : " << el2.phi() <<
"\n";
738 outfile <<
"--------------------"
745 for (
int k = 0; k < N_SignalPaths; ++
k) {
747 if (Fired_Signal_Trigger[k] && Fired_Control_Trigger[k]) ++
N_sig[
k];
749 if (Fired_Control_Trigger[k]) ++
N_trig[
k];
765 if (el1.charge() * el2.charge() > 0.) {
MonitorElement * Nelecs_charge_
MonitorElement * dimassRC_
MonitorElement * D_phi_muons_
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * D_phi_lepts_
MonitorElement * dimassWC_LOG10_
float sumPt
sum-pt of tracks
MonitorElement * HoverE_elecs_
MonitorElement * D_eta_muons_
MonitorElement * D_phi_elecs_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< std::string > hltPaths_trig_
edm::EDGetTokenT< reco::GsfElectronCollection > elecs_
double y() const
y coordinate
MonitorElement * phi_elecs_
MonitorElement * Nmuons_charge_
edm::EDGetTokenT< reco::VertexCollection > vertex_
MonitorElement * MuIso_sumPt03_
MonitorElement * eta_muons_
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)
edm::LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * ElecIso_cal_
MonitorElement * MuIso_nTracks03_
MonitorElement * eta_elecs_
edm::EDGetTokenT< reco::MuonCollection > muons_
float hcalDepth1TowerSumEt
MonitorElement * dimassRC_LOGX_
MonitorElement * D_eta_elecs_
MonitorElement * TriggerEff_
MonitorElement * MuIso_hoEt03_
MonitorElement * Ntracks_
MonitorElement * phi_muons_
int nJets
number of jets in the cone
Abs< T >::type abs(const T &t)
double z() const
y coordinate
MonitorElement * D_eta_lepts_
MonitorElement * Nmuons_iso_
MonitorElement * VxVy_muons_
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
MonitorElement * ElecIso_trk_
int nTracks
number of tracks in the cone (excluding veto region)
MonitorElement * pT_elecs_
double x() const
x coordinate
T const * product() const
MonitorElement * Vz_muons_
std::string const & triggerName(unsigned int index) const
MonitorElement * ElecIso_CombRelIso_
std::vector< std::string > hltPaths_
MonitorElement * dimassWC_
MonitorElement * dimassWC_LOGX_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
MonitorElement * MuIso_nJets03_
std::vector< std::string > hltPaths_sig_
MonitorElement * dimassRC_LOG10_
MonitorElement * MuIso_emEt03_
MonitorElement * pT_muons_
size_t tracksSize() const
number of tracks
MonitorElement * Nelecs_iso_
MonitorElement * MuIso_hadEt03_
MonitorElement * MuIso_CombRelIso03_