100 edm::LogWarning(
"HLTMuonDQMSource") <<
"Muon HLT Monitoring histograms will be saved to "
114 dbe_->setCurrentFolder(monitorName_);
119 for(std::vector<edm::ParameterSet>::iterator filterconf = filters.begin() ; filterconf != filters.end() ; filterconf++){
120 theDirectoryName.push_back(filterconf->getParameter<std::string>(
"directoryName"));
123 std::string _tmp_level = filterconf->getParameter<std::string>(
"directoryName");
124 std::vector<std::string> _tmp_bits = filterconf->getParameter<std::vector<std::string> >(
"triggerBits");
125 for(
size_t i = 0;
i < _tmp_bits.size(); ++
i ) {
164 for(
int trig = 0; trig <
nTrigs; trig++ ) {
178 if(
level < 4 ) sprintf(name,
"Level%i",
level);
179 else if (
level == 4 ) sprintf(name,
"Level%iSeed",
level-2);
180 else if (
level == 5 ) sprintf(name,
"Level%iSeed",
level-2);
181 else if (
level == 6 ) sprintf(name,
"Level2Isolation");
183 if(
level == 1 ) pt_max = 145;
189 hnValidHits[trig] =
dbe_->
book1D(
"HLTMuonL2_nValidHits",
"L2 Number of Valid Hits", NBINS, 0., 100.);
193 hnTkValidHits[trig] =
dbe_->
book1D(
"HLTMuonL3_nTkValidHits",
"L3 Number of Valid Tracker Hits", NBINS, 0., 100.);
200 float eta_bins[63] = {
201 -2.40, -2.35, -2.30, -2.25, -2.20, -2.15, -2.10, -2.05,
202 -2.00, -1.95, -1.90, -1.85, -1.80, -1.75, -1.70, -1.60,
203 -1.50, -1.40, -1.30, -1.20, -1.10, -1.00, -0.90, -0.80,
204 -0.70, -0.60, -0.50, -0.40, -0.30, -0.20, -0.10, -0.00,
205 0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80,
206 0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60,
207 1.70, 1.75, 1.80, 1.85, 1.90, 1.95, 2.00, 2.05,
208 2.10, 2.15, 2.20, 2.25, 2.30, 2.35, 2.40
212 for(
int ibin = 0; ibin < 145; ibin++ ) {
213 phi_bins[ibin] = -3.15 + (ibin)*(6.30/144);
216 for(
int ibin = 0; ibin < 51; ibin++ ) {
217 pt_bins[ibin] = ibin*(145./50.);
219 sprintf(name,
"HLTMuonL%i_NMu",
level);
220 sprintf(title,
"L%i number of muons",
level);
223 sprintf(name,
"HLTMuonL%i_pt",
level);
224 sprintf(title,
"L%i Pt",
level);
227 sprintf(name,
"HLTMuonL%i_eta",
level);
228 sprintf(title,
"L%i Muon #eta",
level);
231 sprintf(name,
"HLTMuonL%i_phi",
level);
232 sprintf(title,
"L%i Muon #phi",
level);
235 sprintf(name,
"HLTMuonL%i_phi_norm",
level);
236 sprintf(title,
"L%i Muon #phi_norm",
level);
239 sprintf(name,
"HLTMuonL%i_etaphi",
level);
240 sprintf(title,
"L%i Muon #eta vs #phi",
level);
244 sprintf(name,
"HLTMuonL%i_ptphi",
level);
245 sprintf(title,
"L%i Muon pt vs #phi",
level);
249 sprintf(name,
"HLTMuonL%i_pteta",
level);
250 sprintf(title,
"L%i Muon pt vs #eta",
level);
254 sprintf(name,
"HLTMuonL%i_charge",
level);
255 sprintf(title,
"L%i Muon Charge",
level);
260 sprintf(name,
"HLTMuonL%i_NMu",
level);
261 sprintf(title,
"L%i number of muons",
level);
264 sprintf(name,
"HLTMuonL%i_pt",
level);
265 sprintf(title,
"L%i Pt",
level);
268 sprintf(name,
"HLTMuonL%i_eta",
level);
269 sprintf(title,
"L%i Muon #eta",
level);
272 sprintf(name,
"HLTMuonL%i_phi",
level);
273 sprintf(title,
"L%i Muon #phi",
level);
276 sprintf(name,
"HLTMuonL%i_phi_norm",
level);
277 sprintf(title,
"L%i Muon #phi_norm",
level);
280 sprintf(name,
"HLTMuonL%i_etaphi",
level);
281 sprintf(title,
"L%i Muon #eta vs #phi",
level);
285 sprintf(name,
"HLTMuonL%i_ptphi",
level);
286 sprintf(title,
"L%i Muon pt vs #phi",
level);
290 sprintf(name,
"HLTMuonL%i_pteta",
level);
291 sprintf(title,
"L%i Muon pt vs #eta",
level);
295 sprintf(name,
"HLTMuonL%i_nHits",
level);
296 sprintf(title,
"L%i Number of Hits",
level);
299 sprintf(name,
"HLTMuonL%i_charge",
level);
300 sprintf(title,
"L%i Muon Charge",
level);
305 sprintf(name,
"HLTMuonL%iSeed_NMu",
level-2);
306 sprintf(title,
"L%iSeed number of muons",
level-2);
309 sprintf(name,
"HLTMuonL%iSeed_pt",
level-2);
310 sprintf(title,
"L%iSeed Pt",
level-2);
313 sprintf(name,
"HLTMuonL%iSeed_eta",
level-2);
314 sprintf(title,
"L%iSeed Muon #eta",
level-2);
317 sprintf(name,
"HLTMuonL%iSeed_phi",
level-2);
318 sprintf(title,
"L%iSeed Muon #phi",
level-2);
321 sprintf(name,
"HLTMuonL%iSeed_etaphi",
level-2);
322 sprintf(title,
"L%iSeed Muon #eta vs #phi",
level-2);
326 sprintf(name,
"HLTMuonL%iSeed_ptphi",
level-2);
327 sprintf(title,
"L%iSeed Muon pt vs #phi",
level-2);
331 sprintf(name,
"HLTMuonL%iSeed_pteta",
level-2);
332 sprintf(title,
"L%iSeed Muon pt vs #eta",
level-2);
336 sprintf(name,
"HLTMuonL%iSeed_charge",
level-2);
337 sprintf(title,
"L%iSeed Muon Charge",
level-2);
341 sprintf(name,
"HLTMuonL%iSeedtoL%i_ptres",
level-2,
level-3);
342 sprintf(title,
"L%iSeed1/Pt - L%iMuon1/Pt",
level-2,
level-3);
344 sprintf(title,
"1/PtL%iSeed - 1/PtL%i",
level-2,
level-3);
346 sprintf(name,
"HLTMuonL%iSeedtoL%i_ptrelres",
level-2,
level-3);
347 sprintf(title,
"(L%iSeed1/Pt - L%iMuon1/Pt)/(L%iMuon1/Pt)",
level-2,
level-3,
level-3);
349 sprintf(title,
"(1/PtL%iSeed - 1/PtL%i)/(1/PtL%i)",
level-2,
level-3,
level-3);
352 sprintf(name,
"HLTMuonL%iSeedtoL%i_etares",
level-2,
level-3);
353 sprintf(title,
"L%iSeed#eta - L%iMuon#eta",
level-2,
level-3);
355 sprintf(title,
"L%iSeed #eta - L%i #eta",
level-2,
level-3);
357 sprintf(name,
"HLTMuonL%iSeedtoL%i_etarelres",
level-2,
level-3);
358 sprintf(title,
"(L%iSeed#eta - L%iMuon#eta)/L%iMuon#eta",
level-2,
level-3,
level-3);
360 sprintf(title,
"(L%iSeed #eta - L%i #eta)/L%i #eta",
level-2,
level-3,
level-3);
363 sprintf(name,
"HLTMuonL%iSeedtoL%i_phires",
level-2,
level-3);
364 sprintf(title,
"L%iSeed#phi - L%iMuon#phi",
level-2,
level-3);
366 sprintf(title,
"L%iSeed #phi - L%i #phi",
level-2,
level-3);
368 sprintf(name,
"HLTMuonL%iSeedtoL%i_phirelres",
level-2,
level-3);
369 sprintf(title,
"(L%iSeed#phi - L%iMuon#phi)/L%iMuon#phi",
level-2,
level-3,
level-3);
371 sprintf(title,
"(L%iSeed #phi - L%i #phi)/L%i #phi",
level-2,
level-3,
level-3);
374 sprintf(name,
"HLTMuonL%iSeed_NMuperL%i",
level-2,
level-3);
375 sprintf(title,
"L%iSeedNMu per L%i",
level-2,
level-3);
379 else if(
level == 6 ) {
380 double max_energy = 1.0;
381 sprintf(name,
"HLTMuonL2_driso");
382 sprintf(title,
"dR Cone Size");
387 sprintf(name,
"HLTCaloTower_dRwithL2");
388 sprintf(title,
"#Delta R(L2muon, CaloTower)");
391 sprintf(name,
"HLTCaloTower_dRwithL3");
392 sprintf(title,
"#Delta R(L3muon, CaloTower)");
396 sprintf(name,
"HLTCaloTower_Et");
397 sprintf(title,
"HLT CaloTower Et");
400 sprintf(name,
"HLTCaloTower_Eta");
401 sprintf(title,
"HLT CaloTower #eta");
404 sprintf(name,
"HLTCaloTower_Phi");
405 sprintf(title,
"HLT CaloTower #phi");
409 sprintf(name,
"HLTCaloTower_HadEnergy");
410 sprintf(title,
"HLT CaloTower hadEnergy");
413 sprintf(name,
"HLTCaloTower_EmEnergy");
414 sprintf(title,
"HLT CaloTower emEnergy");
417 sprintf(name,
"HLTCaloTower_OuterEnergy");
418 sprintf(title,
"HLT CaloTower outerEnergy");
422 sprintf(name,
"HLTCaloTower_HadEt");
423 sprintf(title,
"HLT CaloTower hadEt");
426 sprintf(name,
"HLTCaloTower_EmEt");
427 sprintf(title,
"HLT CaloTower emEt");
430 sprintf(name,
"HLTCaloTower_OuterEt");
431 sprintf(title,
"HLT CaloTower outerEt");
435 sprintf(name,
"HLTCaloTower_EtaHadEt");
436 sprintf(title,
"HLT CaloTower hadEt");
440 sprintf(name,
"HLTCaloTower_EtaEmEt");
441 sprintf(title,
"HLT CaloTower emEt");
445 sprintf(name,
"HLTCaloTower_EtaOuterEt");
446 sprintf(title,
"HLT CaloTower outerEt");
451 sprintf(name,
"HLTCaloTower_PhiHadEt");
452 sprintf(title,
"HLT CaloTower hadEt");
456 sprintf(name,
"HLTCaloTower_PhiEmEt");
457 sprintf(title,
"HLT CaloTower emEt");
461 sprintf(name,
"HLTCaloTower_PhiOuterEt");
462 sprintf(title,
"HLT CaloTower outerEt");
469 sprintf(name,
"HLTMuonL%i_dr",
level);
470 sprintf(title,
"L%i Muon radial impact vs BeamSpot",
level);
473 sprintf(name,
"HLTMuonL%i_d0",
level);
474 sprintf(title,
"L%i Muon radial impact vs (0,0)",
level);
477 sprintf(name,
"HLTMuonL%i_dz0",
level);
478 sprintf(title,
"L%i Muon Z impact vs (0)",
level);
481 sprintf(name,
"HLTMuonL%i_dz",
level);
482 sprintf(title,
"L%i Muon Z impact vs BeamSpot",
level);
485 sprintf(name,
"HLTMuonL%i_err0",
level);
486 sprintf(title,
"L%i Muon Error on Pt",
level);
489 sprintf(name,
"HLTMuonL%i_iso",
level);
490 if (
level==2)sprintf(title,
"L%i Muon Energy in Isolation cone",
level);
491 else if (
level==3)sprintf(title,
"L%i Muon SumPt in Isolation cone",
level);
495 sprintf(name,
"HLTMuonL%i_DiMuMass",
level);
496 sprintf(title,
"L%i Opposite charge DiMuon invariant Mass",
level);
500 sprintf(name,
"HLTMuonL%i_drphi",
level);
501 sprintf(title,
"L%i #Deltar vs #phi",
level);
504 sprintf(title,
"L%i Muon radial impact vs BeamSpot",
level);
507 sprintf(name,
"HLTMuonL%i_d0phi",
level);
508 sprintf(title,
"L%i #Delta0 vs #phi",
level);
511 sprintf(title,
"L%i Muon radial impact vs (0,0)",
level);
514 sprintf(name,
"HLTMuonL%i_dz0eta",
level);
515 sprintf(title,
"L%i #Deltaz0 vs #eta",
level);
518 sprintf(title,
"L%i Muon Z impact vs (0)",
level);
521 sprintf(name,
"HLTMuonL%i_dzeta",
level);
522 sprintf(title,
"L%i #Deltaz vs #eta",
level);
525 sprintf(title,
"L%i Muon Z impact vs BeamSpot",
level);
529 sprintf(name,
"HLTMuonL%itoL%i_ptpull",
level,
level+1);
530 sprintf(title,
"(L%iMuon1/Pt - L%iMuon1/Pt)/#sigma_{pt}^{L2}",
level,
level+1);
532 sprintf(title,
"(1/PtL%i - 1/PtL%i)/#sigma_{pt}^{L2}",
level,
level+1);
534 sprintf(name,
"HLTMuonL%itoL%i_etapull",
level,
level+1);
535 sprintf(title,
"(L%iMuon#eta - L%iMuon#eta)/#sigma_{#eta}^{L2}",
level,
level+1);
537 sprintf(title,
"(L%i #eta - L%i #eta)/#sigma_{#eta}^{L2}",
level,
level+1);
539 sprintf(name,
"HLTMuonL%itoL%i_phipull",
level,
level+1);
540 sprintf(title,
"(L%iMuon#phi - L%iMuon#phi)/#sigma_{#phi}^{L2}",
level,
level+1);
542 sprintf(title,
"(L%i #phi - L%i #phi)/#sigma_{#phi}^{L2}",
level,
level+1);
545 sprintf(name,
"HLTMuonL%itoL%i_ptpullpt",
level,
level+1);
546 sprintf(title,
"L%i Muon #Delta Pt/#sigma_{pt}^{L2} vs Pt ",
level);
548 sprintf(title,
"(1/PtL%i - 1/PtL%i)/#sigma_{pt}^{L2}",
level,
level+1);
551 sprintf(name,
"HLTMuonL%itoL%i_etapulleta",
level,
level+1);
552 sprintf(title,
"L%i Muon #Delta#eta/#sigma_{#eta}^{L2} vs #eta ",
level);
554 sprintf(title,
"(L%i #eta - L%i #eta)/#sigma_{#eta}^{L2}",
level,
level+1);
557 sprintf(name,
"HLTMuonL%itoL%i_phipullphi",
level,
level+1);
558 sprintf(title,
"L%i Muon #Delta#phi/#sigma_{#phi}^{L2} vs #phi ",
level);
560 sprintf(title,
"(L%i #phi - L%i #phi)/#sigma_{#phi}^{L2}",
level,
level+1);
566 sprintf(name,
"HLTMuonL%itoL%i_ptres",
level,
level+1);
567 sprintf(title,
"L%iMuon1/Pt - L%iMuon1/Pt",
level,
level+1);
569 sprintf(title,
"1/PtL%i - 1/PtL%i",
level,
level+1);
571 sprintf(name,
"HLTMuonL%itoL%i_etares",
level,
level+1);
572 sprintf(title,
"L%iMuon#eta - L%iMuon#eta",
level,
level+1);
574 sprintf(title,
"L%i #eta - L%i #eta",
level,
level+1);
576 sprintf(name,
"HLTMuonL%itoL%i_phires",
level,
level+1);
577 sprintf(title,
"L%iMuon#phi - L%iMuon#phi",
level,
level+1);
579 sprintf(title,
"L%i #phi - L%i #phi",
level,
level+1);
582 sprintf(name,
"HLTMuonL%itoL%i_ptrespt",
level,
level+1);
583 sprintf(title,
"L%i Muon #Delta Pt vs Pt ",
level);
585 sprintf(title,
"1/PtL%i - 1/PtL%i",
level,
level+1);
588 sprintf(name,
"HLTMuonL%itoL%i_phiresphi",
level,
level+1);
589 sprintf(title,
"L%i Muon #Delta#phi vs #phi ",
level);
591 sprintf(title,
"L%i #phi - L%i #phi",
level,
level+1);
594 sprintf(name,
"HLTMuonL%itoL%i_etareseta",
level,
level+1);
595 sprintf(title,
"L%i Muon #Delta#eta vs #eta ",
level);
597 sprintf(title,
"L%i #eta - L%i #eta",
level,
level+1);
602 sprintf(name,
"HLTMuonL%itoL%i_ptrelres",
level,
level+1);
603 sprintf(title,
"(L%iMuon1/Pt - L%iMuon1/Pt)/(L%iMuon1/Pt)",
level,
level+1,
level+1);
607 sprintf(name,
"HLTMuonL%itoL%i_etarelres",
level,
level+1);
608 sprintf(title,
"(L%iMuon#eta - L%iMuon#eta)/L%iMuon#eta",
level,
level+1,
level+1);
612 sprintf(name,
"HLTMuonL%itoL%i_phirelres",
level,
level+1);
613 sprintf(title,
"(L%iMuon#phi - L%iMuon#phi)/L%iMuon#phi",
level,
level+1,
level+1);
618 sprintf(name,
"HLTMuonL%itoL%i_ptrelrespt",
level,
level+1);
619 sprintf(title,
"L%i Muon #DeltaPt/Pt vs Pt ",
level);
624 sprintf(name,
"HLTMuonL%itoL%i_phirelresphi",
level,
level+1);
625 sprintf(title,
"L%i Muon #Delta#phi/#phi vs #phi ",
level);
630 sprintf(name,
"HLTMuonL%itoL%i_etarelreseta",
level,
level+1);
631 sprintf(title,
"L%i Muon #Delta#eta/#eta vs #eta ",
level);
637 sprintf(name,
"HLTMuonL%itoL%i_chargeconvers",
level,
level+1);
638 sprintf(title,
"L%i Muon charge #rightarrow L%i Muon charge",
level,
level+1);
646 sprintf(name,
"HLTMuonL%itoL%i_fracpt",
level,
level+1);
647 sprintf(title,
"#ofL%iMuon/#ofL%iMuon",
level+1,
level);
650 sprintf(name,
"HLTMuonL%itoL%i_fraceta",
level,
level+1);
651 sprintf(title,
"#ofL%iMuon/#ofL%iMuon",
level+1,
level);
654 sprintf(name,
"HLTMuonL%itoL%i_fracphi",
level,
level+1);
655 sprintf(title,
"#ofL%iMuon/#ofL%iMuon",
level+1,
level);
660 sprintf(name,
"HLTMuonL%itoL3_ptres",
level);
661 sprintf(title,
"L%iMuon1/Pt - L%iMuon1/Pt",
level,
level+2);
663 sprintf(title,
"1/PtL%i - 1/PtL%i",
level,
level+2);
665 sprintf(name,
"HLTMuonL%itoL3_etares",
level);
666 sprintf(title,
"L%iMuon#eta - L3Muon#eta",
level);
668 sprintf(title,
"L%i #eta - L3 #eta",
level);
670 sprintf(name,
"HLTMuonL%itoL3_phires",
level);
671 sprintf(title,
"L%iMuon#phi - L3Muon#phi",
level);
673 sprintf(title,
"L%i #phi - L3 #phi",
level);
676 sprintf(name,
"HLTMuonL%itoL3_ptrespt",
level);
677 sprintf(title,
"L%i Muon #Delta Pt vs Pt (wrt L3) ",
level);
679 sprintf(title,
"1/PtL%i - 1/PtL3",
level);
682 sprintf(name,
"HLTMuonL%itoL3_phiresphi",
level);
683 sprintf(title,
"L%i Muon #Delta#phi vs #phi (wrt L3) ",
level);
685 sprintf(title,
"L%i #phi - L3 #phi",
level);
688 sprintf(name,
"HLTMuonL%itoL3_etareseta",
level);
689 sprintf(title,
"L%i Muon #Delta#eta vs #eta (wrt L3) ",
level);
691 sprintf(title,
"L%i #eta - L3 #eta",
level);
696 sprintf(name,
"HLTMuonL%itoL3_ptrelres",
level);
697 sprintf(title,
"(L%iMuon1/Pt - L%iMuon1/Pt)/(L%iMuon1/Pt)",
level,
level+2,
level+2);
699 sprintf(title,
"(1/PtL%i - 1/PtL3)/(1/PtL3)",
level);
701 sprintf(name,
"HLTMuonL%itoL3_etarelres",
level);
702 sprintf(title,
"(L%iMuon#eta - L3Muon#eta)/L3Muon#eta",
level);
704 sprintf(title,
"(L%i #eta - L3 #eta)/L3 #eta",
level);
706 sprintf(name,
"HLTMuonL%itoL3_phirelres",
level);
707 sprintf(title,
"(L%iMuon#phi - L3Muon#phi)/L3Muon#phi",
level);
709 sprintf(title,
"(L%i #phi - L3 #phi)/L3 #phi",
level);
712 sprintf(name,
"HLTMuonL%itoL3_ptrelrespt",
level);
713 sprintf(title,
"L%i Muon #DeltaPt/Pt vs Pt (wrt L3) ",
level);
715 sprintf(title,
"(1/PtL%i - 1/PtL3)/(1/PtL3)",
level);
718 sprintf(name,
"HLTMuonL%itoL3_phirelresphi",
level);
719 sprintf(title,
"L%i Muon #Delta#phi/#phi vs #phi (wrt L3) ",
level);
721 sprintf(title,
"(L%i #phi - L3 #phi)/L3 #phi",
level);
724 sprintf(name,
"HLTMuonL%itoL3_etarelreseta",
level);
725 sprintf(title,
"L%i Muon #Delta#eta/#eta vs #eta (wrt L3) ",
level);
727 sprintf(title,
"(L%i #eta - L3 #eta)/L3 #eta",
level);
731 sprintf(name,
"HLTMuonL%itoL3_chargeconvers",
level);
732 sprintf(title,
"L%i Muon charge #rightarrow L3 Muon charge",
level);
745 const unsigned int detector_id = 2<<28;
749 for(
int trig = 0; trig <
nTrigs; trig++ ) {
752 sprintf(name,
"DenominatorL%iptTrig%i",
level, trig);
753 _hpt1[trig][
level-1] =
new TH1D(name, name, 40, 0, 145);
754 sprintf(name,
"NumeratorL%iptTrig%i",
level, trig);
755 _hpt2[trig][
level-1] =
new TH1D(name, name, 40, 0, 145);
756 sprintf(name,
"DenominatorL%ietaTrig%i",
level, trig);
757 _heta1[trig][
level-1] =
new TH1D(name, name, 40, -2.5, 2.5);
758 sprintf(name,
"NumeratorL%ietaTrig%i",
level, trig);
759 _heta2[trig][
level-1] =
new TH1D(name, name, 40, -2.5, 2.5);
760 sprintf(name,
"DenominatorL%iphiTrig%i",
level, trig);
761 _hphi1[trig][
level-1] =
new TH1D(name, name, 40, -3.15, 3.15);
762 sprintf(name,
"NumeratorL%iphiTrig%i",
level, trig);
763 _hphi2[trig][
level-1] =
new TH1D(name, name, 40, -3.15, 3.15);
788 bool trigFired =
false;
789 bool FiredTriggers[
NTRIG] = {
false};
793 int ntrigs = trigResult->size();
795 for(
int itrig = 0; itrig != ntrigs; ++itrig) {
810 if( !trigFired )
return;
824 reco::RecoChargedCandidateCollection::const_iterator cand, cand2, cand3;
833 if( !l2mucands.
failedToGet() && l2mucands->size() != 0 ) {
840 if( !FiredTriggers[
ntrig] )
continue;
844 L2MuonTrajectorySeedCollection::const_iterator l2seed;
845 std::map<l1extra::L1MuonParticleRef, int> l1map;
846 for (l2seed=l2seeds->begin() ; l2seed != l2seeds->end();++l2seed){
851 const GeomDet* gdet = glbTrackingGeometry->idToDet( seedDetId );
876 if(
hphi[ntrig][0]->getEntries()){
891 for (cand=l2mucands->begin(); cand!=l2mucands->end(); ++cand) {
894 if ( (l2seed->startingState()).detId() == (seed->startingState()).detId() ) {
895 if(tk->pt()*l1ref->pt() != 0 ) {
909 double dphi=l1ref->phi()-tk->phi();
917 int l1charge = l1ref->charge();
918 int l2charge = tk->charge();
919 if( l1charge == -1 && l2charge == -1 ) chargeconv = 0;
920 else if( l1charge == -1 && l2charge == 1 ) chargeconv = 1;
921 else if( l1charge == 1 && l2charge == -1 ) chargeconv = 2;
922 else if( l1charge == 1 && l2charge == 1 ) chargeconv = 3;
929 for (cand=l3mucands->begin(); cand!=l3mucands->end(); ++cand) {
933 if(l1ref->pt()*l3tk->pt() != 0 ) {
944 double dphi=l1ref->phi()-l3tk->phi();
952 int l1charge = l1ref->charge();
953 int l3charge = l3tk->charge();
954 if( l1charge == -1 && l3charge == -1 ) chargeconv = 0;
955 else if( l1charge == -1 && l3charge == 1 ) chargeconv = 1;
956 else if( l1charge == 1 && l3charge == -1 ) chargeconv = 2;
957 else if( l1charge == 1 && l3charge == 1 ) chargeconv = 3;
973 std::map<l1extra::L1MuonParticleRef, int>::iterator it;
974 for( it = l1map.begin(); it != l1map.end(); it++ ) {
983 L3MuonTrajectorySeedCollection::const_iterator l3seed;
984 std::map<reco::TrackRef, int> l2map;
985 for (l3seed=l3seeds->begin() ; l3seed != l3seeds->end();++l3seed){
990 const GeomDet* gdet = glbTrackingGeometry->idToDet( seedDetId );
1014 std::map<reco::TrackRef, int>::iterator it;
1015 for( it = l2map.begin(); it != l2map.end(); it++ ) {
1024 iEvent.
getByLabel(
"hltOfflineBeamSpot",recoBeamSpotHandle);
1025 if (!recoBeamSpotHandle.
failedToGet()) beamSpot = *recoBeamSpotHandle;
1028 LogDebug(
"HLTMuonDQMSource") <<
" filling L2 stuff " << std::endl;
1032 for (cand=l2mucands->begin(); cand!=l2mucands->end(); ++cand) {
1035 LogDebug(
"HLTMuonDQMSource") <<
" filling L2 Iso stuff " << std::endl;
1036 if ( l2depMap->contains(tk.
id()) ){
1038 double dephlt = calDeposit.depositWithin(
coneSize_);
1042 for(
int idep = 0; idep < 10; idep++ ) {
1043 double conesize = (idep + 1)*
coneSize_/10.0;
1044 depL2[idep] = calDeposit.depositWithin(conesize);
1053 if ( tk->charge() != 0 ) {
1057 if(
hphi[ntrig][1]->getEntries()){
1059 hphi_norm[ntrig][1]->setBinContent(ibin,
1082 for (; cand2!=l2mucands->end(); cand2++) {
1084 if ( tk->charge()*tk2->charge() == -1 ){
1085 double mass=(cand->p4()+cand2->p4()).M();
1089 }
else edm::LogWarning(
"HLTMonMuon")<<
"stop filling candidate with update@Vtx failure";
1093 LogDebug(
"HLTMuonDQMSource") <<
" filling L3 stuff " << std::endl;
1097 for (cand=l3mucands->begin(); cand!=l3mucands->end(); ++cand) {
1100 if ( l3depMap->contains(tk.
id()) ){
1102 double dephlt = calDeposit.depositWithin(
coneSize_);
1111 if(
hphi[ntrig][2]->getEntries()){
1113 hphi_norm[ntrig][2]->setBinContent(ibin,
1139 for (; cand2!=l3mucands->end(); cand2++) {
1141 if ( tk->charge()*tk2->charge() == -1 ){
1142 double mass=(cand->p4()+cand2->p4()).M();
1148 if(tk->pt()*l2tk->pt() != 0 ) {
1153 double pterr = (tk->ptError()/(tk->pt()*tk->pt()));
1158 double dphi=l2tk->phi()-tk->phi();
1173 int chargeconv = -1;
1174 int l2charge = l2tk->charge();
1175 int l3charge = tk->charge();
1176 if( l2charge == -1 && l3charge == -1 ) chargeconv = 0;
1177 else if( l2charge == -1 && l3charge == 1 ) chargeconv = 1;
1178 else if( l2charge == 1 && l3charge == -1 ) chargeconv = 2;
1179 else if( l2charge == 1 && l3charge == 1 ) chargeconv = 3;
1186 for(
int nbin = 1; nbin <
_hpt1[
ntrig][
level]->GetNbinsX()+1; nbin++ ) {
1187 if(
_hpt1[ntrig][
level]->GetBinContent(nbin) != 0 ) {
1189 double err =
sqrt(frac*fabs(1 - frac)/
_hpt1[ntrig][
level]->GetBinContent(nbin));
1193 if(
_heta1[ntrig][
level]->GetBinContent(nbin) != 0 ) {
1195 double err =
sqrt(frac*fabs(1 - frac)/
_heta1[ntrig][
level]->GetBinContent(nbin));
1199 if(
_hphi1[ntrig][
level]->GetBinContent(nbin) != 0 ) {
1201 double err =
sqrt(frac*fabs(1 - frac)/
_hphi1[ntrig][
level]->GetBinContent(nbin));
1220 if( !l2mucands.
failedToGet() && l2mucands->size() != 0 )
1223 if( !FiredTriggers[
ntrig] )
continue;
1226 for( itower = caloTower->begin(); itower != caloTower->end(); ++itower ) {
1227 if( (*itower).et() == 0 )
continue;
1231 for (cand=l2mucands->begin(); cand!=l2mucands->end(); ++cand) {
1239 for (cand=l3mucands->begin(); cand!=l3mucands->end(); ++cand) {
MonitorElement * hseedptrelres[NTRIG][2]
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hptpullpt[NTRIG]
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
void setBinContent(int binx, double content)
set content of bin (1-D)
edm::InputTag l2collectionTag_
MonitorElement * htowerEtaHadEt[NTRIG]
int numberOfValidHits() const
edm::InputTag l3seedscollectionTag_
MonitorElement * htowerHadEt[NTRIG]
TrackCharge charge() const
MonitorElement * hnHits[NTRIG][4]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * hL2muonIsoDR[NTRIG]
int numberOfValidMuonHits() const
MonitorElement * htowerdRL3[NTRIG]
MonitorElement * hetares[NTRIG][3]
MonitorElement * hetapulleta[NTRIG]
MonitorElement * hnTkValidHits[NTRIG]
MonitorElement * hNMu[NTRIG][5]
edm::InputTag l3collectionTag_
MonitorElement * hdrphi[NTRIG][2]
MonitorElement * hseedphirelres[NTRIG][2]
MonitorElement * hptrelrespt[NTRIG][3]
Geom::Phi< T > phi() const
std::vector< CaloTower >::const_iterator const_iterator
MonitorElement * hdimumass[NTRIG][2]
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 * hphipull[NTRIG]
GlobalPoint globalPosition() const
MonitorElement * hphifrac[NTRIG][2]
double coneSize_
every n events
double getEntries(void) const
get # of entries
MonitorElement * hetafrac[NTRIG][2]
MonitorElement * hphipullphi[NTRIG]
MonitorElement * htowerEta[NTRIG]
MonitorElement * htowerEtaOuterEt[NTRIG]
MonitorElement * hphirelresphi[NTRIG][3]
std::vector< TPRegexp > filters
MonitorElement * htowerPhiEmEt[NTRIG]
MonitorElement * hphiresphi[NTRIG][3]
MonitorElement * hseedptres[NTRIG][2]
int numberOfValidTrackerHits() const
MonitorElement * hptphi[NTRIG][5]
MonitorElement * hseedNMuper[NTRIG][2]
MonitorElement * htowerEt[NTRIG]
MonitorElement * hnMuValidHits[NTRIG]
double deltaR(double eta1, double phi1, double eta2, double phi2)
MonitorElement * htowerdRL2[NTRIG]
MonitorElement * htowerHadEnergy[NTRIG]
MonitorElement * hdz0eta[NTRIG][2]
MonitorElement * hl1quality[NTRIG]
MonitorElement * hdr[NTRIG][2]
MonitorElement * hd0phi[NTRIG][2]
MonitorElement * hetareseta[NTRIG][3]
MonitorElement * hptpull[NTRIG]
unsigned int triggerIndex(std::string const &name) const
std::string striggers_[20]
MonitorElement * bookString(const char *name, const char *value)
Book string.
MonitorElement * htowerOuterEnergy[NTRIG]
MonitorElement * hptrespt[NTRIG][3]
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
MonitorElement * hchargeconv[NTRIG][3]
void analyze(const edm::Event &e, const edm::EventSetup &c)
Fake Analyze.
MonitorElement * hphi_norm[NTRIG][5]
MonitorElement * hcharge[NTRIG][5]
int prescaleEvt_
mutriggered events
MonitorElement * hpt[NTRIG][5]
edm::InputTag l2seedscollectionTag_
MonitorElement * htowerEmEt[NTRIG]
edm::ParameterSet parameters_
edm::InputTag l3isolationTag_
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
MonitorElement * htowerEtaEmEt[NTRIG]
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
MonitorElement * hiso[NTRIG][2]
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * hptres[NTRIG][3]
MonitorElement * hseedetares[NTRIG][2]
MonitorElement * hseedetarelres[NTRIG][2]
MonitorElement * htowerPhiHadEt[NTRIG]
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
MonitorElement * hnValidHits[NTRIG]
MonitorElement * hphi[NTRIG][5]
MonitorElement * hseedphires[NTRIG][2]
const unsigned int detId() const
T const * product() const
MonitorElement * hd0[NTRIG][2]
MonitorElement * hptrelres[NTRIG][3]
MonitorElement * hphirelres[NTRIG][3]
MonitorElement * hetapull[NTRIG]
std::vector< std::string > theDirectoryName
void tagContents(const std::string &path, unsigned int myTag)
tag all children of folder (does NOT include subfolders)
GlobalVector globalMomentum() const
MonitorElement * hphires[NTRIG][3]
MonitorElement * hdzeta[NTRIG][2]
HLTMuonDQMSource(const edm::ParameterSet &)
MonitorElement * hptfrac[NTRIG][2]
MonitorElement * htowerOuterEt[NTRIG]
MonitorElement * heta[NTRIG][5]
int getNbinsX(void) const
get # of bins in X-axis
MonitorElement * htowerEmEnergy[NTRIG]
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
DQM Client Diagnostic.
MonitorElement * htowerPhi[NTRIG]
MonitorElement * hdz0[NTRIG][2]
std::vector< std::string > theHLTCollectionLevel
const Point & position() const
position
ProductID id() const
Accessor for product ID.
void showDirStructure(void) const
edm::InputTag l2isolationTag_
MonitorElement * hetaphi[NTRIG][5]
MonitorElement * herr0[NTRIG][2]
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
MonitorElement * htowerPhiOuterEt[NTRIG]
T const * get() const
Returns C++ pointer to the item.
MonitorElement * hpteta[NTRIG][5]
edm::InputTag TrigResultInput
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::vector< std::string > theTriggerBits
MonitorElement * hetarelres[NTRIG][3]
MonitorElement * hdz[NTRIG][2]
void setCurrentFolder(const std::string &fullpath)
MonitorElement * hetarelreseta[NTRIG][3]
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.