File indexing completed on 2024-04-06 12:03:30
0001
0002 #include "FWCore/Framework/interface/Frameworkfwd.h"
0003 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0004 #include "FWCore/Framework/interface/Event.h"
0005 #include "FWCore/Framework/interface/EventSetup.h"
0006 #include "FWCore/Framework/interface/ESHandle.h"
0007 #include "FWCore/ServiceRegistry/interface/Service.h"
0008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010 #include "CondFormats/SiStripObjects/interface/SiStripThreshold.h"
0011 #include "CondFormats/DataRecord/interface/SiStripThresholdRcd.h"
0012
0013
0014 #include <memory>
0015 #include <iostream>
0016 #include <cstdio>
0017 #include <sys/time.h>
0018
0019 class SiStripThresholdReader : public edm::one::EDAnalyzer<> {
0020 public:
0021 explicit SiStripThresholdReader(const edm::ParameterSet&);
0022 ~SiStripThresholdReader() override = default;
0023
0024 void analyze(const edm::Event&, const edm::EventSetup&) override;
0025
0026 private:
0027 uint32_t printdebug_;
0028 const edm::ESGetToken<SiStripThreshold, SiStripThresholdRcd> thresholdToken_;
0029 };
0030
0031 using namespace std;
0032 using namespace cms;
0033
0034 SiStripThresholdReader::SiStripThresholdReader(const edm::ParameterSet& iConfig)
0035 : printdebug_(iConfig.getUntrackedParameter<uint32_t>("printDebug", 3)), thresholdToken_(esConsumes()) {}
0036
0037 void SiStripThresholdReader::analyze(const edm::Event& e, const edm::EventSetup& iSetup) {
0038 const auto& thresholds = iSetup.getData(thresholdToken_);
0039 edm::LogInfo("SiStripThresholdReader") << "[SiStripThresholdReader::analyze] End Reading SiStripThreshold"
0040 << std::endl;
0041
0042 std::vector<uint32_t> detid;
0043 thresholds.getDetIds(detid);
0044 edm::LogInfo("Number of detids ") << detid.size() << std::endl;
0045 if (printdebug_)
0046 for (size_t id = 0; id < detid.size() && id < printdebug_; id++) {
0047 SiStripThreshold::Range range = thresholds.getRange(detid[id]);
0048
0049
0050 float old_clusTh = -1, old_lowTh = -1, old_highTh = -1, old_FirstStrip = -1;
0051 for (int it = 0; it < 768; it++) {
0052 SiStripThreshold::Data data = thresholds.getData(it, range);
0053 std::stringstream ss;
0054 data.print(ss);
0055 if (old_clusTh != data.getClusth() || old_lowTh != data.getLth() || old_highTh != data.getHth() ||
0056 old_FirstStrip != data.getFirstStrip()) {
0057 edm::LogInfo("SiStripThresholdReader")
0058 << "detid: " << detid[id] << " \t"
0059 << "strip: " << it << " \t" << ss.str() << "FirstStrip_and_Hth: " << data.FirstStrip_and_Hth << " \n"
0060 << std::endl;
0061 old_lowTh = data.getLth();
0062 old_highTh = data.getHth();
0063 old_clusTh = data.getClusth();
0064 old_FirstStrip = data.getFirstStrip();
0065 }
0066 }
0067 }
0068 }
0069
0070 #include "FWCore/PluginManager/interface/ModuleDef.h"
0071 #include "FWCore/Framework/interface/MakerMacros.h"
0072
0073 DEFINE_FWK_MODULE(SiStripThresholdReader);