204 const int N_TriggerPaths =
hltPaths_.size();
208 bool Fired_Signal_Trigger[100] = {
false};
209 bool Fired_Control_Trigger[100] = {
false};
211 int N_run = (evt.
id()).
run();
212 int N_event = (evt.
id()).
event();
220 double DilepMass = 0.;
222 double vertex_X = 100.;
223 double vertex_Y = 100.;
224 double vertex_Z = 100.;
245 int numberTracks = primaryVertex.
tracksSize();
247 bool fake = primaryVertex.
isFake();
251 if( !fake && numberTracks > 3 ) {
253 vertex_X = primaryVertex.
x();
254 vertex_Y = primaryVertex.
y();
255 vertex_Z = primaryVertex.
z();
278 int N_Triggers = trigResults->size();
282 for(
int i_Trig = 0; i_Trig < N_Triggers; ++i_Trig ) {
284 if (trigResults.
product()->accept(i_Trig)) {
288 for(
int i = 0;
i < N_TriggerPaths;
i++ ) {
301 for(
int j = 0;
j < N_SignalPaths; ++
j ) {
307 for(
int k = 0;
k < N_ControlPaths; ++
k ) {
326 reco::MuonCollection::const_iterator
muon;
340 N_leptons = N_leptons + muons->size();
342 for(muon = muons->begin(); muon!= muons->end(); ++
muon) {
344 float N_muons = muons->size();
345 float Q_muon = muon->charge();
349 double track_X = 100.;
350 double track_Y = 100.;
351 double track_Z = 100.;
353 if( muon->isGlobalMuon() ) {
357 track_X = track->vx();
358 track_Y = track->vy();
359 track_Z = track->vz();
376 double muonCombRelIso = 1.;
378 if ( muon->pt() != 0. )
379 muonCombRelIso = ( muIso03.
emEt + muIso03.
hadEt + muIso03.
hoEt + muIso03.
sumPt ) / muon->pt();
405 reco::GsfElectronCollection::const_iterator elec;
419 N_leptons = N_leptons + elecs->size();
421 for(elec = elecs->begin(); elec!= elecs->end(); ++elec) {
423 float N_elecs = elecs->size();
424 float Q_elec = elec->charge();
425 float HoverE = elec->hcalOverEcal();
431 double track_X = 100.;
432 double track_Y = 100.;
433 double track_Z = 100.;
437 track_X = track->vx();
438 track_Y = track->vy();
439 track_Z = track->vz();
452 double elecCombRelIso = 1.;
454 if ( elec->et() != 0. )
487 reco::MuonCollection::const_reference mu1 = muons->at(0);
488 reco::MuonCollection::const_reference mu2 = muons->at(1);
490 DilepMass =
sqrt( (mu1.energy()+mu2.energy())*(mu1.energy()+mu2.energy())
491 - (mu1.px()+mu2.px())*(mu1.px()+mu2.px())
492 - (mu1.py()+mu2.py())*(mu1.py()+mu2.py())
493 - (mu1.pz()+mu2.pz())*(mu1.pz()+mu2.pz())
498 if( mu1.charge()*mu2.charge() < 0. ) {
506 for(muon = muons->begin(); muon!= muons->end(); ++
muon) {
519 if( mu1.isGlobalMuon() && mu2.isGlobalMuon() ) {
521 outfile <<
"--------------------" <<
"\n";
522 outfile <<
" Run : " << N_run <<
"\n";
523 outfile <<
" Event : " << N_event <<
"\n";
524 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
525 outfile <<
" Type : mu mu" <<
"\n";
526 outfile <<
"--------------------" <<
"\n";
527 outfile <<
"DilepMass : " << DilepMass <<
"\n";
528 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
529 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
530 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
531 outfile <<
"Mu2 Pt : " << mu2.pt() <<
"\n";
532 outfile <<
"Mu2 Eta : " << mu2.eta() <<
"\n";
533 outfile <<
"Mu2 Phi : " << mu2.phi() <<
"\n";
534 outfile <<
"--------------------" <<
"\n";
542 for(
int k = 0;
k < N_SignalPaths; ++
k ) {
544 if( Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k] ) ++
N_sig[
k];
546 if( Fired_Control_Trigger[k] ) ++
N_trig[
k];
561 if( mu1.charge()*mu2.charge() > 0. ) {
569 if( mu1.isGlobalMuon() && mu2.isGlobalMuon() ) {
571 outfile <<
"---------------------" <<
"\n";
572 outfile <<
" Run : " << N_run <<
"\n";
573 outfile <<
" Event : " << N_event <<
"\n";
574 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
575 outfile <<
" Type : WC mu mu" <<
"\n";
576 outfile <<
"---------------------" <<
"\n";
577 outfile <<
"DilepMass : " << DilepMass <<
"\n";
578 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
579 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
580 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
581 outfile <<
"Mu2 Pt : " << mu2.pt() <<
"\n";
582 outfile <<
"Mu2 Eta : " << mu2.eta() <<
"\n";
583 outfile <<
"Mu2 Phi : " << mu2.phi() <<
"\n";
584 outfile <<
"---------------------" <<
"\n";
601 if( N_iso_el > 0 && N_iso_mu > 0 ) {
611 reco::MuonCollection::const_reference mu1 = muons->at(0);
612 reco::GsfElectronCollection::const_reference el1 = elecs->at(0);
614 DilepMass =
sqrt( (mu1.energy()+el1.energy())*(mu1.energy()+el1.energy())
615 - (mu1.px()+el1.px())*(mu1.px()+el1.px())
616 - (mu1.py()+el1.py())*(mu1.py()+el1.py())
617 - (mu1.pz()+el1.pz())*(mu1.pz()+el1.pz())
622 if( mu1.charge()*el1.charge() < 0. ) {
630 for(muon = muons->begin(); muon!= muons->end(); ++
muon) {
638 for(elec = elecs->begin(); elec!= elecs->end(); ++elec) {
651 if( mu1.isGlobalMuon() && el1.isElectron() ) {
653 outfile <<
"--------------------" <<
"\n";
654 outfile <<
" Run : " << N_run <<
"\n";
655 outfile <<
" Event : " << N_event <<
"\n";
656 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
657 outfile <<
" Type : mu el" <<
"\n";
658 outfile <<
"--------------------" <<
"\n";
659 outfile <<
"DilepMass : " << DilepMass <<
"\n";
660 outfile <<
"Mu1 Pt : " << mu1.pt() <<
"\n";
661 outfile <<
"Mu1 Eta : " << mu1.eta() <<
"\n";
662 outfile <<
"Mu1 Phi : " << mu1.phi() <<
"\n";
663 outfile <<
"El1 Pt : " << el1.pt() <<
"\n";
664 outfile <<
"El1 Eta : " << el1.eta() <<
"\n";
665 outfile <<
"El1 Phi : " << el1.phi() <<
"\n";
666 outfile <<
"--------------------" <<
"\n";
674 for(
int k = 0; k < N_SignalPaths; ++
k ) {
676 if( Fired_Signal_Trigger[k] && Fired_Control_Trigger[k] ) ++
N_sig[
k];
678 if( Fired_Control_Trigger[k] ) ++
N_trig[
k];
693 if( mu1.charge()*el1.charge() > 0. ) {
720 reco::GsfElectronCollection::const_reference el1 = elecs->at(0);
721 reco::GsfElectronCollection::const_reference el2 = elecs->at(1);
723 DilepMass =
sqrt( (el1.energy()+el2.energy())*(el1.energy()+el2.energy())
724 - (el1.px()+el2.px())*(el1.px()+el2.px())
725 - (el1.py()+el2.py())*(el1.py()+el2.py())
726 - (el1.pz()+el2.pz())*(el1.pz()+el2.pz())
731 if( el1.charge()*el2.charge() < 0. ) {
739 for(elec = elecs->begin(); elec!= elecs->end(); ++elec) {
752 if( el1.isElectron() && el2.isElectron() ) {
754 outfile <<
"--------------------" <<
"\n";
755 outfile <<
" Run : " << N_run <<
"\n";
756 outfile <<
" Event : " << N_event <<
"\n";
757 outfile <<
"LumiBlock : " << N_lumi <<
"\n";
758 outfile <<
" Type : el el" <<
"\n";
759 outfile <<
"--------------------" <<
"\n";
760 outfile <<
"DilepMass : " << DilepMass <<
"\n";
761 outfile <<
"El1 Pt : " << el1.pt() <<
"\n";
762 outfile <<
"El1 Eta : " << el1.eta() <<
"\n";
763 outfile <<
"El1 Phi : " << el1.phi() <<
"\n";
764 outfile <<
"El2 Pt : " << el2.pt() <<
"\n";
765 outfile <<
"El2 Eta : " << el2.eta() <<
"\n";
766 outfile <<
"El2 Phi : " << el2.phi() <<
"\n";
767 outfile <<
"--------------------" <<
"\n";
775 for(
int k = 0; k < N_SignalPaths; ++
k ) {
777 if( Fired_Signal_Trigger[k] && Fired_Control_Trigger[k] ) ++
N_sig[
k];
779 if( Fired_Control_Trigger[k] ) ++
N_trig[
k];
794 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
MonitorElement * Vz_muons_
std::string const & triggerName(unsigned int index) const
MonitorElement * ElecIso_CombRelIso_
T const * product() const
std::vector< std::string > hltPaths_
MonitorElement * dimassWC_
MonitorElement * dimassWC_LOGX_
edm::EDGetTokenT< 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_