/DetectorDescription/OfflineDBLoader/bin/stubs/OutputMagneticFieldDDToDDL.h

https://github.com/aivanov-cern/cmssw · C Header · 42 lines · 33 code · 8 blank · 1 comment · 0 complexity · 26d46d58536f0316b11eea5238e85ab3 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. {
  16. bool operator() ( const DDsvalues_type& sv1, const DDsvalues_type& sv2 );
  17. };
  18. class OutputMagneticFieldDDToDDL : public edm::EDAnalyzer
  19. {
  20. public:
  21. explicit OutputMagneticFieldDDToDDL( const edm::ParameterSet& iConfig );
  22. ~OutputMagneticFieldDDToDDL( void );
  23. virtual void beginRun( const edm::Run&, edm::EventSetup const& );
  24. virtual void analyze( const edm::Event&, const edm::EventSetup& ){}
  25. virtual void endJob( void ) {}
  26. private:
  27. void addToMatStore( const DDMaterial& mat, std::set<DDMaterial> & matStore );
  28. void addToSolStore( const DDSolid& sol, std::set<DDSolid> & solStore, std::set<DDRotation>& rotStore );
  29. void addToSpecStore( const DDLogicalPart& lp, std::map<DDsvalues_type, std::set<DDPartSelection*>, ddsvaluesCmp > & specStore );
  30. std::string m_fname;
  31. std::ostream* m_xos;
  32. int m_rotNumSeed;
  33. int m_specNameCount;
  34. };