File indexing completed on 2024-09-07 04:35:47
0001
0002 #include <iostream>
0003 #include <sstream>
0004
0005
0006 #include "CalibFormats/SiStripObjects/interface/SiStripDetCabling.h"
0007 #include "CalibFormats/SiStripObjects/interface/SiStripFecCabling.h"
0008 #include "CalibFormats/SiStripObjects/interface/SiStripRegionCabling.h"
0009 #include "CalibTracker/Records/interface/SiStripDetCablingRcd.h"
0010 #include "CalibTracker/Records/interface/SiStripFecCablingRcd.h"
0011 #include "CalibTracker/Records/interface/SiStripRegionCablingRcd.h"
0012 #include "CondFormats/DataRecord/interface/SiStripFedCablingRcd.h"
0013 #include "CondFormats/SiStripObjects/interface/SiStripFedCabling.h"
0014 #include "FWCore/Framework/interface/ESHandle.h"
0015 #include "FWCore/Framework/interface/Event.h"
0016 #include "FWCore/Framework/interface/EventSetup.h"
0017 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0018 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020
0021 class SiStripFedCablingReader : public edm::one::EDAnalyzer<edm::one::WatchRuns> {
0022 public:
0023 SiStripFedCablingReader(const edm::ParameterSet&);
0024 ~SiStripFedCablingReader() override = default;
0025
0026 void beginRun(const edm::Run&, const edm::EventSetup&) override;
0027 void endRun(const edm::Run&, const edm::EventSetup&) override {}
0028 void analyze(const edm::Event&, const edm::EventSetup&) override {}
0029
0030 private:
0031 bool printFecCabling_;
0032 bool printDetCabling_;
0033 bool printRegionCabling_;
0034 const edm::ESGetToken<SiStripFedCabling, SiStripFedCablingRcd> fedCablingToken_;
0035 const edm::ESGetToken<SiStripFecCabling, SiStripFecCablingRcd> fecCablingToken_;
0036 const edm::ESGetToken<SiStripDetCabling, SiStripDetCablingRcd> detCablingToken_;
0037 const edm::ESGetToken<SiStripRegionCabling, SiStripRegionCablingRcd> regionCablingToken_;
0038 const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> tTopoToken_;
0039 };
0040
0041
0042
0043 SiStripFedCablingReader::SiStripFedCablingReader(const edm::ParameterSet& pset)
0044 : printFecCabling_(pset.getUntrackedParameter<bool>("PrintFecCabling", false)),
0045 printDetCabling_(pset.getUntrackedParameter<bool>("PrintDetCabling", false)),
0046 printRegionCabling_(pset.getUntrackedParameter<bool>("PrintRegionCabling", false)),
0047 fedCablingToken_(esConsumes<edm::Transition::BeginRun>()),
0048 fecCablingToken_(esConsumes<edm::Transition::BeginRun>()),
0049 detCablingToken_(esConsumes<edm::Transition::BeginRun>()),
0050 regionCablingToken_(esConsumes<edm::Transition::BeginRun>()),
0051 tTopoToken_(esConsumes<edm::Transition::BeginRun>()) {}
0052
0053
0054
0055 void SiStripFedCablingReader::beginRun(const edm::Run& run, const edm::EventSetup& setup) {
0056 auto const fedRec = setup.tryToGet<SiStripFedCablingRcd>();
0057 auto const fecRec = setup.tryToGet<SiStripFecCablingRcd>();
0058 auto const detRec = setup.tryToGet<SiStripDetCablingRcd>();
0059 auto const regRec = setup.tryToGet<SiStripRegionCablingRcd>();
0060
0061 edm::ESHandle<SiStripFedCabling> fed;
0062 if (fedRec) {
0063 edm::LogVerbatim("SiStripFedCablingReader") << "[SiStripFedCablingReader::" << __func__ << "]"
0064 << " Retrieving FED cabling...";
0065 fed = setup.getHandle(fedCablingToken_);
0066 }
0067
0068 edm::ESHandle<SiStripFecCabling> fec;
0069 if (fecRec) {
0070 edm::LogVerbatim("SiStripFedCablingReader") << "[SiStripFedCablingReader::" << __func__ << "]"
0071 << " Retrieving FEC cabling...";
0072 fec = setup.getHandle(fecCablingToken_);
0073 }
0074
0075 edm::ESHandle<SiStripDetCabling> det;
0076 if (detRec) {
0077 edm::LogVerbatim("SiStripFedCablingReader") << "[SiStripFedCablingReader::" << __func__ << "]"
0078 << " Retrieving DET cabling...";
0079 det = setup.getHandle(detCablingToken_);
0080 }
0081
0082 edm::ESHandle<SiStripRegionCabling> region;
0083 if (regRec) {
0084 edm::LogVerbatim("SiStripFedCablingReader") << "[SiStripFedCablingReader::" << __func__ << "]"
0085 << " Retrieving REGION cabling...";
0086 region = setup.getHandle(regionCablingToken_);
0087 }
0088
0089 if (!fed.isValid()) {
0090 edm::LogError("SiStripFedCablingReader") << " Invalid handle to FED cabling object: ";
0091 return;
0092 }
0093
0094 {
0095 std::stringstream ss;
0096 ss << "[SiStripFedCablingReader::" << __func__ << "]"
0097 << " VERBOSE DEBUG" << std::endl;
0098 if (fedRec) {
0099 fed->print(ss, &setup.getData(tTopoToken_));
0100 }
0101 ss << std::endl;
0102 if (fecRec && printFecCabling_ && fec.isValid()) {
0103 fec->print(ss);
0104 }
0105 ss << std::endl;
0106 if (detRec && printDetCabling_ && det.isValid()) {
0107 det->print(ss);
0108 }
0109 ss << std::endl;
0110 if (regRec && printRegionCabling_ && region.isValid()) {
0111 region->print(ss);
0112 }
0113 ss << std::endl;
0114 edm::LogVerbatim("SiStripFedCablingReader") << ss.str();
0115 }
0116
0117 if (fedRec) {
0118 std::stringstream ss;
0119 ss << "[SiStripFedCablingReader::" << __func__ << "]"
0120 << " TERSE DEBUG" << std::endl;
0121 fed->terse(ss);
0122 ss << std::endl;
0123 edm::LogVerbatim("SiStripFedCablingReader") << ss.str();
0124 }
0125
0126 if (fedRec) {
0127 std::stringstream ss;
0128 ss << "[SiStripFedCablingReader::" << __func__ << "]"
0129 << " SUMMARY DEBUG" << std::endl;
0130 fed->summary(ss, &setup.getData(tTopoToken_));
0131 ss << std::endl;
0132 edm::LogVerbatim("SiStripFedCablingReader") << ss.str();
0133 }
0134 }
0135
0136 #include "FWCore/PluginManager/interface/ModuleDef.h"
0137 #include "FWCore/Framework/interface/MakerMacros.h"
0138
0139 DEFINE_FWK_MODULE(SiStripFedCablingReader);