diff --git a/DQM/L1TMonitor/interface/L1TStage2EMTF.h b/DQM/L1TMonitor/interface/L1TStage2EMTF.h index 185566749eda5..3fdb27fc9d71a 100644 --- a/DQM/L1TMonitor/interface/L1TStage2EMTF.h +++ b/DQM/L1TMonitor/interface/L1TStage2EMTF.h @@ -52,17 +52,24 @@ class L1TStage2EMTF : public DQMOneEDAnalyzer<> { MonitorElement* emtfTrackBXVsCSCLCT[3]; MonitorElement* emtfTrackBXVsRPCHit[3]; MonitorElement* emtfTrackPt; - MonitorElement* emtfTrackPtHighQuality; //Chad Freer May 8 2018 + MonitorElement* emtfTrackUnconstrainedPt; + MonitorElement* emtfTrackDxy; + MonitorElement* emtfTrackPtHighQuality; //Chad Freer May 8 2018 + MonitorElement* emtfTrackUnconstrainedPtHighQuality; MonitorElement* emtfTrackPtHighQualityHighPT; + MonitorElement* emtfTrackUnconstrainedPtHighQualityHighUPT; MonitorElement* emtfTrackEta; MonitorElement* emtfTrackEtaHighQuality; //Chad Freer May 8 2018 MonitorElement* emtfTrackEtaHighQualityHighPT; + MonitorElement* emtfTrackEtaHighQualityHighUPT; MonitorElement* emtfTrackPhi; MonitorElement* emtfTrackPhiHighQuality; MonitorElement* emtfTrackPhiHighQualityHighPT; + MonitorElement* emtfTrackPhiHighQualityHighUPT; MonitorElement* emtfTrackOccupancy; MonitorElement* emtfTrackOccupancyHighQuality; //Chad Freer May 8 2018 MonitorElement* emtfTrackOccupancyHighQualityHighPT; + MonitorElement* emtfTrackOccupancyHighQualityHighUPT; MonitorElement* emtfTrackMode; MonitorElement* emtfTrackQuality; MonitorElement* emtfTrackQualityVsMode; @@ -70,6 +77,8 @@ class L1TStage2EMTF : public DQMOneEDAnalyzer<> { MonitorElement* emtfMuonBX; MonitorElement* emtfMuonhwPt; + MonitorElement* emtfMuonhwPtUnconstrained; + MonitorElement* emtfMuonhwDxy; MonitorElement* emtfMuonhwEta; MonitorElement* emtfMuonhwPhi; MonitorElement* emtfMuonhwQual; diff --git a/DQM/L1TMonitor/src/L1TStage2EMTF.cc b/DQM/L1TMonitor/src/L1TStage2EMTF.cc index a07d71addb589..6c9d20ed9cde6 100644 --- a/DQM/L1TMonitor/src/L1TStage2EMTF.cc +++ b/DQM/L1TMonitor/src/L1TStage2EMTF.cc @@ -176,6 +176,12 @@ void L1TStage2EMTF::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, emtfTrackPt = ibooker.book1D("emtfTrackPt", "EMTF Track p_{T}", 256, 1, 257); emtfTrackPt->setAxisTitle("Track p_{T} [GeV]", 1); + emtfTrackUnconstrainedPt = ibooker.book1D("emtfTrackUnconstrainedPt", "EMTF Track Unconstrained p_{T}", 256, 1, 257); + emtfTrackUnconstrainedPt->setAxisTitle("Track Unconstrained p_{T} [GeV]", 1); + + emtfTrackDxy = ibooker.book1D("emtfTrackDxy", "EMTF Track d_{xy}", 3, 0, 3); + emtfTrackDxy->setAxisTitle("Track d_{xy}", 1); + emtfTrackEta = ibooker.book1D("emtfTrackEta", "EMTF Track #eta", 100, -2.5, 2.5); emtfTrackEta->setAxisTitle("Track #eta", 1); @@ -216,6 +222,10 @@ void L1TStage2EMTF::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, emtfTrackPtHighQuality = ibooker.book1D("emtfTrackPtHighQuality", "EMTF High Quality Track p_{T}", 256, 1, 257); emtfTrackPtHighQuality->setAxisTitle("Track p_{T} [GeV] (Quality #geq 12)", 1); + emtfTrackUnconstrainedPtHighQuality = + ibooker.book1D("emtfTrackUnconstrainedPtHighQuality", "EMTF High Quality Track Unconstrained p_{T}", 256, 1, 257); + emtfTrackUnconstrainedPtHighQuality->setAxisTitle("Track Unconstrained p_{T} [GeV] (Quality #geq 12)", 1); + emtfTrackEtaHighQuality = ibooker.book1D("emtfTrackEtaHighQuality", "EMTF High Quality Track #eta", 100, -2.5, 2.5); emtfTrackEtaHighQuality->setAxisTitle("Track #eta (Quality #geq 12)", 1); @@ -252,6 +262,30 @@ void L1TStage2EMTF::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, emtfTrackOccupancyHighQualityHighPT->setAxisTitle("#phi", 2); //Chad Freer May 8 2018 (END new plots) + emtfTrackUnconstrainedPtHighQualityHighUPT = ibooker.book1D( + "emtfTrackUnconstrainedPtHighQualityHighUPT", "EMTF High Quality High UPT Track Unconstrained p_{T}", 256, 1, 257); + emtfTrackUnconstrainedPtHighQualityHighUPT->setAxisTitle( + "Track Unconstrained p_{T} [GeV] (Quality #geq 12 and UpT>10)", 1); + + emtfTrackEtaHighQualityHighUPT = + ibooker.book1D("emtfTrackEtaHighQualityHighUPT", "EMTF High Quality High UPT Track #eta", 100, -2.5, 2.5); + emtfTrackEtaHighQualityHighUPT->setAxisTitle("Track #eta (Quality #geq 12 and UpT>10)", 1); + + emtfTrackPhiHighQualityHighUPT = + ibooker.book1D("emtfTrackPhiHighQualityHighUPT", "EMTF High Quality High UPT #phi", 126, -3.15, 3.15); + emtfTrackPhiHighQualityHighUPT->setAxisTitle("Track #phi (Quality #geq 12 and UpT>10)", 1); + + emtfTrackOccupancyHighQualityHighUPT = ibooker.book2D("emtfTrackOccupancyHighQualityHighUPT", + "EMTF High Quality High UPT Track Occupancy", + 100, + -2.5, + 2.5, + 126, + -3.15, + 3.15); + emtfTrackOccupancyHighQualityHighUPT->setAxisTitle("#eta", 1); + emtfTrackOccupancyHighQualityHighUPT->setAxisTitle("#phi", 2); + // CSC Input ibooker.setCurrentFolder(monitorDir + "/CSCInput"); @@ -732,6 +766,13 @@ void L1TStage2EMTF::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, emtfMuonhwPt = ibooker.book1D("emtfMuonhwPt", "EMTF Muon Cand p_{T}", 512, 0, 512); emtfMuonhwPt->setAxisTitle("Hardware p_{T}", 1); + emtfMuonhwPtUnconstrained = + ibooker.book1D("emtfMuonhwPtUnconstrained", "EMTF Muon Cand Unconstrained p_{T}", 256, 0, 256); + emtfMuonhwPtUnconstrained->setAxisTitle("Hardware Unconstrained p_{T}", 1); + + emtfMuonhwDxy = ibooker.book1D("emtfMuonhwDxy", "EMTF Muon Cand d_{xy}", 3, 0, 3); + emtfMuonhwDxy->setAxisTitle("Hardware d_{xy}", 1); + emtfMuonhwEta = ibooker.book1D("emtfMuonhwEta", "EMTF Muon Cand #eta", 460, -230, 230); emtfMuonhwEta->setAxisTitle("Hardware #eta", 1); @@ -986,6 +1027,10 @@ void L1TStage2EMTF::analyze(const edm::Event& e, const edm::EventSetup& c) { int nTracks = TrackCollection->size(); emtfnTracks->Fill(std::min(nTracks, emtfnTracks->getTH1F()->GetNbinsX() - 1)); + + constexpr int singleMuQuality = 12; + constexpr float singleMuPT = 22; + constexpr float singleMuUPT = 10; for (auto Track = TrackCollection->begin(); Track != TrackCollection->end(); ++Track) { int endcap = Track->Endcap(); @@ -997,8 +1042,6 @@ void L1TStage2EMTF::analyze(const edm::Event& e, const edm::EventSetup& c) { int numHits = Track->NumHits(); int modeNeighbor = Track->Mode_neighbor(); int modeRPC = Track->Mode_RPC(); - int singleMuQuality = 12; - int singleMuPT = 22; // Only plot if there are <= 1 neighbor hits in the track to avoid spikes at sector boundaries if (modeNeighbor >= 2 && modeNeighbor != 4 && modeNeighbor != 8) @@ -1007,6 +1050,8 @@ void L1TStage2EMTF::analyze(const edm::Event& e, const edm::EventSetup& c) { emtfTracknHits->Fill(numHits); emtfTrackBX->Fill(endcap * (sector - 0.5), Track->BX()); emtfTrackPt->Fill(Track->Pt()); + emtfTrackDxy->Fill(Track->GMT_dxy()); + emtfTrackUnconstrainedPt->Fill(Track->Pt_dxy()); emtfTrackEta->Fill(eta); emtfTrackOccupancy->Fill(eta, phi_glob_rad); @@ -1018,6 +1063,7 @@ void L1TStage2EMTF::analyze(const edm::Event& e, const edm::EventSetup& c) { if (quality >= singleMuQuality) { emtfTrackPtHighQuality->Fill(Track->Pt()); + emtfTrackUnconstrainedPtHighQuality->Fill(Track->Pt_dxy()); emtfTrackEtaHighQuality->Fill(eta); emtfTrackPhiHighQuality->Fill(phi_glob_rad); emtfTrackOccupancyHighQuality->Fill(eta, phi_glob_rad); @@ -1027,6 +1073,12 @@ void L1TStage2EMTF::analyze(const edm::Event& e, const edm::EventSetup& c) { emtfTrackPhiHighQualityHighPT->Fill(phi_glob_rad); emtfTrackOccupancyHighQualityHighPT->Fill(eta, phi_glob_rad); } + if (Track->Pt_dxy() >= singleMuUPT) { + emtfTrackUnconstrainedPtHighQualityHighUPT->Fill(Track->Pt_dxy()); + emtfTrackEtaHighQualityHighUPT->Fill(eta); + emtfTrackPhiHighQualityHighUPT->Fill(phi_glob_rad); + emtfTrackOccupancyHighQualityHighUPT->Fill(eta, phi_glob_rad); + } } //////////////////////////////////////////////////// @@ -1209,6 +1261,8 @@ void L1TStage2EMTF::analyze(const edm::Event& e, const edm::EventSetup& c) { ++Muon) { emtfMuonBX->Fill(itBX); emtfMuonhwPt->Fill(Muon->hwPt()); + emtfMuonhwPtUnconstrained->Fill(Muon->hwPtUnconstrained()); + emtfMuonhwDxy->Fill(Muon->hwDXY()); emtfMuonhwEta->Fill(Muon->hwEta()); emtfMuonhwPhi->Fill(Muon->hwPhi()); emtfMuonhwQual->Fill(Muon->hwQual());