/DetectorDescription/OfflineDBLoader/bin/stubs/OutputDDToDDL.h

https://github.com/aivanov-cern/cmssw · C Header · 41 lines · 31 code · 9 blank · 1 comment · 0 complexity · 5081ee4898e4a44dd706869ce23d91fb MD5 · raw file

  1. #include <FWCore/Framework/interface/EDAnalyzer.h>
  2. #include <FWCore/Framework/interface/Event.h>
  3. #include <FWCore/Framework/interface/EventSetup.h>
  4. #include <FWCore/ParameterSet/interface/ParameterSet.h>
  5. #include <DetectorDescription/Core/interface/DDMaterial.h>
  6. #include <DetectorDescription/Core/interface/DDSolid.h>
  7. #include <DetectorDescription/Core/interface/DDTransform.h>
  8. #include <DetectorDescription/Core/interface/DDsvalues.h>
  9. #include <DetectorDescription/Core/interface/DDLogicalPart.h>
  10. #include <ostream>
  11. #include <set>
  12. class DDPartSelection;
  13. /// is sv1 < sv2
  14. struct ddsvaluesCmp {
  15. bool operator() ( const DDsvalues_type& sv1, const DDsvalues_type& sv2 );
  16. };
  17. class OutputDDToDDL : public edm::EDAnalyzer {
  18. public:
  19. explicit OutputDDToDDL( const edm::ParameterSet& iConfig );
  20. ~OutputDDToDDL();
  21. virtual void beginRun( const edm::Run&, edm::EventSetup const& );
  22. virtual void analyze( const edm::Event&, const edm::EventSetup& ){}
  23. virtual void endJob() {};
  24. private:
  25. void addToMatStore( const DDMaterial& mat, std::set<DDMaterial> & matStore );
  26. void addToSolStore( const DDSolid& sol, std::set<DDSolid> & solStore, std::set<DDRotation>& rotStore );
  27. void addToSpecStore( const DDLogicalPart& lp, std::map<DDsvalues_type, std::set<DDPartSelection*>, ddsvaluesCmp > & specStore );
  28. int rotNumSeed_;
  29. std::string fname_;
  30. std::ostream* xos_;
  31. int specNameCount_;
  32. };