File indexing completed on 2024-04-06 11:59:31
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
0051 }
0052
0053 SiPixelFedCablingMapWriter::~SiPixelFedCablingMapWriter() = default;
0054
0055 void SiPixelFedCablingMapWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0056 static int first(1);
0057 if (1 == first) {
0058 first = 0;
0059
0060
0061
0062 cabling = SiPixelFedCablingMapBuilder(consumesCollector(), fileName_).produce(iSetup);
0063
0064 edm::LogInfo("PRINTING MAP (Does not work for phase1: ") << cabling->print(3);
0065 }
0066 }
0067
0068 void SiPixelFedCablingMapWriter::beginJob() {}
0069
0070 void SiPixelFedCablingMapWriter::endJob() {
0071 SiPixelFedCablingMap result(cabling);
0072 LogInfo("Now NEW writing to DB");
0073 edm::Service<cond::service::PoolDBOutputService> mydbservice;
0074 if (!mydbservice.isAvailable()) {
0075 edm::LogInfo("db service unavailable");
0076
0077 return;
0078 } else {
0079
0080 edm::LogInfo("Writing finished ");
0081 }
0082
0083 try {
0084 if (mydbservice->isNewTagRequest(record_)) {
0085 mydbservice->createOneIOV<SiPixelFedCablingMap>(result, mydbservice->beginOfTime(), record_);
0086 } else {
0087 mydbservice->appendOneIOV<SiPixelFedCablingMap>(result, mydbservice->currentTime(), record_);
0088 }
0089 } catch (std::exception& e) {
0090 LogError("std::exception: ") << e.what();
0091 } catch (...) {
0092 LogError("Unknown error caught ");
0093 }
0094 LogInfo("... all done, end");
0095 }
0096
0097
0098 #include "FWCore/Framework/interface/MakerMacros.h"
0099 DEFINE_FWK_MODULE(SiPixelFedCablingMapWriter);