Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // Package:    ExtractXMLFile
0004 // Class:      ExtractXMLFile
0005 //
0006 /**\class ExtractXMLFile ExtractXMLFile.cc test/ExtractXMLFile/src/ExtractXMLFile.cc
0007 
0008  Description: <one line class summary>
0009 
0010  Implementation:
0011      <Notes on implementation>
0012 */
0013 //
0014 // Original Author:  Tommaso Boccali
0015 //         Created:  Tue Jul 26 08:47:57 CEST 2005
0016 //
0017 //
0018 
0019 // system include files
0020 #include <memory>
0021 #include <iostream>
0022 #include <fstream>
0023 
0024 // user include files
0025 #include "FWCore/Framework/interface/Frameworkfwd.h"
0026 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0027 
0028 #include "FWCore/Framework/interface/Event.h"
0029 #include "FWCore/Framework/interface/EventSetup.h"
0030 #include "FWCore/Framework/interface/ESHandle.h"
0031 #include "FWCore/Framework/interface/MakerMacros.h"
0032 
0033 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0034 #include "DetectorDescription/Core/interface/DDCompactView.h"
0035 #include "Geometry/Records/interface/IdealGeometryRecord.h"
0036 #include "DetectorDescription/OfflineDBLoader/interface/GeometryInfoDump.h"
0037 
0038 #include "CondFormats/Common/interface/FileBlob.h"
0039 #include "Geometry/Records/interface/GeometryFileRcd.h"
0040 #include "DetectorDescription/Parser/interface/DDLParser.h"
0041 #include "DetectorDescription/Core/interface/DDRoot.h"
0042 
0043 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0044 
0045 class ExtractXMLFile : public edm::one::EDAnalyzer<> {
0046 public:
0047   explicit ExtractXMLFile(const edm::ParameterSet&);
0048   ~ExtractXMLFile() override;
0049 
0050   void beginJob() override {}
0051   void analyze(edm::Event const&, edm::EventSetup const&) override;
0052   void endJob() override {}
0053 
0054 private:
0055   std::string label_;
0056   std::string fname_;
0057   edm::ESGetToken<FileBlob, GeometryFileRcd> geomToken_;
0058 };
0059 
0060 ExtractXMLFile::ExtractXMLFile(const edm::ParameterSet& iConfig)
0061     : label_(iConfig.getUntrackedParameter<std::string>("label", "")),
0062       fname_(iConfig.getUntrackedParameter<std::string>("fname", "")),
0063       geomToken_(esConsumes<FileBlob, GeometryFileRcd>(edm::ESInputTag("", label_))) {}
0064 
0065 ExtractXMLFile::~ExtractXMLFile() {}
0066 
0067 void ExtractXMLFile::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0068   using namespace edm;
0069 
0070   std::cout << "Here I am " << std::endl;
0071   edm::ESHandle<FileBlob> gdd = iSetup.getHandle(geomToken_);
0072   std::ofstream f(fname_.c_str());
0073   (*gdd).write(f);
0074   std::cout << "finished" << std::endl;
0075 }
0076 
0077 DEFINE_FWK_MODULE(ExtractXMLFile);