216 const int N_TriggerPaths =
hltPaths_.size();
220 bool Fired_Signal_Trigger[100] = {
false};
221 bool Fired_Control_Trigger[100] = {
false};
232 double DilepMass = 0.;
234 double vertex_X = 100.;
235 double vertex_Y = 100.;
236 double vertex_Z = 100.;
249 int numberTracks = primaryVertex.
tracksSize();
251 bool fake = primaryVertex.
isFake();
255 if (!fake && numberTracks > 3) {
257 vertex_X = primaryVertex.
x();
258 vertex_Y = primaryVertex.
y();
259 vertex_Z = primaryVertex.
z();
272 int N_Triggers = trigResults->size();
276 for (
int i_Trig = 0; i_Trig < N_Triggers; ++i_Trig) {
278 if (trigResults.
product()->accept(i_Trig)) {
282 for (
int i = 0;
i < N_TriggerPaths;
i++) {
293 for (
int j = 0;
j < N_SignalPaths; ++
j) {
296 Fired_Signal_Trigger[
j] =
true;
299 for (
int k = 0;
k < N_ControlPaths; ++
k) {
302 Fired_Control_Trigger[
k] =
true;
315 reco::MuonCollection::const_iterator
muon;
321 N_leptons = N_leptons + muons->size();
323 for (muon = muons->begin(); muon != muons->end(); ++
muon) {
325 float N_muons = muons->size();
326 float Q_muon = muon->charge();
330 double track_X = 100.;
331 double track_Y = 100.;
332 double track_Z = 100.;
334 if (muon->isGlobalMuon()) {
338 track_X = track->vx();
339 track_Y = track->vy();
340 track_Z = track->vz();
356 double muonCombRelIso = 1.;
358 if (muon->pt() != 0.)
385 reco::GsfElectronCollection::const_iterator elec;
391 N_leptons = N_leptons + elecs->size();
393 for (elec = elecs->begin(); elec != elecs->end(); ++elec) {
395 float N_elecs = elecs->size();
396 float Q_elec = elec->charge();
397 float HoverE = elec->hcalOverEcal();
403 double track_X = 100.;
404 double track_Y = 100.;
405 double track_Z = 100.;
409 track_X = track->vx();
410 track_Y = track->vy();
411 track_Z = track->vz();
423 elec->dr03IsolationVariables();
425 double elecCombRelIso = 1.;
427 if (elec->et() != 0.)
458 reco::MuonCollection::const_reference mu1 = muons->at(0);
459 reco::MuonCollection::const_reference mu2 = muons->at(1);
462 sqrt((mu1.energy() + mu2.energy()) * (mu1.energy() + mu2.energy()) -
463 (mu1.px() + mu2.px()) * (mu1.px() + mu2.px()) -
464 (mu1.py() + mu2.py()) * (mu1.py() + mu2.py()) -
465 (mu1.pz() + mu2.pz()) * (mu1.pz() + mu2.pz()));
469 if (mu1.charge() * mu2.charge() < 0.) {
477 for (muon = muons->begin(); muon != muons->end(); ++
muon) {
489 if (mu1.isGlobalMuon() && mu2.isGlobalMuon()) {
491 outfile <<
"--------------------"
493 outfile <<
" Run : " << N_run <<
"\n";
494 outfile <<
" Event : " << N_event <<
"\n";
495 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
498 outfile <<
"--------------------"
500 outfile <<
"DilepMass : " << DilepMass <<
"\n";
501 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
502 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
503 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
504 outfile <<
"Mu2 Pt : " << mu2.pt() <<
"\n";
505 outfile <<
"Mu2 Eta : " << mu2.eta() <<
"\n";
506 outfile <<
"Mu2 Phi : " << mu2.phi() <<
"\n";
507 outfile <<
"--------------------"
514 for (
int k = 0;
k < N_SignalPaths; ++
k) {
516 if (Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k]) ++
N_sig[
k];
518 if (Fired_Control_Trigger[k]) ++
N_trig[
k];
534 if (mu1.charge() * mu2.charge() > 0.) {
542 if (mu1.isGlobalMuon() && mu2.isGlobalMuon()) {
544 outfile <<
"---------------------"
546 outfile <<
" Run : " << N_run <<
"\n";
547 outfile <<
" Event : " << N_event <<
"\n";
548 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
551 outfile <<
"---------------------"
553 outfile <<
"DilepMass : " << DilepMass <<
"\n";
554 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
555 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
556 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
557 outfile <<
"Mu2 Pt : " << mu2.pt() <<
"\n";
558 outfile <<
"Mu2 Eta : " << mu2.eta() <<
"\n";
559 outfile <<
"Mu2 Phi : " << mu2.phi() <<
"\n";
560 outfile <<
"---------------------"
572 if (N_iso_el > 0 && N_iso_mu > 0) {
583 reco::MuonCollection::const_reference mu1 = muons->at(0);
584 reco::GsfElectronCollection::const_reference el1 = elecs->at(0);
587 sqrt((mu1.energy() + el1.energy()) * (mu1.energy() + el1.energy()) -
588 (mu1.px() + el1.px()) * (mu1.px() + el1.px()) -
589 (mu1.py() + el1.py()) * (mu1.py() + el1.py()) -
590 (mu1.pz() + el1.pz()) * (mu1.pz() + el1.pz()));
594 if (mu1.charge() * el1.charge() < 0.) {
602 for (muon = muons->begin(); muon != muons->end(); ++
muon) {
609 for (elec = elecs->begin(); elec != elecs->end(); ++elec) {
621 if (mu1.isGlobalMuon() && el1.isElectron()) {
623 outfile <<
"--------------------"
625 outfile <<
" Run : " << N_run <<
"\n";
626 outfile <<
" Event : " << N_event <<
"\n";
627 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
630 outfile <<
"--------------------"
632 outfile <<
"DilepMass : " << DilepMass <<
"\n";
633 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
634 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
635 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
636 outfile <<
"El1 Pt : " << el1.pt() <<
"\n";
637 outfile <<
"El1 Eta : " << el1.eta() <<
"\n";
638 outfile <<
"El1 Phi : " << el1.phi() <<
"\n";
639 outfile <<
"--------------------"
646 for (
int k = 0; k < N_SignalPaths; ++
k) {
648 if (Fired_Signal_Trigger[k] && Fired_Control_Trigger[k]) ++
N_sig[
k];
650 if (Fired_Control_Trigger[k]) ++
N_trig[
k];
666 if (mu1.charge() * el1.charge() > 0.) {
690 reco::GsfElectronCollection::const_reference el1 = elecs->at(0);
691 reco::GsfElectronCollection::const_reference el2 = elecs->at(1);
694 sqrt((el1.energy() + el2.energy()) * (el1.energy() + el2.energy()) -
695 (el1.px() + el2.px()) * (el1.px() + el2.px()) -
696 (el1.py() + el2.py()) * (el1.py() + el2.py()) -
697 (el1.pz() + el2.pz()) * (el1.pz() + el2.pz()));
701 if (el1.charge() * el2.charge() < 0.) {
709 for (elec = elecs->begin(); elec != elecs->end(); ++elec) {
721 if (el1.isElectron() && el2.isElectron()) {
723 outfile <<
"--------------------"
725 outfile <<
" Run : " << N_run <<
"\n";
726 outfile <<
" Event : " << N_event <<
"\n";
727 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
730 outfile <<
"--------------------"
732 outfile <<
"DilepMass : " << DilepMass <<
"\n";
733 outfile <<
"El1 Pt : " << el1.pt() <<
"\n";
734 outfile <<
"El1 Eta : " << el1.eta() <<
"\n";
735 outfile <<
"El1 Phi : " << el1.phi() <<
"\n";
736 outfile <<
"El2 Pt : " << el2.pt() <<
"\n";
737 outfile <<
"El2 Eta : " << el2.eta() <<
"\n";
738 outfile <<
"El2 Phi : " << el2.phi() <<
"\n";
739 outfile <<
"--------------------"
746 for (
int k = 0; k < N_SignalPaths; ++
k) {
748 if (Fired_Signal_Trigger[k] && Fired_Control_Trigger[k]) ++
N_sig[
k];
750 if (Fired_Control_Trigger[k]) ++
N_trig[
k];
766 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_
unsigned long long EventNumber_t
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_