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& )
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& , 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);