Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-05 23:44:39

0001 // system include files
0002 #include <memory>
0003 #include <sstream>
0004 
0005 // user include files
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   //string pixelToFedAssociator_;
0034   string fileName_;
0035   //bool phase1_;
0036 };
0037 
0038 SiPixelFedCablingMapWriter::SiPixelFedCablingMapWriter(const edm::ParameterSet& cfg)
0039     : record_(cfg.getParameter<std::string>("record")),
0040       //pixelToFedAssociator_(cfg.getUntrackedParameter<std::string>("associator","PixelToFEDAssociateFromAscii")),
0041       //phase1_(cfg.getUntrackedParameter<bool>("phase1",false)),
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   //out << " phase " << phase1_ << endl;
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     //std::cout << "-------HERE-----------" << endl;
0057     //cabling = SiPixelFedCablingMapBuilder(pixelToFedAssociator_).produce(iSetup);
0058     //cabling = SiPixelFedCablingMapBuilder(fileName_,phase1_).produce(iSetup);
0059     cabling = SiPixelFedCablingMapBuilder(consumesCollector(), fileName_).produce(iSetup);
0060     //std::cout << "-------Print Map ----------- DOES NOT WORK for phase1 " << endl;
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     //std::cout<<"db service unavailable"<<std::endl;
0074     return;
0075   } else {
0076     //std::cout<<"OK"<<std::endl;
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 //define this as a plug-in
0095 #include "FWCore/Framework/interface/MakerMacros.h"
0096 DEFINE_FWK_MODULE(SiPixelFedCablingMapWriter);