00001 #ifndef HCALConfigDBTools_XMLTools_HcalHardwareXml_h 00002 #define HCALConfigDBTools_XMLTools_HcalHardwareXml_h 00003 // -*- C++ -*- 00004 // 00005 // Package: XMLTools 00006 // Class : HcalHardwareXml 00007 // Original Author: Gena Kukartsev, kukarzev@fnal.gov 00008 // 00018 #include <map> 00019 00020 #include "CalibCalorimetry/HcalTPGAlgos/interface/XMLDOMBlock.h" 00021 #include "CalibCalorimetry/HcalTPGAlgos/interface/XMLProcessor.h" 00022 00023 typedef struct _HcalPart 00024 { 00025 _HcalPart(){ mode=""; kind_of_part=""; name_label=""; barcode=""; comment=""; attr_name=""; attr_value=""; }; 00026 std::string mode; 00027 std::string kind_of_part; 00028 std::string name_label; 00029 std::string barcode; 00030 std::string comment; 00031 std::string attr_name; 00032 std::string attr_value; 00033 } HcalPart; 00034 00035 00036 00037 class HcalHardwareXml : public XMLDOMBlock 00038 { 00039 00040 public: 00041 00042 HcalHardwareXml(); 00043 HcalHardwareXml( std::string _type ); 00044 virtual ~HcalHardwareXml(); 00045 00046 int addHardware( std::map<std::string,std::map<std::string,std::map<std::string,std::map<int,std::string> > > > & hw_map ); 00047 00048 private: 00049 00050 HcalHardwareXml(const HcalHardwareXml&); // stop default 00051 const HcalHardwareXml& operator=(const HcalHardwareXml&); // stop default 00052 00053 DOMElement * addPart( DOMElement * parent, HcalPart & part ); 00054 00055 DOMElement * partsElem; 00056 00057 //hw_map["rbx_slot"]["rbx"]["rm"][qie_slot]="qie"; 00058 //std::map<std::string,std::map<std::string,std::map<std::string,std::map<int,std::string> > > > hw_map; 00059 00060 }; 00061 00062 00063 #endif