File indexing completed on 2025-01-05 23:44:39
0001
0002 #include <memory>
0003 #include <sstream>
0004
0005
0006 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0008
0009 #include "FWCore/ServiceRegistry/interface/Service.h"
0010 #include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
0011
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013
0014 #include "CondFormats/SiPixelObjects/interface/SiPixelFedCablingMap.h"
0015 #include "CondFormats/SiPixelObjects/interface/SiPixelFedCablingTree.h"
0016 #include "CalibTracker/SiPixelConnectivity/interface/SiPixelFedCablingMapBuilder.h"
0017
0018 using namespace std;
0019 using namespace edm;
0020 using namespace sipixelobjects;
0021
0022 class SiPixelFedCablingMapWriter : public edm::one::EDAnalyzer<> {
0023 public:
0024 explicit SiPixelFedCablingMapWriter(const edm::ParameterSet& cfg);
0025 ~SiPixelFedCablingMapWriter();
0026 virtual void beginJob();
0027 virtual void endJob();
0028 virtual void analyze(const edm::Event&, const edm::EventSetup&);
0029
0030 private:
0031 SiPixelFedCablingTree* cabling;
0032 string record_;
0033
0034 string fileName_;
0035
0036 };
0037
0038 SiPixelFedCablingMapWriter::SiPixelFedCablingMapWriter(const edm::ParameterSet& cfg)
0039 : record_(cfg.getParameter<std::string>("record")),
0040
0041
0042 fileName_(cfg.getUntrackedParameter<std::string>("fileName", "pixelToLNK.ascii")) {
0043 stringstream out;
0044 out << " record: " << record_ << endl;
0045 out << " input file name " << fileName_ << endl;
0046
0047 LogInfo("initialisation: ") << out.str();
0048 }
0049
0050 SiPixelFedCablingMapWriter::~SiPixelFedCablingMapWriter() = default;
0051
0052 void SiPixelFedCablingMapWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0053 static int first(1);
0054 if (1 == first) {
0055 first = 0;
0056
0057
0058
0059 cabling = SiPixelFedCablingMapBuilder(consumesCollector(), fileName_).produce(iSetup);
0060
0061 edm::LogInfo("PRINTING MAP (Does not work for phase1: ") << cabling->print(3);
0062 }
0063 }
0064
0065 void SiPixelFedCablingMapWriter::beginJob() {}
0066
0067 void SiPixelFedCablingMapWriter::endJob() {
0068 SiPixelFedCablingMap result(cabling);
0069 LogInfo("Now NEW writing to DB");
0070 edm::Service<cond::service::PoolDBOutputService> mydbservice;
0071 if (!mydbservice.isAvailable()) {
0072 edm::LogInfo("db service unavailable");
0073
0074 return;
0075 } else {
0076
0077 edm::LogInfo("Writing finished ");
0078 }
0079
0080 try {
0081 if (mydbservice->isNewTagRequest(record_)) {
0082 mydbservice->createOneIOV<SiPixelFedCablingMap>(result, mydbservice->beginOfTime(), record_);
0083 } else {
0084 mydbservice->appendOneIOV<SiPixelFedCablingMap>(result, mydbservice->currentTime(), record_);
0085 }
0086 } catch (std::exception& e) {
0087 LogError("std::exception: ") << e.what();
0088 } catch (...) {
0089 LogError("Unknown error caught ");
0090 }
0091 LogInfo("... all done, end");
0092 }
0093
0094
0095 #include "FWCore/Framework/interface/MakerMacros.h"
0096 DEFINE_FWK_MODULE(SiPixelFedCablingMapWriter);