00001 #ifndef L1GtConfigProducers_L1GtVhdlWriterBitManager_h
00002 #define L1GtConfigProducers_L1GtVhdlWriterBitManager_h
00003
00021 #include "L1GtVhdlTemplateFile.h"
00022
00023
00024
00025 #include <iostream>
00026 #include <fstream>
00027 #include <map>
00028 #include <string>
00029 #include <vector>
00030
00031 #include "CondFormats/L1TObjects/interface/L1GtCaloTemplate.h"
00032 #include "CondFormats/L1TObjects/interface/L1GtMuonTemplate.h"
00033 #include "CondFormats/L1TObjects/interface/L1GtEnergySumTemplate.h"
00034
00035 class L1GtVhdlWriterBitManager
00036 {
00037 private:
00038 std::map<std::string, std::string> hex2binMap_ ;
00039
00040 public:
00041 L1GtVhdlWriterBitManager();
00042 std::string bin2hex(std::string binString);
00043 std::string hex2bin(std::string hexString);
00044 std::string capitalLetters(std::string hexString);
00045 std::string mirror(unsigned int offset, std::string hexString, bool hexOutput = true);
00046 std::string readMapInverse(std::map<std::string,std::string> map,std::string value);
00047 std::string shiftLeft(std::string hexString);
00048 std::string buildEtaMuon(const std::vector<L1GtMuonTemplate::ObjectParameter>* op, const unsigned int &num, const unsigned int &counter);
00049 std::string buildEtaCalo(const std::vector<L1GtCaloTemplate::ObjectParameter>* op, const unsigned int &num, const unsigned int &counter);
00051 std::string buildPhiMuon(const std::vector<L1GtMuonTemplate::ObjectParameter>* op, const unsigned int &num, const unsigned int &counter, bool high);
00052 std::string buildPhiCalo(const std::vector<L1GtCaloTemplate::ObjectParameter>* op, const unsigned int &num, const unsigned int &counter);
00053 std::string buildPhiEnergySum(const std::vector<L1GtEnergySumTemplate::ObjectParameter>* op, const unsigned int &num, const unsigned int &counter);
00054 std::string buildDeltaEtaMuon(const L1GtMuonTemplate::CorrelationParameter* &cp,const unsigned int &counter);
00055 std::string buildDeltaEtaCalo(const L1GtCaloTemplate::CorrelationParameter* &cp,const unsigned int &counter);
00056 std::string buildDeltaPhiMuon(const L1GtMuonTemplate::CorrelationParameter* &cp,const unsigned int &counter);
00057 std::string buildDeltaPhiCalo(const L1GtCaloTemplate::CorrelationParameter* &cp,const unsigned int &counter);
00058
00059 };
00060 #endif