PageRenderTime 30ms CodeModel.GetById 18ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/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
11#include <ostream>
12#include <set>
13
14class DDPartSelection;
15
16/// is sv1 < sv2 
17struct ddsvaluesCmp
18{
19  bool operator() ( const  DDsvalues_type& sv1, const DDsvalues_type& sv2 );
20};
21
22class OutputMagneticFieldDDToDDL : public edm::EDAnalyzer
23{
24public:
25  explicit OutputMagneticFieldDDToDDL( const edm::ParameterSet& iConfig );
26  ~OutputMagneticFieldDDToDDL( void );
27  
28  virtual void beginRun( const edm::Run&, edm::EventSetup const& );
29  virtual void analyze( const edm::Event&, const edm::EventSetup& ){}
30  virtual void endJob( void ) {}
31
32private:
33  void addToMatStore( const DDMaterial& mat, std::set<DDMaterial> & matStore );
34  void addToSolStore( const DDSolid& sol, std::set<DDSolid> & solStore, std::set<DDRotation>& rotStore );
35  void addToSpecStore( const DDLogicalPart& lp, std::map<DDsvalues_type, std::set<DDPartSelection*>, ddsvaluesCmp > & specStore );
36
37  std::string m_fname;
38  std::ostream* m_xos;
39  int m_rotNumSeed;
40  int m_specNameCount;
41};
42