File indexing completed on 2024-04-06 12:21:03
0001 #ifndef OMTF_XMLConfigReader_H
0002 #define OMTF_XMLConfigReader_H
0003
0004 #include <string>
0005 #include <vector>
0006 #include <ostream>
0007 #include <memory>
0008
0009 #include "xercesc/util/XercesDefs.hpp"
0010 #include "xercesc/dom/DOM.hpp"
0011
0012 #include "CondFormats/L1TObjects/interface/LUT.h"
0013 #include "L1Trigger/L1TMuonOverlap/interface/OMTFConfiguration.h"
0014
0015 class GoldenPattern;
0016 class OMTFConfiguration;
0017 class L1TMuonOverlapParams;
0018
0019 namespace XERCES_CPP_NAMESPACE {
0020
0021 class DOMElement;
0022 class XercesDOMParser;
0023
0024 }
0025
0026 class XMLConfigReader {
0027 public:
0028 XMLConfigReader();
0029 ~XMLConfigReader();
0030
0031 void readConfig(const std::string fName);
0032
0033 void setConfigFile(const std::string &fName) { configFile = fName; }
0034
0035 void setPatternsFile(const std::string &fName) { patternsFile = fName; }
0036
0037 void setEventsFile(const std::string &fName) { eventsFile = fName; }
0038
0039 std::vector<std::shared_ptr<GoldenPattern>> readPatterns(const L1TMuonOverlapParams &aConfig);
0040
0041 void readLUTs(std::vector<l1t::LUT *> luts,
0042 const L1TMuonOverlapParams &aConfig,
0043 const std::vector<std::string> &types);
0044
0045 void readConfig(L1TMuonOverlapParams *aConfig) const;
0046
0047 unsigned int getPatternsVersion() const;
0048
0049 std::vector<std::vector<int>> readEvent(unsigned int iEvent = 0, unsigned int iProcessor = 0, bool readEta = false);
0050
0051 private:
0052 std::string configFile;
0053 std::string patternsFile;
0054 std::string eventsFile;
0055
0056 std::unique_ptr<GoldenPattern> buildGP(xercesc::DOMElement *aGPElement,
0057 const L1TMuonOverlapParams &aConfig,
0058 unsigned int index = 0,
0059 unsigned int aGPNumber = 999);
0060
0061
0062
0063
0064
0065 std::vector<std::shared_ptr<GoldenPattern>> aGPs;
0066 };
0067
0068 #endif