Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:14:15

0001 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0002 #include "FWCore/ServiceRegistry/interface/Service.h"
0003 #include "FWCore/Framework/interface/ConsumesCollector.h"
0004 #include "FWCore/Framework/interface/EventSetup.h"
0005 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0006 #include "FWCore/Framework/interface/MakerMacros.h"
0007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0008 
0009 #include "Geometry/EcalAlgo/interface/EcalPreshowerGeometry.h"
0010 #include "Geometry/EcalAlgo/interface/WriteESAlignments.h"
0011 
0012 typedef WriteESAlignments WEA;
0013 
0014 class TestWriteESAlignments : public edm::one::EDAnalyzer<> {
0015 public:
0016   explicit TestWriteESAlignments(const edm::ParameterSet& /*iConfig*/)
0017       : writer_{consumesCollector()}, nEventCalls_{0} {}
0018   ~TestWriteESAlignments() override {}
0019 
0020   void beginJob() override {}
0021   void analyze(edm::Event const& iEvent, edm::EventSetup const&) override;
0022   void endJob() override {}
0023 
0024 private:
0025   WriteESAlignments writer_;
0026   unsigned int nEventCalls_;
0027 };
0028 
0029 void TestWriteESAlignments::analyze(const edm::Event& /*evt*/, const edm::EventSetup& evtSetup) {
0030   if (nEventCalls_ > 0) {
0031     edm::LogInfo("TestWriteESAlignments") << "Writing to DB to be done only once, "
0032                                           << "set 'untracked PSet maxEvents = {untracked int32 input = 1}'."
0033                                           << "(Your writing should be fine.)";
0034     return;
0035   }
0036 
0037   static const unsigned int nA(EcalPreshowerGeometry::numberOfAlignments());
0038 
0039   typedef std::vector<double> DVec;
0040 
0041   DVec alphaVec(nA, 0);
0042   DVec betaVec(nA, 0);
0043   DVec gammaVec(nA, 0);
0044   DVec xtranslVec(nA, 0);
0045   DVec ytranslVec(nA, 0);
0046   DVec ztranslVec(nA, 0);
0047 
0048   writer_.writeAlignments(evtSetup, alphaVec, betaVec, gammaVec, xtranslVec, ytranslVec, ztranslVec);
0049 
0050   edm::LogInfo("TestWriteESAlignments") << "Done!";
0051   nEventCalls_++;
0052 }
0053 
0054 DEFINE_FWK_MODULE(TestWriteESAlignments);