CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/CaloOnlineTools/HcalOnlineDb/interface/HcalHardwareXml.h

Go to the documentation of this file.
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