diff --git a/DQMOffline/MuonDPG/BuildFile.xml b/DQMOffline/MuonDPG/BuildFile.xml index 3140fc068b8cc..fe9db0755199c 100644 --- a/DQMOffline/MuonDPG/BuildFile.xml +++ b/DQMOffline/MuonDPG/BuildFile.xml @@ -1,6 +1,8 @@ + + diff --git a/DQMOffline/MuonDPG/plugins/GEMTnPEfficiencyTask.cc b/DQMOffline/MuonDPG/plugins/GEMTnPEfficiencyTask.cc index 170ec3d988060..fc4b2ffa7e9d8 100644 --- a/DQMOffline/MuonDPG/plugins/GEMTnPEfficiencyTask.cc +++ b/DQMOffline/MuonDPG/plugins/GEMTnPEfficiencyTask.cc @@ -14,14 +14,31 @@ #include "DQMOffline/MuonDPG/interface/BaseTnPEfficiencyTask.h" +#include "DataFormats/GEMDigi/interface/GEMVFATStatusCollection.h" +#include "DataFormats/GEMDigi/interface/GEMOHStatusCollection.h" +#include "DataFormats/GEMDigi/interface/GEMAMCStatusCollection.h" +#include "Geometry/GEMGeometry/interface/GEMGeometry.h" +#include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h" + class GEMTnPEfficiencyTask : public BaseTnPEfficiencyTask { public: /// Constructor GEMTnPEfficiencyTask(const edm::ParameterSet& config); - + uint16_t maskChamberWithError(const GEMDetId& chamber_id, + const GEMOHStatusCollection*, + const GEMVFATStatusCollection*); + bool checkBounds(const GeomDet* geomDet, const GlobalPoint& global_position, const float bordercut); /// Destructor ~GEMTnPEfficiencyTask() override; + const bool m_maskChamberWithError_; + const edm::EDGetTokenT m_GEMOHStatusCollectionToken_; + const edm::EDGetTokenT m_GEMVFATStatusCollectionToken_; + const edm::EDGetTokenT m_GEMAMCStatusCollectionToken_; + std::unique_ptr muon_service_; + protected: std::string topFolder() const override; @@ -31,8 +48,18 @@ class GEMTnPEfficiencyTask : public BaseTnPEfficiencyTask { void analyze(const edm::Event& event, const edm::EventSetup& context) override; }; -GEMTnPEfficiencyTask::GEMTnPEfficiencyTask(const edm::ParameterSet& config) : BaseTnPEfficiencyTask(config) { +GEMTnPEfficiencyTask::GEMTnPEfficiencyTask(const edm::ParameterSet& config) + : BaseTnPEfficiencyTask(config), + m_maskChamberWithError_((config.getUntrackedParameter("maskChamberWithError"))), + m_GEMOHStatusCollectionToken_( + consumes(config.getUntrackedParameter("ohStatusTag"))), + m_GEMVFATStatusCollectionToken_( + consumes(config.getUntrackedParameter("vfatStatusTag"))), + m_GEMAMCStatusCollectionToken_( + consumes(config.getUntrackedParameter("amcStatusTag"))) { LogTrace("DQMOffline|MuonDPG|GEMTnPEfficiencyTask") << "[GEMTnPEfficiencyTask]: Constructor" << std::endl; + muon_service_ = std::make_unique(config.getParameter("ServiceParameters"), + consumesCollector()); } GEMTnPEfficiencyTask::~GEMTnPEfficiencyTask() { @@ -49,7 +76,6 @@ void GEMTnPEfficiencyTask::bookHistograms(DQMStore::IBooker& iBooker, auto baseDir = topFolder() + "Task/"; iBooker.setCurrentFolder(baseDir); - MonitorElement* me_GE11_pass_Ch_region = iBooker.book2D("GE11_nPassingProbe_Ch_region", "GE11_nPassingProbe_Ch_region", 2, -1.5, 1.5, 36, 1, 37); MonitorElement* me_GE11_fail_Ch_region = @@ -174,6 +200,23 @@ void GEMTnPEfficiencyTask::bookHistograms(DQMStore::IBooker& iBooker, iBooker.book1D("GEM_nPassingProbe_phi_n2_1D", "GEM_nPassingProbe_phi_n2_1D", 20, -TMath::Pi(), TMath::Pi()); MonitorElement* me_GEM_fail_phi_n2_1D = iBooker.book1D("GEM_nFailingProbe_phi_n2_1D", "GEM_nFailingProbe_phi_n2_1D", 20, -TMath::Pi(), TMath::Pi()); + MonitorElement* me_GE11_pass_Ch_ieta_p1 = + iBooker.book2D("GE11_nPassingProbe_Ch_ieta_p1", "GE11_nPassingProbe_Ch_ieta_p1", 8, 1, 9, 36, 1, 37); + MonitorElement* me_GE11_fail_Ch_ieta_p1 = + iBooker.book2D("GE11_nFailingProbe_Ch_ieta_p1", "GE11_nFailingProbe_Ch_ieta_p1", 8, 1, 9, 36, 1, 37); + MonitorElement* me_GE11_pass_Ch_ieta_p2 = + iBooker.book2D("GE11_nPassingProbe_Ch_ieta_p2", "GE11_nPassingProbe_Ch_ieta_p2", 8, 1, 9, 36, 1, 37); + MonitorElement* me_GE11_fail_Ch_ieta_p2 = + iBooker.book2D("GE11_nFailingProbe_Ch_ieta_p2", "GE11_nFailingProbe_Ch_ieta_p2", 8, 1, 9, 36, 1, 37); + MonitorElement* me_GE11_pass_Ch_ieta_n1 = + iBooker.book2D("GE11_nPassingProbe_Ch_ieta_n1", "GE11_nPassingProbe_Ch_ieta_n1", 8, 1, 9, 36, 1, 37); + MonitorElement* me_GE11_fail_Ch_ieta_n1 = + iBooker.book2D("GE11_nFailingProbe_Ch_ieta_n1", "GE11_nFailingProbe_Ch_ieta_n1", 8, 1, 9, 36, 1, 37); + MonitorElement* me_GE11_pass_Ch_ieta_n2 = + iBooker.book2D("GE11_nPassingProbe_Ch_ieta_n2", "GE11_nPassingProbe_Ch_ieta_n2", 8, 1, 9, 36, 1, 37); + MonitorElement* me_GE11_fail_Ch_ieta_n2 = + iBooker.book2D("GE11_nFailingProbe_Ch_ieta_n2", "GE11_nFailingProbe_Ch_ieta_n2", 8, 1, 9, 36, 1, 37); + //// MonitorElement* me_ME0_pass_chamber_1D = iBooker.book1D("ME0_nPassingProbe_chamber_1D", "ME0_nPassingProbe_chamber_1D", 18, 1, 19); @@ -183,6 +226,525 @@ void GEMTnPEfficiencyTask::bookHistograms(DQMStore::IBooker& iBooker, "GEM_nPassingProbe_Ch_region_layer_phase2", "GEM_nPassingProbe_Ch_region_layer_phase2", 10, 0, 10, 36, 1, 37); MonitorElement* me_GEM_fail_Ch_region_layer_phase2 = iBooker.book2D( "GEM_nFailingProbe_Ch_region_layer_phase2", "GEM_nFailingProbe_Ch_region_layer_phase2", 10, 0, 10, 36, 1, 37); + // Bad VFAT Mask + Empty OH Mask + MonitorElement* OHmissing_me_GE11_pass_allCh_1D = + iBooker.book1D("GE11_nPassingProbe_OHmissing_allCh_1D", "GE11_nPassingProbe_OHmissing_allCh_1D", 2, -1.5, 1.5); + MonitorElement* OHmissing_me_GE11_fail_allCh_1D = + iBooker.book1D("GE11_nFailingProbe_OHmissing_allCh_1D", "GE11_nFailingProbe_OHmissing_allCh_1D", 2, -1.5, 1.5); + MonitorElement* OHmissing_me_GEM_pass_chamber_p1_1D = iBooker.book1D( + "GEM_nPassingProbe_OHmissing_chamber_p1_1D", "GEM_nPassingProbe_OHmissing_chamber_p1_1D", 36, 1, 37); + MonitorElement* OHmissing_me_GEM_fail_chamber_p1_1D = iBooker.book1D( + "GEM_nFailingProbe_OHmissing_chamber_p1_1D", "GEM_nFailingProbe_OHmissing_chamber_p1_1D", 36, 1, 37); + MonitorElement* OHmissing_me_GEM_pass_chamber_p2_1D = iBooker.book1D( + "GEM_nPassingProbe_OHmissing_chamber_p2_1D", "GEM_nPassingProbe_OHmissing_chamber_p2_1D", 36, 1, 37); + MonitorElement* OHmissing_me_GEM_fail_chamber_p2_1D = iBooker.book1D( + "GEM_nFailingProbe_OHmissing_chamber_p2_1D", "GEM_nFailingProbe_OHmissing_chamber_p2_1D", 36, 1, 37); + MonitorElement* OHmissing_me_GEM_pass_chamber_n1_1D = iBooker.book1D( + "GEM_nPassingProbe_OHmissing_chamber_n1_1D", "GEM_nPassingProbe_OHmissing_chamber_n1_1D", 36, 1, 37); + MonitorElement* OHmissing_me_GEM_fail_chamber_n1_1D = iBooker.book1D( + "GEM_nFailingProbe_OHmissing_chamber_n1_1D", "GEM_nFailingProbe_OHmissing_chamber_n1_1D", 36, 1, 37); + MonitorElement* OHmissing_me_GEM_pass_chamber_n2_1D = iBooker.book1D( + "GEM_nPassingProbe_OHmissing_chamber_n2_1D", "GEM_nPassingProbe_OHmissing_chamber_n2_1D", 36, 1, 37); + MonitorElement* OHmissing_me_GEM_fail_chamber_n2_1D = iBooker.book1D( + "GEM_nFailingProbe_OHmissing_chamber_n2_1D", "GEM_nFailingProbe_OHmissing_chamber_n2_1D", 36, 1, 37); + MonitorElement* OHmissing_me_GEM_pass_pt_1D = + iBooker.book1D("GEM_nPassingProbe_OHmissing_pt_1D", "GEM_nPassingProbe_OHmissing_pt_1D", 20, 0, 100); + MonitorElement* OHmissing_me_GEM_fail_pt_1D = + iBooker.book1D("GEM_nFailingProbe_OHmissing_pt_1D", "GEM_nFailingProbe_OHmissing_pt_1D", 20, 0, 100); + MonitorElement* OHmissing_me_GEM_pass_eta_1D = + iBooker.book1D("GEM_nPassingProbe_OHmissing_eta_1D", "GEM_nPassingProbe_OHmissing_eta_1D", 24, 0, 2.4); + MonitorElement* OHmissing_me_GEM_fail_eta_1D = + iBooker.book1D("GEM_nFailingProbe_OHmissing_eta_1D", "GEM_nFailingProbe_OHmissing_eta_1D", 24, 0, 2.4); + MonitorElement* OHmissing_me_GEM_pass_phi_1D = iBooker.book1D( + "GEM_nPassingProbe_OHmissing_phi_1D", "GEM_nPassingProbe_OHmissing_phi_1D", 20, -TMath::Pi(), TMath::Pi()); + MonitorElement* OHmissing_me_GEM_fail_phi_1D = iBooker.book1D( + "GEM_nFailingProbe_OHmissing_phi_1D", "GEM_nFailingProbe_OHmissing_phi_1D", 20, -TMath::Pi(), TMath::Pi()); + MonitorElement* OHmissing_me_GE11_pass_Ch_ieta_p1 = iBooker.book2D( + "GE11_nPassingProbe_OHmissing_Ch_ieta_p1", "GE11_nPassingProbe_OHmissing_Ch_ieta_p1", 8, 1, 9, 36, 1, 37); + MonitorElement* OHmissing_me_GE11_fail_Ch_ieta_p1 = iBooker.book2D( + "GE11_nFailingProbe_OHmissing_Ch_ieta_p1", "GE11_nFailingProbe_OHmissing_Ch_ieta_p1", 8, 1, 9, 36, 1, 37); + MonitorElement* OHmissing_me_GE11_pass_Ch_ieta_p2 = iBooker.book2D( + "GE11_nPassingProbe_OHmissing_Ch_ieta_p2", "GE11_nPassingProbe_OHmissing_Ch_ieta_p2", 8, 1, 9, 36, 1, 37); + MonitorElement* OHmissing_me_GE11_fail_Ch_ieta_p2 = iBooker.book2D( + "GE11_nFailingProbe_OHmissing_Ch_ieta_p2", "GE11_nFailingProbe_OHmissing_Ch_ieta_p2", 8, 1, 9, 36, 1, 37); + MonitorElement* OHmissing_me_GE11_pass_Ch_ieta_n1 = iBooker.book2D( + "GE11_nPassingProbe_OHmissing_Ch_ieta_n1", "GE11_nPassingProbe_OHmissing_Ch_ieta_n1", 8, 1, 9, 36, 1, 37); + MonitorElement* OHmissing_me_GE11_fail_Ch_ieta_n1 = iBooker.book2D( + "GE11_nFailingProbe_OHmissing_Ch_ieta_n1", "GE11_nFailingProbe_OHmissing_Ch_ieta_n1", 8, 1, 9, 36, 1, 37); + MonitorElement* OHmissing_me_GE11_pass_Ch_ieta_n2 = iBooker.book2D( + "GE11_nPassingProbe_OHmissing_Ch_ieta_n2", "GE11_nPassingProbe_OHmissing_Ch_ieta_n2", 8, 1, 9, 36, 1, 37); + MonitorElement* OHmissing_me_GE11_fail_Ch_ieta_n2 = iBooker.book2D( + "GE11_nFailingProbe_OHmissing_Ch_ieta_n2", "GE11_nFailingProbe_OHmissing_Ch_ieta_n2", 8, 1, 9, 36, 1, 37); + + OHmissing_me_GE11_pass_allCh_1D->setBinLabel(1, "GE-11", 1); + OHmissing_me_GE11_pass_allCh_1D->setBinLabel(2, "GE+11", 1); + OHmissing_me_GE11_pass_allCh_1D->setAxisTitle("Number of passing probes", 2); + + OHmissing_me_GE11_fail_allCh_1D->setBinLabel(1, "GE-11", 1); + OHmissing_me_GE11_fail_allCh_1D->setBinLabel(2, "GE+11", 1); + OHmissing_me_GE11_fail_allCh_1D->setAxisTitle("Number of failing probes", 2); + + OHmissing_me_GEM_pass_chamber_p1_1D->setAxisTitle("Chamber", 1); + OHmissing_me_GEM_pass_chamber_p1_1D->setAxisTitle("Number of passing probes", 2); + OHmissing_me_GEM_fail_chamber_p1_1D->setAxisTitle("Chamber", 1); + OHmissing_me_GEM_fail_chamber_p1_1D->setAxisTitle("Number of failing probes", 2); + + OHmissing_me_GEM_pass_chamber_p2_1D->setAxisTitle("Chamber", 1); + OHmissing_me_GEM_pass_chamber_p2_1D->setAxisTitle("Number of passing probes", 2); + OHmissing_me_GEM_fail_chamber_p2_1D->setAxisTitle("Chamber", 1); + OHmissing_me_GEM_fail_chamber_p2_1D->setAxisTitle("Number of failing probes", 2); + + OHmissing_me_GEM_pass_chamber_n1_1D->setAxisTitle("Chamber", 1); + OHmissing_me_GEM_pass_chamber_n1_1D->setAxisTitle("Number of passing probes", 2); + OHmissing_me_GEM_fail_chamber_n1_1D->setAxisTitle("Chamber", 1); + OHmissing_me_GEM_fail_chamber_n1_1D->setAxisTitle("Number of failing probes", 2); + + OHmissing_me_GEM_pass_chamber_n2_1D->setAxisTitle("Chamber", 1); + OHmissing_me_GEM_pass_chamber_n2_1D->setAxisTitle("Number of passing probes", 2); + OHmissing_me_GEM_fail_chamber_n2_1D->setAxisTitle("Chamber", 1); + OHmissing_me_GEM_fail_chamber_n2_1D->setAxisTitle("Number of failing probes", 2); + + OHmissing_me_GEM_pass_pt_1D->setAxisTitle("P_{T}", 1); + OHmissing_me_GEM_pass_pt_1D->setAxisTitle("Number of passing probes", 2); + OHmissing_me_GEM_fail_pt_1D->setAxisTitle("P_{T}", 1); + OHmissing_me_GEM_fail_pt_1D->setAxisTitle("Number of failing probes", 2); + + OHmissing_me_GEM_pass_eta_1D->setAxisTitle("#eta", 1); + OHmissing_me_GEM_pass_eta_1D->setAxisTitle("Number of passing probes", 2); + OHmissing_me_GEM_fail_eta_1D->setAxisTitle("#eta", 1); + OHmissing_me_GEM_fail_eta_1D->setAxisTitle("Number of failing probes", 2); + + OHmissing_me_GEM_pass_phi_1D->setAxisTitle("#phi", 1); + OHmissing_me_GEM_pass_phi_1D->setAxisTitle("Number of passing probes", 2); + OHmissing_me_GEM_fail_phi_1D->setAxisTitle("#phi", 1); + OHmissing_me_GEM_fail_phi_1D->setAxisTitle("Number of failing probes", 2); + //// + for (int i = 1; i < 37; ++i) { + OHmissing_me_GE11_fail_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHmissing_me_GE11_fail_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 1); + } + OHmissing_me_GE11_fail_Ch_ieta_p1->setAxisTitle("#ieta", 1); + OHmissing_me_GE11_fail_Ch_ieta_p1->setAxisTitle("Chamber", 2); + OHmissing_me_GE11_fail_Ch_ieta_p1->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + OHmissing_me_GE11_pass_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHmissing_me_GE11_pass_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 1); + } + OHmissing_me_GE11_pass_Ch_ieta_p1->setAxisTitle("#ieta", 1); + OHmissing_me_GE11_pass_Ch_ieta_p1->setAxisTitle("Chamber", 2); + OHmissing_me_GE11_pass_Ch_ieta_p1->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + OHmissing_me_GE11_fail_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHmissing_me_GE11_fail_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 1); + } + OHmissing_me_GE11_fail_Ch_ieta_p2->setAxisTitle("#ieta", 1); + OHmissing_me_GE11_fail_Ch_ieta_p2->setAxisTitle("Chamber", 2); + OHmissing_me_GE11_fail_Ch_ieta_p2->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + OHmissing_me_GE11_pass_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHmissing_me_GE11_pass_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 1); + } + OHmissing_me_GE11_pass_Ch_ieta_p2->setAxisTitle("#ieta", 1); + OHmissing_me_GE11_pass_Ch_ieta_p2->setAxisTitle("Chamber", 2); + OHmissing_me_GE11_pass_Ch_ieta_p2->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + OHmissing_me_GE11_fail_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHmissing_me_GE11_fail_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 1); + } + OHmissing_me_GE11_fail_Ch_ieta_n1->setAxisTitle("#ieta", 1); + OHmissing_me_GE11_fail_Ch_ieta_n1->setAxisTitle("Chamber", 2); + OHmissing_me_GE11_fail_Ch_ieta_n1->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + OHmissing_me_GE11_pass_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHmissing_me_GE11_pass_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 1); + } + OHmissing_me_GE11_pass_Ch_ieta_n1->setAxisTitle("#ieta", 1); + OHmissing_me_GE11_pass_Ch_ieta_n1->setAxisTitle("Chamber", 2); + OHmissing_me_GE11_pass_Ch_ieta_n1->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + OHmissing_me_GE11_fail_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHmissing_me_GE11_fail_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 1); + } + OHmissing_me_GE11_fail_Ch_ieta_n2->setAxisTitle("#ieta", 1); + OHmissing_me_GE11_fail_Ch_ieta_n2->setAxisTitle("Chamber", 2); + OHmissing_me_GE11_fail_Ch_ieta_n2->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + OHmissing_me_GE11_pass_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHmissing_me_GE11_pass_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 1); + } + OHmissing_me_GE11_pass_Ch_ieta_n2->setAxisTitle("#ieta", 1); + OHmissing_me_GE11_pass_Ch_ieta_n2->setAxisTitle("Chamber", 2); + OHmissing_me_GE11_pass_Ch_ieta_n2->setAxisTitle("Number of passing probes", 3); + + // Bad VFAT Mask + Empty OH Mask + EvtNF + + MonitorElement* OHerror_me_GE11_pass_allCh_1D = + iBooker.book1D("GE11_nPassingProbe_OHerror_allCh_1D", "GE11_nPassingProbe_OHerror_allCh_1D", 2, -1.5, 1.5); + MonitorElement* OHerror_me_GE11_fail_allCh_1D = + iBooker.book1D("GE11_nFailingProbe_OHerror_allCh_1D", "GE11_nFailingProbe_OHerror_allCh_1D", 2, -1.5, 1.5); + MonitorElement* OHerror_me_GEM_pass_chamber_p1_1D = + iBooker.book1D("GEM_nPassingProbe_OHerror_chamber_p1_1D", "GEM_nPassingProbe_OHerror_chamber_p1_1D", 36, 1, 37); + MonitorElement* OHerror_me_GEM_fail_chamber_p1_1D = + iBooker.book1D("GEM_nFailingProbe_OHerror_chamber_p1_1D", "GEM_nFailingProbe_OHerror_chamber_p1_1D", 36, 1, 37); + MonitorElement* OHerror_me_GEM_pass_chamber_p2_1D = + iBooker.book1D("GEM_nPassingProbe_OHerror_chamber_p2_1D", "GEM_nPassingProbe_OHerror_chamber_p2_1D", 36, 1, 37); + MonitorElement* OHerror_me_GEM_fail_chamber_p2_1D = + iBooker.book1D("GEM_nFailingProbe_OHerror_chamber_p2_1D", "GEM_nFailingProbe_OHerror_chamber_p2_1D", 36, 1, 37); + MonitorElement* OHerror_me_GEM_pass_chamber_n1_1D = + iBooker.book1D("GEM_nPassingProbe_OHerror_chamber_n1_1D", "GEM_nPassingProbe_OHerror_chamber_n1_1D", 36, 1, 37); + MonitorElement* OHerror_me_GEM_fail_chamber_n1_1D = + iBooker.book1D("GEM_nFailingProbe_OHerror_chamber_n1_1D", "GEM_nFailingProbe_OHerror_chamber_n1_1D", 36, 1, 37); + MonitorElement* OHerror_me_GEM_pass_chamber_n2_1D = + iBooker.book1D("GEM_nPassingProbe_OHerror_chamber_n2_1D", "GEM_nPassingProbe_OHerror_chamber_n2_1D", 36, 1, 37); + MonitorElement* OHerror_me_GEM_fail_chamber_n2_1D = + iBooker.book1D("GEM_nFailingProbe_OHerror_chamber_n2_1D", "GEM_nFailingProbe_OHerror_chamber_n2_1D", 36, 1, 37); + MonitorElement* OHerror_me_GEM_pass_pt_1D = + iBooker.book1D("GEM_nPassingProbe_OHerror_pt_1D", "GEM_nPassingProbe_OHerror_pt_1D", 20, 0, 100); + MonitorElement* OHerror_me_GEM_fail_pt_1D = + iBooker.book1D("GEM_nFailingProbe_OHerror_pt_1D", "GEM_nFailingProbe_OHerror_pt_1D", 20, 0, 100); + MonitorElement* OHerror_me_GEM_pass_eta_1D = + iBooker.book1D("GEM_nPassingProbe_OHerror_eta_1D", "GEM_nPassingProbe_OHerror_eta_1D", 24, 0, 2.4); + MonitorElement* OHerror_me_GEM_fail_eta_1D = + iBooker.book1D("GEM_nFailingProbe_OHerror_eta_1D", "GEM_nFailingProbe_OHerror_eta_1D", 24, 0, 2.4); + MonitorElement* OHerror_me_GEM_pass_phi_1D = iBooker.book1D( + "GEM_nPassingProbe_OHerror_phi_1D", "GEM_nPassingProbe_OHerror_phi_1D", 20, -TMath::Pi(), TMath::Pi()); + MonitorElement* OHerror_me_GEM_fail_phi_1D = iBooker.book1D( + "GEM_nFailingProbe_OHerror_phi_1D", "GEM_nFailingProbe_OHerror_phi_1D", 20, -TMath::Pi(), TMath::Pi()); + MonitorElement* OHerror_me_GE11_pass_Ch_ieta_p1 = iBooker.book2D( + "GE11_nPassingProbe_OHerror_Ch_ieta_p1", "GE11_nPassingProbe_OHerror_Ch_ieta_p1", 8, 1, 9, 36, 1, 37); + MonitorElement* OHerror_me_GE11_fail_Ch_ieta_p1 = iBooker.book2D( + "GE11_nFailingProbe_OHerror_Ch_ieta_p1", "GE11_nFailingProbe_OHerror_Ch_ieta_p1", 8, 1, 9, 36, 1, 37); + MonitorElement* OHerror_me_GE11_pass_Ch_ieta_p2 = iBooker.book2D( + "GE11_nPassingProbe_OHerror_Ch_ieta_p2", "GE11_nPassingProbe_OHerror_Ch_ieta_p2", 8, 1, 9, 36, 1, 37); + MonitorElement* OHerror_me_GE11_fail_Ch_ieta_p2 = iBooker.book2D( + "GE11_nFailingProbe_OHerror_Ch_ieta_p2", "GE11_nFailingProbe_OHerror_Ch_ieta_p2", 8, 1, 9, 36, 1, 37); + MonitorElement* OHerror_me_GE11_pass_Ch_ieta_n1 = iBooker.book2D( + "GE11_nPassingProbe_OHerror_Ch_ieta_n1", "GE11_nPassingProbe_OHerror_Ch_ieta_n1", 8, 1, 9, 36, 1, 37); + MonitorElement* OHerror_me_GE11_fail_Ch_ieta_n1 = iBooker.book2D( + "GE11_nFailingProbe_OHerror_Ch_ieta_n1", "GE11_nFailingProbe_OHerror_Ch_ieta_n1", 8, 1, 9, 36, 1, 37); + MonitorElement* OHerror_me_GE11_pass_Ch_ieta_n2 = iBooker.book2D( + "GE11_nPassingProbe_OHerror_Ch_ieta_n2", "GE11_nPassingProbe_OHerror_Ch_ieta_n2", 8, 1, 9, 36, 1, 37); + MonitorElement* OHerror_me_GE11_fail_Ch_ieta_n2 = iBooker.book2D( + "GE11_nFailingProbe_OHerror_Ch_ieta_n2", "GE11_nFailingProbe_OHerror_Ch_ieta_n2", 8, 1, 9, 36, 1, 37); + + OHerror_me_GE11_pass_allCh_1D->setBinLabel(1, "GE-11", 1); + OHerror_me_GE11_pass_allCh_1D->setBinLabel(2, "GE+11", 1); + OHerror_me_GE11_pass_allCh_1D->setAxisTitle("Number of passing probes", 2); + + OHerror_me_GE11_fail_allCh_1D->setBinLabel(1, "GE-11", 1); + OHerror_me_GE11_fail_allCh_1D->setBinLabel(2, "GE+11", 1); + OHerror_me_GE11_fail_allCh_1D->setAxisTitle("Number of failing probes", 2); + + OHerror_me_GEM_pass_chamber_p1_1D->setAxisTitle("Chamber", 1); + OHerror_me_GEM_pass_chamber_p1_1D->setAxisTitle("Number of passing probes", 2); + OHerror_me_GEM_fail_chamber_p1_1D->setAxisTitle("Chamber", 1); + OHerror_me_GEM_fail_chamber_p1_1D->setAxisTitle("Number of failing probes", 2); + + OHerror_me_GEM_pass_chamber_p2_1D->setAxisTitle("Chamber", 1); + OHerror_me_GEM_pass_chamber_p2_1D->setAxisTitle("Number of passing probes", 2); + OHerror_me_GEM_fail_chamber_p2_1D->setAxisTitle("Chamber", 1); + OHerror_me_GEM_fail_chamber_p2_1D->setAxisTitle("Number of failing probes", 2); + + OHerror_me_GEM_pass_chamber_n1_1D->setAxisTitle("Chamber", 1); + OHerror_me_GEM_pass_chamber_n1_1D->setAxisTitle("Number of passing probes", 2); + OHerror_me_GEM_fail_chamber_n1_1D->setAxisTitle("Chamber", 1); + OHerror_me_GEM_fail_chamber_n1_1D->setAxisTitle("Number of failing probes", 2); + + OHerror_me_GEM_pass_chamber_n2_1D->setAxisTitle("Chamber", 1); + OHerror_me_GEM_pass_chamber_n2_1D->setAxisTitle("Number of passing probes", 2); + OHerror_me_GEM_fail_chamber_n2_1D->setAxisTitle("Chamber", 1); + OHerror_me_GEM_fail_chamber_n2_1D->setAxisTitle("Number of failing probes", 2); + + OHerror_me_GEM_pass_pt_1D->setAxisTitle("P_{T}", 1); + OHerror_me_GEM_pass_pt_1D->setAxisTitle("Number of passing probes", 2); + OHerror_me_GEM_fail_pt_1D->setAxisTitle("P_{T}", 1); + OHerror_me_GEM_fail_pt_1D->setAxisTitle("Number of failing probes", 2); + + OHerror_me_GEM_pass_eta_1D->setAxisTitle("#eta", 1); + OHerror_me_GEM_pass_eta_1D->setAxisTitle("Number of passing probes", 2); + OHerror_me_GEM_fail_eta_1D->setAxisTitle("#eta", 1); + OHerror_me_GEM_fail_eta_1D->setAxisTitle("Number of failing probes", 2); + + OHerror_me_GEM_pass_phi_1D->setAxisTitle("#phi", 1); + OHerror_me_GEM_pass_phi_1D->setAxisTitle("Number of passing probes", 2); + OHerror_me_GEM_fail_phi_1D->setAxisTitle("#phi", 1); + OHerror_me_GEM_fail_phi_1D->setAxisTitle("Number of failing probes", 2); + for (int i = 1; i < 37; ++i) { + OHerror_me_GE11_fail_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHerror_me_GE11_fail_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 1); + } + OHerror_me_GE11_fail_Ch_ieta_p1->setAxisTitle("#ieta", 1); + OHerror_me_GE11_fail_Ch_ieta_p1->setAxisTitle("Chamber", 2); + OHerror_me_GE11_fail_Ch_ieta_p1->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + OHerror_me_GE11_pass_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHerror_me_GE11_pass_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 1); + } + OHerror_me_GE11_pass_Ch_ieta_p1->setAxisTitle("#ieta", 1); + OHerror_me_GE11_pass_Ch_ieta_p1->setAxisTitle("Chamber", 2); + OHerror_me_GE11_pass_Ch_ieta_p1->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + OHerror_me_GE11_fail_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHerror_me_GE11_fail_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 1); + } + OHerror_me_GE11_fail_Ch_ieta_p2->setAxisTitle("#ieta", 1); + OHerror_me_GE11_fail_Ch_ieta_p2->setAxisTitle("Chamber", 2); + OHerror_me_GE11_fail_Ch_ieta_p2->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + OHerror_me_GE11_pass_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHerror_me_GE11_pass_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 1); + } + OHerror_me_GE11_pass_Ch_ieta_p2->setAxisTitle("#ieta", 1); + OHerror_me_GE11_pass_Ch_ieta_p2->setAxisTitle("Chamber", 2); + OHerror_me_GE11_pass_Ch_ieta_p2->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + OHerror_me_GE11_fail_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHerror_me_GE11_fail_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 1); + } + OHerror_me_GE11_fail_Ch_ieta_n1->setAxisTitle("#ieta", 1); + OHerror_me_GE11_fail_Ch_ieta_n1->setAxisTitle("Chamber", 2); + OHerror_me_GE11_fail_Ch_ieta_n1->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + OHerror_me_GE11_pass_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHerror_me_GE11_pass_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 1); + } + OHerror_me_GE11_pass_Ch_ieta_n1->setAxisTitle("#ieta", 1); + OHerror_me_GE11_pass_Ch_ieta_n1->setAxisTitle("Chamber", 2); + OHerror_me_GE11_pass_Ch_ieta_n1->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + OHerror_me_GE11_fail_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHerror_me_GE11_fail_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 1); + } + OHerror_me_GE11_fail_Ch_ieta_n2->setAxisTitle("#ieta", 1); + OHerror_me_GE11_fail_Ch_ieta_n2->setAxisTitle("Chamber", 2); + OHerror_me_GE11_fail_Ch_ieta_n2->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + OHerror_me_GE11_pass_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + OHerror_me_GE11_pass_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 1); + } + OHerror_me_GE11_pass_Ch_ieta_n2->setAxisTitle("#ieta", 1); + OHerror_me_GE11_pass_Ch_ieta_n2->setAxisTitle("Chamber", 2); + OHerror_me_GE11_pass_Ch_ieta_n2->setAxisTitle("Number of passing probes", 3); + + // Bad VFAT Mask + Empty OH Mask + OHerrorMask + + MonitorElement* VFATMask_me_GE11_pass_allCh_1D = + iBooker.book1D("GE11_nPassingProbe_VFATMask_allCh_1D", "GE11_nPassingProbe_VFATMask_allCh_1D", 2, -1.5, 1.5); + MonitorElement* VFATMask_me_GE11_fail_allCh_1D = + iBooker.book1D("GE11_nFailingProbe_VFATMask_allCh_1D", "GE11_nFailingProbe_VFATMask_allCh_1D", 2, -1.5, 1.5); + MonitorElement* VFATMask_me_GEM_pass_chamber_p1_1D = + iBooker.book1D("GEM_nPassingProbe_VFATMask_chamber_p1_1D", "GEM_nPassingProbe_VFATMask_chamber_p1_1D", 36, 1, 37); + MonitorElement* VFATMask_me_GEM_fail_chamber_p1_1D = + iBooker.book1D("GEM_nFailingProbe_VFATMask_chamber_p1_1D", "GEM_nFailingProbe_VFATMask_chamber_p1_1D", 36, 1, 37); + MonitorElement* VFATMask_me_GEM_pass_chamber_p2_1D = + iBooker.book1D("GEM_nPassingProbe_VFATMask_chamber_p2_1D", "GEM_nPassingProbe_VFATMask_chamber_p2_1D", 36, 1, 37); + MonitorElement* VFATMask_me_GEM_fail_chamber_p2_1D = + iBooker.book1D("GEM_nFailingProbe_VFATMask_chamber_p2_1D", "GEM_nFailingProbe_VFATMask_chamber_p2_1D", 36, 1, 37); + MonitorElement* VFATMask_me_GEM_pass_chamber_n1_1D = + iBooker.book1D("GEM_nPassingProbe_VFATMask_chamber_n1_1D", "GEM_nPassingProbe_VFATMask_chamber_n1_1D", 36, 1, 37); + MonitorElement* VFATMask_me_GEM_fail_chamber_n1_1D = + iBooker.book1D("GEM_nFailingProbe_VFATMask_chamber_n1_1D", "GEM_nFailingProbe_VFATMask_chamber_n1_1D", 36, 1, 37); + MonitorElement* VFATMask_me_GEM_pass_chamber_n2_1D = + iBooker.book1D("GEM_nPassingProbe_VFATMask_chamber_n2_1D", "GEM_nPassingProbe_VFATMask_chamber_n2_1D", 36, 1, 37); + MonitorElement* VFATMask_me_GEM_fail_chamber_n2_1D = + iBooker.book1D("GEM_nFailingProbe_VFATMask_chamber_n2_1D", "GEM_nFailingProbe_VFATMask_chamber_n2_1D", 36, 1, 37); + MonitorElement* VFATMask_me_GEM_pass_pt_1D = + iBooker.book1D("GEM_nPassingProbe_VFATMask_pt_1D", "GEM_nPassingProbe_VFATMask_pt_1D", 20, 0, 100); + MonitorElement* VFATMask_me_GEM_fail_pt_1D = + iBooker.book1D("GEM_nFailingProbe_VFATMask_pt_1D", "GEM_nFailingProbe_VFATMask_pt_1D", 20, 0, 100); + MonitorElement* VFATMask_me_GEM_pass_eta_1D = + iBooker.book1D("GEM_nPassingProbe_VFATMask_eta_1D", "GEM_nPassingProbe_VFATMask_eta_1D", 24, 0, 2.4); + MonitorElement* VFATMask_me_GEM_fail_eta_1D = + iBooker.book1D("GEM_nFailingProbe_VFATMask_eta_1D", "GEM_nFailingProbe_VFATMask_eta_1D", 24, 0, 2.4); + MonitorElement* VFATMask_me_GEM_pass_phi_1D = iBooker.book1D( + "GEM_nPassingProbe_VFATMask_phi_1D", "GEM_nPassingProbe_VFATMask_phi_1D", 20, -TMath::Pi(), TMath::Pi()); + MonitorElement* VFATMask_me_GEM_fail_phi_1D = iBooker.book1D( + "GEM_nFailingProbe_VFATMask_phi_1D", "GEM_nFailingProbe_VFATMask_phi_1D", 20, -TMath::Pi(), TMath::Pi()); + MonitorElement* VFATMask_me_GE11_pass_Ch_ieta_p1 = iBooker.book2D( + "GE11_nPassingProbe_VFATMask_Ch_ieta_p1", "GE11_nPassingProbe_VFATMask_Ch_ieta_p1", 8, 1, 9, 36, 1, 37); + MonitorElement* VFATMask_me_GE11_fail_Ch_ieta_p1 = iBooker.book2D( + "GE11_nFailingProbe_VFATMask_Ch_ieta_p1", "GE11_nFailingProbe_VFATMask_Ch_ieta_p1", 8, 1, 9, 36, 1, 37); + MonitorElement* VFATMask_me_GE11_pass_Ch_ieta_p2 = iBooker.book2D( + "GE11_nPassingProbe_VFATMask_Ch_ieta_p2", "GE11_nPassingProbe_VFATMask_Ch_ieta_p2", 8, 1, 9, 36, 1, 37); + MonitorElement* VFATMask_me_GE11_fail_Ch_ieta_p2 = iBooker.book2D( + "GE11_nFailingProbe_VFATMask_Ch_ieta_p2", "GE11_nFailingProbe_VFATMask_Ch_ieta_p2", 8, 1, 9, 36, 1, 37); + MonitorElement* VFATMask_me_GE11_pass_Ch_ieta_n1 = iBooker.book2D( + "GE11_nPassingProbe_VFATMask_Ch_ieta_n1", "GE11_nPassingProbe_VFATMask_Ch_ieta_n1", 8, 1, 9, 36, 1, 37); + MonitorElement* VFATMask_me_GE11_fail_Ch_ieta_n1 = iBooker.book2D( + "GE11_nFailingProbe_VFATMask_Ch_ieta_n1", "GE11_nFailingProbe_VFATMask_Ch_ieta_n1", 8, 1, 9, 36, 1, 37); + MonitorElement* VFATMask_me_GE11_pass_Ch_ieta_n2 = iBooker.book2D( + "GE11_nPassingProbe_VFATMask_Ch_ieta_n2", "GE11_nPassingProbe_VFATMask_Ch_ieta_n2", 8, 1, 9, 36, 1, 37); + MonitorElement* VFATMask_me_GE11_fail_Ch_ieta_n2 = iBooker.book2D( + "GE11_nFailingProbe_VFATMask_Ch_ieta_n2", "GE11_nFailingProbe_VFATMask_Ch_ieta_n2", 8, 1, 9, 36, 1, 37); + + VFATMask_me_GE11_pass_allCh_1D->setBinLabel(1, "GE-11", 1); + VFATMask_me_GE11_pass_allCh_1D->setBinLabel(2, "GE+11", 1); + VFATMask_me_GE11_pass_allCh_1D->setAxisTitle("Number of passing probes", 2); + + VFATMask_me_GE11_fail_allCh_1D->setBinLabel(1, "GE-11", 1); + VFATMask_me_GE11_fail_allCh_1D->setBinLabel(2, "GE+11", 1); + VFATMask_me_GE11_fail_allCh_1D->setAxisTitle("Number of failing probes", 2); + + VFATMask_me_GEM_pass_chamber_p1_1D->setAxisTitle("Chamber", 1); + VFATMask_me_GEM_pass_chamber_p1_1D->setAxisTitle("Number of passing probes", 2); + VFATMask_me_GEM_fail_chamber_p1_1D->setAxisTitle("Chamber", 1); + VFATMask_me_GEM_fail_chamber_p1_1D->setAxisTitle("Number of failing probes", 2); + + VFATMask_me_GEM_pass_chamber_p2_1D->setAxisTitle("Chamber", 1); + VFATMask_me_GEM_pass_chamber_p2_1D->setAxisTitle("Number of passing probes", 2); + VFATMask_me_GEM_fail_chamber_p2_1D->setAxisTitle("Chamber", 1); + VFATMask_me_GEM_fail_chamber_p2_1D->setAxisTitle("Number of failing probes", 2); + + VFATMask_me_GEM_pass_chamber_n1_1D->setAxisTitle("Chamber", 1); + VFATMask_me_GEM_pass_chamber_n1_1D->setAxisTitle("Number of passing probes", 2); + VFATMask_me_GEM_fail_chamber_n1_1D->setAxisTitle("Chamber", 1); + VFATMask_me_GEM_fail_chamber_n1_1D->setAxisTitle("Number of failing probes", 2); + + VFATMask_me_GEM_pass_chamber_n2_1D->setAxisTitle("Chamber", 1); + VFATMask_me_GEM_pass_chamber_n2_1D->setAxisTitle("Number of passing probes", 2); + VFATMask_me_GEM_fail_chamber_n2_1D->setAxisTitle("Chamber", 1); + VFATMask_me_GEM_fail_chamber_n2_1D->setAxisTitle("Number of failing probes", 2); + + VFATMask_me_GEM_pass_pt_1D->setAxisTitle("P_{T}", 1); + VFATMask_me_GEM_pass_pt_1D->setAxisTitle("Number of passing probes", 2); + VFATMask_me_GEM_fail_pt_1D->setAxisTitle("P_{T}", 1); + VFATMask_me_GEM_fail_pt_1D->setAxisTitle("Number of failing probes", 2); + + VFATMask_me_GEM_pass_eta_1D->setAxisTitle("#eta", 1); + VFATMask_me_GEM_pass_eta_1D->setAxisTitle("Number of passing probes", 2); + VFATMask_me_GEM_fail_eta_1D->setAxisTitle("#eta", 1); + VFATMask_me_GEM_fail_eta_1D->setAxisTitle("Number of failing probes", 2); + + VFATMask_me_GEM_pass_phi_1D->setAxisTitle("#phi", 1); + VFATMask_me_GEM_pass_phi_1D->setAxisTitle("Number of passing probes", 2); + VFATMask_me_GEM_fail_phi_1D->setAxisTitle("#phi", 1); + VFATMask_me_GEM_fail_phi_1D->setAxisTitle("Number of failing probes", 2); + + for (int i = 1; i < 37; ++i) { + VFATMask_me_GE11_fail_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + VFATMask_me_GE11_fail_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 1); + } + VFATMask_me_GE11_fail_Ch_ieta_p1->setAxisTitle("#ieta", 1); + VFATMask_me_GE11_fail_Ch_ieta_p1->setAxisTitle("Chamber", 2); + VFATMask_me_GE11_fail_Ch_ieta_p1->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + VFATMask_me_GE11_pass_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + VFATMask_me_GE11_pass_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 1); + } + VFATMask_me_GE11_pass_Ch_ieta_p1->setAxisTitle("#ieta", 1); + VFATMask_me_GE11_pass_Ch_ieta_p1->setAxisTitle("Chamber", 2); + VFATMask_me_GE11_pass_Ch_ieta_p1->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + VFATMask_me_GE11_fail_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + VFATMask_me_GE11_fail_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 1); + } + VFATMask_me_GE11_fail_Ch_ieta_p2->setAxisTitle("#ieta", 1); + VFATMask_me_GE11_fail_Ch_ieta_p2->setAxisTitle("Chamber", 2); + VFATMask_me_GE11_fail_Ch_ieta_p2->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + VFATMask_me_GE11_pass_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + VFATMask_me_GE11_pass_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 1); + } + VFATMask_me_GE11_pass_Ch_ieta_p2->setAxisTitle("#ieta", 1); + VFATMask_me_GE11_pass_Ch_ieta_p2->setAxisTitle("Chamber", 2); + VFATMask_me_GE11_pass_Ch_ieta_p2->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + VFATMask_me_GE11_fail_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + VFATMask_me_GE11_fail_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 1); + } + VFATMask_me_GE11_fail_Ch_ieta_n1->setAxisTitle("#ieta", 1); + VFATMask_me_GE11_fail_Ch_ieta_n1->setAxisTitle("Chamber", 2); + VFATMask_me_GE11_fail_Ch_ieta_n1->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + VFATMask_me_GE11_pass_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + VFATMask_me_GE11_pass_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 1); + } + VFATMask_me_GE11_pass_Ch_ieta_n1->setAxisTitle("#ieta", 1); + VFATMask_me_GE11_pass_Ch_ieta_n1->setAxisTitle("Chamber", 2); + VFATMask_me_GE11_pass_Ch_ieta_n1->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + VFATMask_me_GE11_fail_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + VFATMask_me_GE11_fail_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 1); + } + VFATMask_me_GE11_fail_Ch_ieta_n2->setAxisTitle("#ieta", 1); + VFATMask_me_GE11_fail_Ch_ieta_n2->setAxisTitle("Chamber", 2); + VFATMask_me_GE11_fail_Ch_ieta_n2->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + VFATMask_me_GE11_pass_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + VFATMask_me_GE11_pass_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 1); + } + VFATMask_me_GE11_pass_Ch_ieta_n2->setAxisTitle("#ieta", 1); + VFATMask_me_GE11_pass_Ch_ieta_n2->setAxisTitle("Chamber", 2); + VFATMask_me_GE11_pass_Ch_ieta_n2->setAxisTitle("Number of passing probes", 3); me_GE11_pass_allCh_1D->setBinLabel(1, "GE-11", 1); me_GE11_pass_allCh_1D->setBinLabel(2, "GE+11", 1); @@ -485,6 +1047,86 @@ void GEMTnPEfficiencyTask::bookHistograms(DQMStore::IBooker& iBooker, me_GEM_pass_Ch_region_layer_phase2->setAxisTitle("Chamber", 2); me_GEM_pass_Ch_region_layer_phase2->setAxisTitle("Number of passing probes", 3); + for (int i = 1; i < 37; ++i) { + me_GE11_fail_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + me_GE11_fail_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 1); + } + me_GE11_fail_Ch_ieta_p1->setAxisTitle("#ieta", 1); + me_GE11_fail_Ch_ieta_p1->setAxisTitle("Chamber", 2); + me_GE11_fail_Ch_ieta_p1->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + me_GE11_pass_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + me_GE11_pass_Ch_ieta_p1->setBinLabel(i, std::to_string(i), 1); + } + me_GE11_pass_Ch_ieta_p1->setAxisTitle("#ieta", 1); + me_GE11_pass_Ch_ieta_p1->setAxisTitle("Chamber", 2); + me_GE11_pass_Ch_ieta_p1->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + me_GE11_fail_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + me_GE11_fail_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 1); + } + me_GE11_fail_Ch_ieta_p2->setAxisTitle("#ieta", 1); + me_GE11_fail_Ch_ieta_p2->setAxisTitle("Chamber", 2); + me_GE11_fail_Ch_ieta_p2->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + me_GE11_pass_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + me_GE11_pass_Ch_ieta_p2->setBinLabel(i, std::to_string(i), 1); + } + me_GE11_pass_Ch_ieta_p2->setAxisTitle("#ieta", 1); + me_GE11_pass_Ch_ieta_p2->setAxisTitle("Chamber", 2); + me_GE11_pass_Ch_ieta_p2->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + me_GE11_fail_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + me_GE11_fail_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 1); + } + me_GE11_fail_Ch_ieta_n1->setAxisTitle("#ieta", 1); + me_GE11_fail_Ch_ieta_n1->setAxisTitle("Chamber", 2); + me_GE11_fail_Ch_ieta_n1->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + me_GE11_pass_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + me_GE11_pass_Ch_ieta_n1->setBinLabel(i, std::to_string(i), 1); + } + me_GE11_pass_Ch_ieta_n1->setAxisTitle("#ieta", 1); + me_GE11_pass_Ch_ieta_n1->setAxisTitle("Chamber", 2); + me_GE11_pass_Ch_ieta_n1->setAxisTitle("Number of passing probes", 3); + //// + for (int i = 1; i < 37; ++i) { + me_GE11_fail_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + me_GE11_fail_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 1); + } + me_GE11_fail_Ch_ieta_n2->setAxisTitle("#ieta", 1); + me_GE11_fail_Ch_ieta_n2->setAxisTitle("Chamber", 2); + me_GE11_fail_Ch_ieta_n2->setAxisTitle("Number of failing probes", 3); + + for (int i = 1; i < 37; ++i) { + me_GE11_pass_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 2); + } + for (int i = 1; i < 9; ++i) { + me_GE11_pass_Ch_ieta_n2->setBinLabel(i, std::to_string(i), 1); + } + me_GE11_pass_Ch_ieta_n2->setAxisTitle("#ieta", 1); + me_GE11_pass_Ch_ieta_n2->setAxisTitle("Chamber", 2); + me_GE11_pass_Ch_ieta_n2->setAxisTitle("Number of passing probes", 3); + m_histos["GE11_nPassingProbe_Ch_region"] = me_GE11_pass_Ch_region; m_histos["GE11_nFailingProbe_Ch_region"] = me_GE11_fail_Ch_region; m_histos["GE21_nPassingProbe_Ch_region"] = me_GE21_pass_Ch_region; @@ -551,6 +1193,89 @@ void GEMTnPEfficiencyTask::bookHistograms(DQMStore::IBooker& iBooker, m_histos["ME0_nFailingProbe_chamber_1D"] = me_ME0_fail_chamber_1D; m_histos["GEM_nPassingProbe_Ch_region_layer_phase2"] = me_GEM_pass_Ch_region_layer_phase2; m_histos["GEM_nFailingProbe_Ch_region_layer_phase2"] = me_GEM_fail_Ch_region_layer_phase2; + m_histos["GE11_nPassingProbe_Ch_ieta_p1"] = me_GE11_pass_Ch_ieta_p1; + m_histos["GE11_nFailingProbe_Ch_ieta_p1"] = me_GE11_fail_Ch_ieta_p1; + m_histos["GE11_nPassingProbe_Ch_ieta_p2"] = me_GE11_pass_Ch_ieta_p2; + m_histos["GE11_nFailingProbe_Ch_ieta_p2"] = me_GE11_fail_Ch_ieta_p2; + m_histos["GE11_nPassingProbe_Ch_ieta_n1"] = me_GE11_pass_Ch_ieta_n1; + m_histos["GE11_nFailingProbe_Ch_ieta_n1"] = me_GE11_fail_Ch_ieta_n1; + m_histos["GE11_nPassingProbe_Ch_ieta_n2"] = me_GE11_pass_Ch_ieta_n2; + m_histos["GE11_nFailingProbe_Ch_ieta_n2"] = me_GE11_fail_Ch_ieta_n2; + + m_histos["GE11_nPassingProbe_OHmissing_allCh_1D"] = OHmissing_me_GE11_pass_allCh_1D; + m_histos["GE11_nFailingProbe_OHmissing_allCh_1D"] = OHmissing_me_GE11_fail_allCh_1D; + m_histos["GEM_nPassingProbe_OHmissing_chamber_p1_1D"] = OHmissing_me_GEM_pass_chamber_p1_1D; + m_histos["GEM_nFailingProbe_OHmissing_chamber_p1_1D"] = OHmissing_me_GEM_fail_chamber_p1_1D; + m_histos["GEM_nPassingProbe_OHmissing_chamber_p2_1D"] = OHmissing_me_GEM_pass_chamber_p2_1D; + m_histos["GEM_nFailingProbe_OHmissing_chamber_p2_1D"] = OHmissing_me_GEM_fail_chamber_p2_1D; + m_histos["GEM_nPassingProbe_OHmissing_chamber_n1_1D"] = OHmissing_me_GEM_pass_chamber_n1_1D; + m_histos["GEM_nFailingProbe_OHmissing_chamber_n1_1D"] = OHmissing_me_GEM_fail_chamber_n1_1D; + m_histos["GEM_nPassingProbe_OHmissing_chamber_n2_1D"] = OHmissing_me_GEM_pass_chamber_n2_1D; + m_histos["GEM_nFailingProbe_OHmissing_chamber_n2_1D"] = OHmissing_me_GEM_fail_chamber_n2_1D; + m_histos["GEM_nPassingProbe_OHmissing_pt_1D"] = OHmissing_me_GEM_pass_pt_1D; + m_histos["GEM_nFailingProbe_OHmissing_pt_1D"] = OHmissing_me_GEM_fail_pt_1D; + m_histos["GEM_nPassingProbe_OHmissing_eta_1D"] = OHmissing_me_GEM_pass_eta_1D; + m_histos["GEM_nFailingProbe_OHmissing_eta_1D"] = OHmissing_me_GEM_fail_eta_1D; + m_histos["GEM_nPassingProbe_OHmissing_phi_1D"] = OHmissing_me_GEM_pass_phi_1D; + m_histos["GEM_nFailingProbe_OHmissing_phi_1D"] = OHmissing_me_GEM_fail_phi_1D; + m_histos["GE11_nPassingProbe_OHmissing_Ch_ieta_p1"] = OHmissing_me_GE11_pass_Ch_ieta_p1; + m_histos["GE11_nFailingProbe_OHmissing_Ch_ieta_p1"] = OHmissing_me_GE11_fail_Ch_ieta_p1; + m_histos["GE11_nPassingProbe_OHmissing_Ch_ieta_p2"] = OHmissing_me_GE11_pass_Ch_ieta_p2; + m_histos["GE11_nFailingProbe_OHmissing_Ch_ieta_p2"] = OHmissing_me_GE11_fail_Ch_ieta_p2; + m_histos["GE11_nPassingProbe_OHmissing_Ch_ieta_n1"] = OHmissing_me_GE11_pass_Ch_ieta_n1; + m_histos["GE11_nFailingProbe_OHmissing_Ch_ieta_n1"] = OHmissing_me_GE11_fail_Ch_ieta_n1; + m_histos["GE11_nPassingProbe_OHmissing_Ch_ieta_n2"] = OHmissing_me_GE11_pass_Ch_ieta_n2; + m_histos["GE11_nFailingProbe_OHmissing_Ch_ieta_n2"] = OHmissing_me_GE11_fail_Ch_ieta_n2; + + m_histos["GE11_nPassingProbe_OHerror_allCh_1D"] = OHerror_me_GE11_pass_allCh_1D; + m_histos["GE11_nFailingProbe_OHerror_allCh_1D"] = OHerror_me_GE11_fail_allCh_1D; + m_histos["GEM_nPassingProbe_OHerror_chamber_p1_1D"] = OHerror_me_GEM_pass_chamber_p1_1D; + m_histos["GEM_nFailingProbe_OHerror_chamber_p1_1D"] = OHerror_me_GEM_fail_chamber_p1_1D; + m_histos["GEM_nPassingProbe_OHerror_chamber_p2_1D"] = OHerror_me_GEM_pass_chamber_p2_1D; + m_histos["GEM_nFailingProbe_OHerror_chamber_p2_1D"] = OHerror_me_GEM_fail_chamber_p2_1D; + m_histos["GEM_nPassingProbe_OHerror_chamber_n1_1D"] = OHerror_me_GEM_pass_chamber_n1_1D; + m_histos["GEM_nFailingProbe_OHerror_chamber_n1_1D"] = OHerror_me_GEM_fail_chamber_n1_1D; + m_histos["GEM_nPassingProbe_OHerror_chamber_n2_1D"] = OHerror_me_GEM_pass_chamber_n2_1D; + m_histos["GEM_nFailingProbe_OHerror_chamber_n2_1D"] = OHerror_me_GEM_fail_chamber_n2_1D; + m_histos["GEM_nPassingProbe_OHerror_pt_1D"] = OHerror_me_GEM_pass_pt_1D; + m_histos["GEM_nFailingProbe_OHerror_pt_1D"] = OHerror_me_GEM_fail_pt_1D; + m_histos["GEM_nPassingProbe_OHerror_eta_1D"] = OHerror_me_GEM_pass_eta_1D; + m_histos["GEM_nFailingProbe_OHerror_eta_1D"] = OHerror_me_GEM_fail_eta_1D; + m_histos["GEM_nPassingProbe_OHerror_phi_1D"] = OHerror_me_GEM_pass_phi_1D; + m_histos["GEM_nFailingProbe_OHerror_phi_1D"] = OHerror_me_GEM_fail_phi_1D; + m_histos["GE11_nPassingProbe_OHerror_Ch_ieta_p1"] = OHerror_me_GE11_pass_Ch_ieta_p1; + m_histos["GE11_nFailingProbe_OHerror_Ch_ieta_p1"] = OHerror_me_GE11_fail_Ch_ieta_p1; + m_histos["GE11_nPassingProbe_OHerror_Ch_ieta_p2"] = OHerror_me_GE11_pass_Ch_ieta_p2; + m_histos["GE11_nFailingProbe_OHerror_Ch_ieta_p2"] = OHerror_me_GE11_fail_Ch_ieta_p2; + m_histos["GE11_nPassingProbe_OHerror_Ch_ieta_n1"] = OHerror_me_GE11_pass_Ch_ieta_n1; + m_histos["GE11_nFailingProbe_OHerror_Ch_ieta_n1"] = OHerror_me_GE11_fail_Ch_ieta_n1; + m_histos["GE11_nPassingProbe_OHerror_Ch_ieta_n2"] = OHerror_me_GE11_pass_Ch_ieta_n2; + m_histos["GE11_nFailingProbe_OHerror_Ch_ieta_n2"] = OHerror_me_GE11_fail_Ch_ieta_n2; + + m_histos["GE11_nPassingProbe_VFATMask_allCh_1D"] = VFATMask_me_GE11_pass_allCh_1D; + m_histos["GE11_nFailingProbe_VFATMask_allCh_1D"] = VFATMask_me_GE11_fail_allCh_1D; + m_histos["GEM_nPassingProbe_VFATMask_chamber_p1_1D"] = VFATMask_me_GEM_pass_chamber_p1_1D; + m_histos["GEM_nFailingProbe_VFATMask_chamber_p1_1D"] = VFATMask_me_GEM_fail_chamber_p1_1D; + m_histos["GEM_nPassingProbe_VFATMask_chamber_p2_1D"] = VFATMask_me_GEM_pass_chamber_p2_1D; + m_histos["GEM_nFailingProbe_VFATMask_chamber_p2_1D"] = VFATMask_me_GEM_fail_chamber_p2_1D; + m_histos["GEM_nPassingProbe_VFATMask_chamber_n1_1D"] = VFATMask_me_GEM_pass_chamber_n1_1D; + m_histos["GEM_nFailingProbe_VFATMask_chamber_n1_1D"] = VFATMask_me_GEM_fail_chamber_n1_1D; + m_histos["GEM_nPassingProbe_VFATMask_chamber_n2_1D"] = VFATMask_me_GEM_pass_chamber_n2_1D; + m_histos["GEM_nFailingProbe_VFATMask_chamber_n2_1D"] = VFATMask_me_GEM_fail_chamber_n2_1D; + m_histos["GEM_nPassingProbe_VFATMask_pt_1D"] = VFATMask_me_GEM_pass_pt_1D; + m_histos["GEM_nFailingProbe_VFATMask_pt_1D"] = VFATMask_me_GEM_fail_pt_1D; + m_histos["GEM_nPassingProbe_VFATMask_eta_1D"] = VFATMask_me_GEM_pass_eta_1D; + m_histos["GEM_nFailingProbe_VFATMask_eta_1D"] = VFATMask_me_GEM_fail_eta_1D; + m_histos["GEM_nPassingProbe_VFATMask_phi_1D"] = VFATMask_me_GEM_pass_phi_1D; + m_histos["GEM_nFailingProbe_VFATMask_phi_1D"] = VFATMask_me_GEM_fail_phi_1D; + m_histos["GE11_nPassingProbe_VFATMask_Ch_ieta_p1"] = VFATMask_me_GE11_pass_Ch_ieta_p1; + m_histos["GE11_nFailingProbe_VFATMask_Ch_ieta_p1"] = VFATMask_me_GE11_fail_Ch_ieta_p1; + m_histos["GE11_nPassingProbe_VFATMask_Ch_ieta_p2"] = VFATMask_me_GE11_pass_Ch_ieta_p2; + m_histos["GE11_nFailingProbe_VFATMask_Ch_ieta_p2"] = VFATMask_me_GE11_fail_Ch_ieta_p2; + m_histos["GE11_nPassingProbe_VFATMask_Ch_ieta_n1"] = VFATMask_me_GE11_pass_Ch_ieta_n1; + m_histos["GE11_nFailingProbe_VFATMask_Ch_ieta_n1"] = VFATMask_me_GE11_fail_Ch_ieta_n1; + m_histos["GE11_nPassingProbe_VFATMask_Ch_ieta_n2"] = VFATMask_me_GE11_pass_Ch_ieta_n2; + m_histos["GE11_nFailingProbe_VFATMask_Ch_ieta_n2"] = VFATMask_me_GE11_fail_Ch_ieta_n2; std::string baseDir_ = topFolder() + "/detailed/"; iBooker.setCurrentFolder(baseDir_); @@ -564,11 +1289,83 @@ void GEMTnPEfficiencyTask::bookHistograms(DQMStore::IBooker& iBooker, m_histos["Cham_x_ME0"] = iBooker.book1D("Cham_x_ME0", "Cham_x;probe x [cm];Events", 100, -10., 10.); m_histos["Cham_x_GE1"] = iBooker.book1D("Cham_x_GE1", "Cham_x;probe x [cm];Events", 100, -10., 10.); m_histos["Cham_x_GE2"] = iBooker.book1D("Cham_x_GE2", "Cham_x;probe x [cm];Events", 100, -10., 10.); + m_histos["xyErr_GE1"] = iBooker.book2D("xyErr_GE1", "xyErr_GE1", 50, 0., 5., 50, 0., 5.); +} + +uint16_t GEMTnPEfficiencyTask::maskChamberWithError(const GEMDetId& chamber_id, + const GEMOHStatusCollection* oh_status_collection, + const GEMVFATStatusCollection* vfat_status_collection) { + uint16_t oh_warning = 0; + bool oh_exists = false; + for (auto iter = oh_status_collection->begin(); iter != oh_status_collection->end(); iter++) { + const auto [oh_id, range] = (*iter); + if (chamber_id.chamberId() != oh_id) { + continue; + } + for (auto oh_status = range.first; oh_status != range.second; oh_status++) { + oh_exists = true; + if (oh_status->isBad()) { + oh_warning = oh_warning | (1 << 1); + } + //oh_warning = oh_warning | (oh_status->warnings()); // If doing oh warning masking + uint32_t vfatmask = oh_status->vfatMask(); + if (vfatmask != 16777215) { + int ieta = chamber_id.ieta(); + if (!((vfatmask >> (8 - ieta) & 1) && (vfatmask >> (16 - ieta) & 1) && + (vfatmask >> (24 - ieta) & 1))) { // will not work for GE21 + oh_warning = oh_warning | (1 << 2); + } + } + } // range + } // collection + if (!oh_exists) { + oh_warning = oh_warning | 1; + } + return oh_warning; +} + +bool GEMTnPEfficiencyTask::checkBounds(const GeomDet* geomDet, + const GlobalPoint& global_position, + const float bordercut) { + const TrapezoidalPlaneBounds* bounds = dynamic_cast(&geomDet->surface().bounds()); + LocalPoint localPoint = geomDet->surface().toLocal(global_position); + float wideWidth = bounds->width(); + float narrowWidth = 2.f * bounds->widthAtHalfLength() - wideWidth; + float length = bounds->length(); + float tangent = (wideWidth - narrowWidth) / (2.f * length); + float halfWidthAtY = tangent * localPoint.y() + 0.25f * (narrowWidth + wideWidth); + float distanceY = std::abs(localPoint.y()) - 0.5f * length; + float distanceX = std::abs(localPoint.x()) - halfWidthAtY; + if (distanceX < bordercut && distanceY < bordercut) { + return true; + } + return false; } void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetup& context) { BaseTnPEfficiencyTask::analyze(event, context); + GEMOHStatusCollection oh_status; + GEMVFATStatusCollection vfat_status; + edm::Handle oh_status_collection; + edm::Handle vfat_status_collection; + muon_service_->update(context); + if (m_maskChamberWithError_) { + event.getByToken(m_GEMOHStatusCollectionToken_, oh_status_collection); + //if (oh_status_collem_tion.isValid()) { + oh_status = *oh_status_collection; + } else { + LogTrace("DQMOffline|MuonDPG|BaseTnPEfficiencyTask") << "failed to get GEMOHStatusCollection" << std::endl; + return; + } + // event.getByToken(kGEMVFATStatusCollectionToken_, vfat_status_collection); + // if (vfat_status_collection.isValid()) { + // vfat_status = *vfat_status_collection; + // } else { + // LogTrace("DQMOffline|MuonDPG|BaseTnPEfficiencyTask") << "failed to get GEMVFATStatusCollection" << std::endl; + // return; + // } + // } edm::Handle muons; event.getByToken(m_muToken, muons); @@ -582,6 +1379,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu std::vector> probe_coll_GE11_phi; std::vector> probe_coll_GE11_sta; std::vector> probe_coll_GE11_dx; + std::vector> probe_coll_GE11_warnings; //GE21 variables std::vector> probe_coll_GE21_region; @@ -593,6 +1391,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu std::vector> probe_coll_GE21_phi; std::vector> probe_coll_GE21_sta; std::vector> probe_coll_GE21_dx; + std::vector> probe_coll_GE21_warnings; std::vector probe_coll_GEM_staMatch; // ME0 to 0b0001, GE11 to 0b0010, GE21 to 0b0100 @@ -607,6 +1406,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu std::vector> probe_coll_ME0_phi; std::vector> probe_coll_ME0_sta; std::vector> probe_coll_ME0_dx; + std::vector> probe_coll_ME0_warnings; std::vector probe_indices; if (!m_probeIndices.empty()) @@ -624,6 +1424,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu std::vector probe_GE11_ieta; std::vector probe_GE11_phi; std::vector probe_GE11_dx; + std::vector probe_GE11_warnings; //GE21 variables std::vector probe_GE21_region; std::vector probe_GE21_sta; @@ -634,6 +1435,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu std::vector probe_GE21_ieta; std::vector probe_GE21_phi; std::vector probe_GE21_dx; + std::vector probe_GE21_warnings; //std::vector probe_GEM_dx_seg; uint8_t GEM_stationMatching = 0; //ME0 variables @@ -647,6 +1449,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu std::vector probe_ME0_ieta; std::vector probe_ME0_phi; std::vector probe_ME0_dx; + std::vector probe_ME0_warnings; bool gem_matched = false; // fill detailed plots only for probes matching GEM @@ -658,18 +1461,31 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu gem_matched = true; //fill detailed plots if at least one GEM probe match GEMDetId chId(chambMatch.id.rawId()); - + const uint16_t warnings = maskChamberWithError(chId, &oh_status, &vfat_status); const int roll = chId.roll(); const int region = chId.region(); const int station = chId.station(); const int layer = chId.layer(); const int chamber = chId.chamber(); - const int ieta = chId.ieta(); const float pt = (*muons).at(i).pt(); const float eta = (*muons).at(i).eta(); const float phi = (*muons).at(i).phi(); + int ieta = 0; GEM_stationMatching = GEM_stationMatching | (1 << station); + const GeomDet* geomDet = muon_service_->trackingGeometry()->idToDet(chId); + LocalPoint pos(chambMatch.x, chambMatch.y); + + const GlobalPoint& global_position = geomDet->toGlobal(pos); + + if (const GEMChamber* gemChamber = dynamic_cast(geomDet)) { + for (const GEMEtaPartition* eta_partition : gemChamber->etaPartitions()) + if (checkBounds(eta_partition, global_position, m_borderCut)) { + ieta = eta_partition->id().ieta(); + break; + } + } + if (station == 1 || station == 2) { reco::MuonGEMHitMatch closest_matchedHit; double smallestDx = 99999.; @@ -695,6 +1511,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu probe_GE11_eta.push_back(eta); probe_GE11_phi.push_back(phi); probe_GE11_dx.push_back(smallestDx); + probe_GE11_warnings.push_back(warnings); } if (station == 2) { @@ -707,13 +1524,14 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu probe_GE21_eta.push_back(eta); probe_GE21_phi.push_back(phi); probe_GE21_dx.push_back(smallestDx); + probe_GE21_warnings.push_back(warnings); } - if (m_detailedAnalysis && hit_matched) { if (station == 1) { m_histos.find("GEMhit_dx_GE1")->second->Fill(smallestDx); m_histos.find("GEMhit_x_GE1")->second->Fill(matched_GEMHit_x); m_histos.find("Cham_x_GE1")->second->Fill(chambMatch.x); + m_histos.find("xyErr_GE1")->second->Fill(chambMatch.xErr, chambMatch.yErr); } if (station == 2) { m_histos.find("GEMhit_dx_GE2")->second->Fill(smallestDx); @@ -746,6 +1564,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu probe_ME0_eta.push_back(eta); probe_ME0_phi.push_back(phi); probe_ME0_dx.push_back(smallestDx_seg); + probe_ME0_warnings.push_back(warnings); if (m_detailedAnalysis && hit_matched) { m_histos.find("GEMseg_dx_ME0")->second->Fill(smallestDx_seg); @@ -781,6 +1600,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu probe_coll_GE11_eta.push_back(probe_GE11_eta); probe_coll_GE11_phi.push_back(probe_GE11_phi); probe_coll_GE11_dx.push_back(probe_GE11_dx); + probe_coll_GE11_warnings.push_back(probe_GE11_warnings); probe_coll_GEM_staMatch.push_back(GEM_stationMatching); @@ -794,6 +1614,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu probe_coll_GE21_eta.push_back(probe_GE21_eta); probe_coll_GE21_phi.push_back(probe_GE21_phi); probe_coll_GE21_dx.push_back(probe_GE21_dx); + probe_coll_GE21_warnings.push_back(probe_GE21_warnings); //Fill ME0 variables probe_coll_ME0_region.push_back(probe_ME0_region); @@ -806,6 +1627,7 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu probe_coll_ME0_eta.push_back(probe_ME0_eta); probe_coll_ME0_phi.push_back(probe_ME0_phi); probe_coll_ME0_dx.push_back(probe_ME0_dx); + probe_coll_ME0_warnings.push_back(probe_ME0_warnings); } //loop over probe collection @@ -856,12 +1678,24 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu float GEM_dx = probe_coll_GE11_dx.at(i).at(j); float GEM_eta = probe_coll_GE11_eta.at(i).at(j); float GEM_phi = probe_coll_GE11_phi.at(i).at(j); + + uint16_t GEM_warning = probe_coll_GE11_warnings.at(i).at(j); //Fill GEM plots if (GEM_dx < m_dxCut) { m_histos.find("GE11_nPassingProbe_Ch_region")->second->Fill(GEM_region, GEM_chamber); m_histos.find("GE11_nPassingProbe_Ch_ieta")->second->Fill(GEM_ieta, GEM_chamber); m_histos.find("GE11_nPassingProbe_Ch_phi")->second->Fill(GEM_phi, GEM_chamber); m_histos.find("GE11_nPassingProbe_allCh_1D")->second->Fill(GEM_region); + if (~GEM_warning & 1) { + m_histos.find("GE11_nPassingProbe_OHmissing_allCh_1D")->second->Fill(GEM_region); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nPassingProbe_OHerror_allCh_1D")->second->Fill(GEM_region); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nPassingProbe_VFATMask_allCh_1D")->second->Fill(GEM_region); + } + } + } + m_histos.find("GE11_nPassingProbe_chamber_1D")->second->Fill(GEM_chamber); if (GEM_region < 0) { if (GEM_lay == 2) @@ -883,37 +1717,157 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu if (GEM_region == 1 && GEM_lay == 1) { m_histos.find("GEM_nPassingProbe_chamber_p1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GEM_nPassingProbe_OHmissing_chamber_p1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nPassingProbe_OHerror_chamber_p1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nPassingProbe_VFATMask_chamber_p1_1D")->second->Fill(GEM_chamber); + } + } + } + if (GEM_sta == 1) { + m_histos.find("GE11_nPassingProbe_Ch_ieta_p1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GE11_nPassingProbe_OHmissing_Ch_ieta_p1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nPassingProbe_OHerror_Ch_ieta_p1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nPassingProbe_VFATMask_Ch_ieta_p1")->second->Fill(GEM_ieta, GEM_chamber); + } + } + } + } m_histos.find("GEM_nPassingProbe_Ch_region_GE1")->second->Fill(2, GEM_chamber); m_histos.find("GEM_nPassingProbe_pt_p1_1D")->second->Fill(GEM_pt); m_histos.find("GEM_nPassingProbe_eta_p1_1D")->second->Fill(abs(GEM_eta)); m_histos.find("GEM_nPassingProbe_phi_p1_1D")->second->Fill(GEM_phi); } else if (GEM_region == 1 && GEM_lay == 2) { m_histos.find("GEM_nPassingProbe_chamber_p2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GEM_nPassingProbe_OHmissing_chamber_p2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nPassingProbe_OHerror_chamber_p2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nPassingProbe_VFATMask_chamber_p2_1D")->second->Fill(GEM_chamber); + } + } + } + if (GEM_sta == 1) { + m_histos.find("GE11_nPassingProbe_Ch_ieta_p2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GE11_nPassingProbe_OHmissing_Ch_ieta_p2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nPassingProbe_OHerror_Ch_ieta_p2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nPassingProbe_VFATMask_Ch_ieta_p2")->second->Fill(GEM_ieta, GEM_chamber); + } + } + } + } m_histos.find("GEM_nPassingProbe_Ch_region_GE1")->second->Fill(3, GEM_chamber); m_histos.find("GEM_nPassingProbe_pt_p2_1D")->second->Fill(GEM_pt); m_histos.find("GEM_nPassingProbe_eta_p2_1D")->second->Fill(abs(GEM_eta)); m_histos.find("GEM_nPassingProbe_phi_p2_1D")->second->Fill(GEM_phi); } else if (GEM_region == -1 && GEM_lay == 1) { m_histos.find("GEM_nPassingProbe_chamber_n1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GEM_nPassingProbe_OHmissing_chamber_n1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nPassingProbe_OHerror_chamber_n1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nPassingProbe_VFATMask_chamber_n1_1D")->second->Fill(GEM_chamber); + } + } + } + if (GEM_sta == 1) { + m_histos.find("GE11_nPassingProbe_Ch_ieta_n1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GE11_nPassingProbe_OHmissing_Ch_ieta_n1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nPassingProbe_OHerror_Ch_ieta_n1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nPassingProbe_VFATMask_Ch_ieta_n1")->second->Fill(GEM_ieta, GEM_chamber); + } + } + } + } m_histos.find("GEM_nPassingProbe_Ch_region_GE1")->second->Fill(1, GEM_chamber); m_histos.find("GEM_nPassingProbe_pt_n1_1D")->second->Fill(GEM_pt); m_histos.find("GEM_nPassingProbe_eta_n1_1D")->second->Fill(abs(GEM_eta)); m_histos.find("GEM_nPassingProbe_phi_n1_1D")->second->Fill(GEM_phi); } else if (GEM_region == -1 && GEM_lay == 2) { m_histos.find("GEM_nPassingProbe_chamber_n2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GEM_nPassingProbe_OHmissing_chamber_n2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nPassingProbe_OHerror_chamber_n2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nPassingProbe_VFATMask_chamber_n2_1D")->second->Fill(GEM_chamber); + } + } + } + if (GEM_sta == 1) { + m_histos.find("GE11_nPassingProbe_Ch_ieta_n2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GE11_nPassingProbe_OHmissing_Ch_ieta_n2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nPassingProbe_OHerror_Ch_ieta_n2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nPassingProbe_VFATMask_Ch_ieta_n2")->second->Fill(GEM_ieta, GEM_chamber); + } + } + } + } m_histos.find("GEM_nPassingProbe_Ch_region_GE1")->second->Fill(0, GEM_chamber); m_histos.find("GEM_nPassingProbe_pt_n2_1D")->second->Fill(GEM_pt); m_histos.find("GEM_nPassingProbe_eta_n2_1D")->second->Fill(abs(GEM_eta)); m_histos.find("GEM_nPassingProbe_phi_n2_1D")->second->Fill(GEM_phi); } m_histos.find("GEM_nPassingProbe_pt_1D")->second->Fill(GEM_pt); + if (~GEM_warning & 1) { + m_histos.find("GEM_nPassingProbe_OHmissing_pt_1D")->second->Fill(GEM_pt); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nPassingProbe_OHerror_pt_1D")->second->Fill(GEM_pt); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nPassingProbe_VFATMask_pt_1D")->second->Fill(GEM_pt); + } + } + } m_histos.find("GEM_nPassingProbe_eta_1D")->second->Fill(abs(GEM_eta)); + if (~GEM_warning & 1) { + m_histos.find("GEM_nPassingProbe_OHmissing_eta_1D")->second->Fill(GEM_eta); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nPassingProbe_OHerror_eta_1D")->second->Fill(GEM_eta); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nPassingProbe_VFATMask_eta_1D")->second->Fill(GEM_eta); + } + } + } m_histos.find("GEM_nPassingProbe_phi_1D")->second->Fill(GEM_phi); + if (~GEM_warning & 1) { + m_histos.find("GEM_nPassingProbe_OHmissing_phi_1D")->second->Fill(GEM_phi); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nPassingProbe_OHerror_phi_1D")->second->Fill(GEM_phi); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nPassingProbe_VFATMask_phi_1D")->second->Fill(GEM_phi); + } + } + } } else { m_histos.find("GE11_nFailingProbe_Ch_region")->second->Fill(GEM_region, GEM_chamber); m_histos.find("GE11_nFailingProbe_Ch_ieta")->second->Fill(GEM_ieta, GEM_chamber); m_histos.find("GE11_nFailingProbe_Ch_phi")->second->Fill(GEM_phi, GEM_chamber); m_histos.find("GE11_nFailingProbe_allCh_1D")->second->Fill(GEM_region); + if (~GEM_warning & 1) { + m_histos.find("GE11_nFailingProbe_OHmissing_allCh_1D")->second->Fill(GEM_region); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nFailingProbe_OHerror_allCh_1D")->second->Fill(GEM_region); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nFailingProbe_VFATMask_allCh_1D")->second->Fill(GEM_region); + } + } + } m_histos.find("GE11_nFailingProbe_chamber_1D")->second->Fill(GEM_chamber); if (GEM_region < 0) { if (GEM_sta == 2 and GEM_lay == 2) @@ -943,32 +1897,143 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu // if (GEM_region == 1 && GEM_lay == 1) { m_histos.find("GEM_nFailingProbe_chamber_p1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GEM_nFailingProbe_OHmissing_chamber_p1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nFailingProbe_OHerror_chamber_p1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nFailingProbe_VFATMask_chamber_p1_1D")->second->Fill(GEM_chamber); + } + } + } m_histos.find("GEM_nFailingProbe_Ch_region_GE1")->second->Fill(2, GEM_chamber); m_histos.find("GEM_nFailingProbe_pt_p1_1D")->second->Fill(GEM_pt); m_histos.find("GEM_nFailingProbe_eta_p1_1D")->second->Fill(abs(GEM_eta)); m_histos.find("GEM_nFailingProbe_phi_p1_1D")->second->Fill(GEM_phi); + if (GEM_sta == 1) { + m_histos.find("GE11_nFailingProbe_Ch_ieta_p1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GE11_nFailingProbe_OHmissing_Ch_ieta_p1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nFailingProbe_OHerror_Ch_ieta_p1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nFailingProbe_VFATMask_Ch_ieta_p1")->second->Fill(GEM_ieta, GEM_chamber); + } + } + } + } } else if (GEM_region == 1 && GEM_lay == 2) { m_histos.find("GEM_nFailingProbe_chamber_p2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GEM_nFailingProbe_OHmissing_chamber_p2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nFailingProbe_OHerror_chamber_p2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nFailingProbe_VFATMask_chamber_p2_1D")->second->Fill(GEM_chamber); + } + } + } m_histos.find("GEM_nFailingProbe_Ch_region_GE1")->second->Fill(3, GEM_chamber); m_histos.find("GEM_nFailingProbe_pt_p2_1D")->second->Fill(GEM_pt); m_histos.find("GEM_nFailingProbe_eta_p2_1D")->second->Fill(abs(GEM_eta)); m_histos.find("GEM_nFailingProbe_phi_p2_1D")->second->Fill(GEM_phi); + if (GEM_sta == 1) { + m_histos.find("GE11_nFailingProbe_Ch_ieta_p2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GE11_nFailingProbe_OHmissing_Ch_ieta_p2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nFailingProbe_OHerror_Ch_ieta_p2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nFailingProbe_VFATMask_Ch_ieta_p2")->second->Fill(GEM_ieta, GEM_chamber); + } + } + } + } } else if (GEM_region == -1 && GEM_lay == 1) { m_histos.find("GEM_nFailingProbe_chamber_n1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GEM_nFailingProbe_OHmissing_chamber_n1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nFailingProbe_OHerror_chamber_n1_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nFailingProbe_VFATMask_chamber_n1_1D")->second->Fill(GEM_chamber); + } + } + } m_histos.find("GEM_nFailingProbe_Ch_region_GE1")->second->Fill(1, GEM_chamber); m_histos.find("GEM_nFailingProbe_pt_n1_1D")->second->Fill(GEM_pt); m_histos.find("GEM_nFailingProbe_eta_n1_1D")->second->Fill(abs(GEM_eta)); m_histos.find("GEM_nFailingProbe_phi_n1_1D")->second->Fill(GEM_phi); + if (GEM_sta == 1) { + m_histos.find("GE11_nFailingProbe_Ch_ieta_n1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GE11_nFailingProbe_OHmissing_Ch_ieta_n1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nFailingProbe_OHerror_Ch_ieta_n1")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nFailingProbe_VFATMask_Ch_ieta_n1")->second->Fill(GEM_ieta, GEM_chamber); + } + } + } + } } else if (GEM_region == -1 && GEM_lay == 2) { m_histos.find("GEM_nFailingProbe_chamber_n2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GEM_nFailingProbe_OHmissing_chamber_n2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nFailingProbe_OHerror_chamber_n2_1D")->second->Fill(GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nFailingProbe_VFATMask_chamber_n2_1D")->second->Fill(GEM_chamber); + } + } + } m_histos.find("GEM_nFailingProbe_Ch_region_GE1")->second->Fill(0, GEM_chamber); m_histos.find("GEM_nFailingProbe_pt_n2_1D")->second->Fill(GEM_pt); m_histos.find("GEM_nFailingProbe_eta_n2_1D")->second->Fill(abs(GEM_eta)); m_histos.find("GEM_nFailingProbe_phi_n2_1D")->second->Fill(GEM_phi); + if (GEM_sta == 1) { + m_histos.find("GE11_nFailingProbe_Ch_ieta_n2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning & 1) { + m_histos.find("GE11_nFailingProbe_OHmissing_Ch_ieta_n2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GE11_nFailingProbe_OHerror_Ch_ieta_n2")->second->Fill(GEM_ieta, GEM_chamber); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GE11_nFailingProbe_VFATMask_Ch_ieta_n2")->second->Fill(GEM_ieta, GEM_chamber); + } + } + } + } } m_histos.find("GEM_nFailingProbe_pt_1D")->second->Fill(GEM_pt); + if (~GEM_warning & 1) { + m_histos.find("GEM_nFailingProbe_OHmissing_pt_1D")->second->Fill(GEM_pt); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nFailingProbe_OHerror_pt_1D")->second->Fill(GEM_pt); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nFailingProbe_VFATMask_pt_1D")->second->Fill(GEM_pt); + } + } + } m_histos.find("GEM_nFailingProbe_eta_1D")->second->Fill(abs(GEM_eta)); + if (~GEM_warning & 1) { + m_histos.find("GEM_nFailingProbe_OHmissing_eta_1D")->second->Fill(GEM_eta); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nFailingProbe_OHerror_eta_1D")->second->Fill(GEM_eta); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nFailingProbe_VFATMask_eta_1D")->second->Fill(GEM_eta); + } + } + } m_histos.find("GEM_nFailingProbe_phi_1D")->second->Fill(GEM_phi); + if (~GEM_warning & 1) { + m_histos.find("GEM_nFailingProbe_OHmissing_phi_1D")->second->Fill(GEM_phi); + if (~GEM_warning >> 1 & 1) { + m_histos.find("GEM_nFailingProbe_OHerror_phi_1D")->second->Fill(GEM_phi); + if (~GEM_warning >> 2 & 1) { + m_histos.find("GEM_nFailingProbe_VFATMask_phi_1D")->second->Fill(GEM_phi); + } + } + } } } @@ -1027,4 +2092,4 @@ void GEMTnPEfficiencyTask::analyze(const edm::Event& event, const edm::EventSetu std::string GEMTnPEfficiencyTask::topFolder() const { return "GEM/Segment_TnP/"; }; -DEFINE_FWK_MODULE(GEMTnPEfficiencyTask); \ No newline at end of file +DEFINE_FWK_MODULE(GEMTnPEfficiencyTask); diff --git a/DQMOffline/MuonDPG/python/gemTnPEfficiencyClient_cfi.py b/DQMOffline/MuonDPG/python/gemTnPEfficiencyClient_cfi.py index 830db19dc7763..2000be9b2a4ab 100644 --- a/DQMOffline/MuonDPG/python/gemTnPEfficiencyClient_cfi.py +++ b/DQMOffline/MuonDPG/python/gemTnPEfficiencyClient_cfi.py @@ -36,5 +36,45 @@ "GEM_nPassingProbe_eta_n2_1D:GEM_nFailingProbe_eta_n2_1D", "GEM_nPassingProbe_phi_n2_1D:GEM_nFailingProbe_phi_n2_1D", "ME0_nPassingProbe_chamber_1D:ME0_nFailingProbe_chamber_1D", + "GE11_nPassingProbe_Ch_ieta_p1:GE11_nFailingProbe_Ch_ieta_p1", + "GE11_nPassingProbe_Ch_ieta_p2:GE11_nFailingProbe_Ch_ieta_p2", + "GE11_nPassingProbe_Ch_ieta_n1:GE11_nFailingProbe_Ch_ieta_n1", + "GE11_nPassingProbe_Ch_ieta_n2:GE11_nFailingProbe_Ch_ieta_n2", + "GE11_nPassingProbe_OHmissing_allCh_1D:GE11_nFailingProbe_OHmissing_allCh_1D", + "GEM_nPassingProbe_OHmissing_chamber_p1_1D:GEM_nFailingProbe_OHmissing_chamber_p1_1D", + "GEM_nPassingProbe_OHmissing_chamber_p2_1D:GEM_nFailingProbe_OHmissing_chamber_p2_1D", + "GEM_nPassingProbe_OHmissing_chamber_n1_1D:GEM_nFailingProbe_OHmissing_chamber_n1_1D", + "GEM_nPassingProbe_OHmissing_chamber_n2_1D:GEM_nFailingProbe_OHmissing_chamber_n2_1D", + "GEM_nPassingProbe_OHmissing_pt_1D:GEM_nFailingProbe_OHmissing_pt_1D", + "GEM_nPassingProbe_OHmissing_eta_1D:GEM_nFailingProbe_OHmissing_eta_1D", + "GEM_nPassingProbe_OHmissing_phi_1D:GEM_nFailingProbe_OHmissing_phi_1D", + "GE11_nPassingProbe_OHmissing_Ch_ieta_p1:GE11_nFailingProbe_OHmissing_Ch_ieta_p1", + "GE11_nPassingProbe_OHmissing_Ch_ieta_p2:GE11_nFailingProbe_OHmissing_Ch_ieta_p2", + "GE11_nPassingProbe_OHmissing_Ch_ieta_n1:GE11_nFailingProbe_OHmissing_Ch_ieta_n1", + "GE11_nPassingProbe_OHmissing_Ch_ieta_n2:GE11_nFailingProbe_OHmissing_Ch_ieta_n2", + "GE11_nPassingProbe_OHerror_allCh_1D:GE11_nFailingProbe_OHerror_allCh_1D", + "GEM_nPassingProbe_OHerror_chamber_p1_1D:GEM_nFailingProbe_OHerror_chamber_p1_1D", + "GEM_nPassingProbe_OHerror_chamber_p2_1D:GEM_nFailingProbe_OHerror_chamber_p2_1D", + "GEM_nPassingProbe_OHerror_chamber_n1_1D:GEM_nFailingProbe_OHerror_chamber_n1_1D", + "GEM_nPassingProbe_OHerror_chamber_n2_1D:GEM_nFailingProbe_OHerror_chamber_n2_1D", + "GEM_nPassingProbe_OHerror_pt_1D:GEM_nFailingProbe_OHerror_pt_1D", + "GEM_nPassingProbe_OHerror_eta_1D:GEM_nFailingProbe_OHerror_eta_1D", + "GEM_nPassingProbe_OHerror_phi_1D:GEM_nFailingProbe_OHerror_phi_1D", + "GE11_nPassingProbe_OHerror_Ch_ieta_p1:GE11_nFailingProbe_OHerror_Ch_ieta_p1", + "GE11_nPassingProbe_OHerror_Ch_ieta_p2:GE11_nFailingProbe_OHerror_Ch_ieta_p2", + "GE11_nPassingProbe_OHerror_Ch_ieta_n1:GE11_nFailingProbe_OHerror_Ch_ieta_n1", + "GE11_nPassingProbe_OHerror_Ch_ieta_n2:GE11_nFailingProbe_OHerror_Ch_ieta_n2", + "GE11_nPassingProbe_VFATMask_allCh_1D:GE11_nFailingProbe_VFATMask_allCh_1D", + "GEM_nPassingProbe_VFATMask_chamber_p1_1D:GEM_nFailingProbe_VFATMask_chamber_p1_1D", + "GEM_nPassingProbe_VFATMask_chamber_p2_1D:GEM_nFailingProbe_VFATMask_chamber_p2_1D", + "GEM_nPassingProbe_VFATMask_chamber_n1_1D:GEM_nFailingProbe_VFATMask_chamber_n1_1D", + "GEM_nPassingProbe_VFATMask_chamber_n2_1D:GEM_nFailingProbe_VFATMask_chamber_n2_1D", + "GEM_nPassingProbe_VFATMask_pt_1D:GEM_nFailingProbe_VFATMask_pt_1D", + "GEM_nPassingProbe_VFATMask_eta_1D:GEM_nFailingProbe_VFATMask_eta_1D", + "GEM_nPassingProbe_VFATMask_phi_1D:GEM_nFailingProbe_VFATMask_phi_1D", + "GE11_nPassingProbe_VFATMask_Ch_ieta_p1:GE11_nFailingProbe_VFATMask_Ch_ieta_p1", + "GE11_nPassingProbe_VFATMask_Ch_ieta_p2:GE11_nFailingProbe_VFATMask_Ch_ieta_p2", + "GE11_nPassingProbe_VFATMask_Ch_ieta_n1:GE11_nFailingProbe_VFATMask_Ch_ieta_n1", + "GE11_nPassingProbe_VFATMask_Ch_ieta_n2:GE11_nFailingProbe_VFATMask_Ch_ieta_n2", "GEM_nPassingProbe_Ch_region_layer_phase2:GEM_nFailingProbe_Ch_region_layer_phase2"), - diagnosticPrescale = cms.untracked.int32(1)) \ No newline at end of file + diagnosticPrescale = cms.untracked.int32(1)) diff --git a/DQMOffline/MuonDPG/python/gemTnPEfficiencyTask_cfi.py b/DQMOffline/MuonDPG/python/gemTnPEfficiencyTask_cfi.py index 92fcb8af326ad..d864bc8af2ac9 100644 --- a/DQMOffline/MuonDPG/python/gemTnPEfficiencyTask_cfi.py +++ b/DQMOffline/MuonDPG/python/gemTnPEfficiencyTask_cfi.py @@ -1,4 +1,5 @@ import FWCore.ParameterSet.Config as cms +from RecoMuon.TrackingTools.MuonServiceProxy_cff import * from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer gemTnPEfficiencyMonitor = DQMEDAnalyzer('GEMTnPEfficiencyTask', @@ -16,8 +17,13 @@ # CutBasedIdMedium = 1UL << 1 # CutBasedIdMediumPrompt = 1UL << 2 # CutBasedIdTight = 1UL << 3 + maskChamberWithError=cms.untracked.bool(True), + ServiceParameters = MuonServiceProxy.ServiceParameters.clone(), + ohStatusTag=cms.untracked.InputTag("muonGEMDigis", "OHStatus"), + vfatStatusTag=cms.untracked.InputTag("muonGEMDigis","VFATStatus"), + amcStatusTag=cms.untracked.InputTag("muonGEMDigis","AMCStatus"), tagCut = cms.untracked.string('(selectors & 8) && ((isolationR03.sumPt)/(pt) < 0.05) && pt>24.'), - borderCut = cms.untracked.double(-10.), + borderCut = cms.untracked.double(-2.), lowPairMassCut = cms.untracked.double (80.), highPairMassCut = cms.untracked.double (100.), trigName = cms.untracked.string("HLT_IsoMu*"),