CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1GtVhdlWriterCore.h
Go to the documentation of this file.
1 #ifndef L1GtConfigProducers_L1GtVhdlWriterCore_h
2 #define L1GtConfigProducers_L1GtVhdlWriterCore_h
3 
21 // system include files
22 
23 #include <iostream>
24 #include <fstream>
25 #include <map>
26 #include <string>
27 #include <vector>
28 
29 // CMSSW headers
30 #include "L1GtVhdlTemplateFile.h"
31 
35 
39 
43 
45 {
46 
47  public:
48 
50  L1GtVhdlWriterCore(const std::string &templatesDirectory, const std::string &outputDirectory, const bool &debug);
51 
54 
61 
67  void getMuonSetupContentFromTriggerMenu(const unsigned short int &condChip, std::map<std::string,std::string> &muonParameters);
68 
70  bool getSubstParamCommonFromTriggerMenu(const unsigned short int &condChip, L1GtVhdlTemplateFile &particle, const L1GtObject &object, const L1GtConditionCategory &category,
71  std::string &parameterStr);
72 
73  bool getCaloSetupContentFromTriggerMenu(const unsigned short int &condChip, std::map<std::string,std::string> &caloParameters,
74  const L1GtObject &caloObject);
75 
77  bool getEsumsSetupContentFromTriggerMenu(const unsigned short int &condChip, const L1GtObject &object, std::string &energySumParameter);
78 
86  bool getCondChipVhdContentFromTriggerMenu(const unsigned short int &condChip, std::map<std::string, L1GtVhdlTemplateFile> &templates,
87  std::map<std::string, std::string> &commonParams);
88 
89  std::string retNumberOfConditionsString(const std::string &typeStr, const int &number);
90 
91  bool findObjectType(const L1GtObject &object, ConditionMap &map);
92 
93  // builds the parameters particle_common for the cond_chip.vhd's
94  // bool buildCommonParameter(L1GtVhdlTemplateFile &particle,const L1GtObject &object, const L1GtConditionCategory &category, std::string &parameterStr, const ConditionMap &conditionMap);
95 
98  void addJetCountsToCond2IntMap(const int chip, const std::vector<ConditionMap> &conditionMap, std::map<std::string,int> &conditionToIntegerMap);
99 
102  bool processAlgorithmMap(std::vector< std::map<int, std::string> > &algoStrings);
103 
105  void buildCommonHeader(std::map<std::string,std::string> &headerParameters , const std::vector<std::string> &connectedChannels);
106 
108  L1GtVhdlTemplateFile openVhdlFileWithCommonHeader(const std::string &filename, const std::string &outputFilename);
109 
112 
114  void printCommonHeader();
115 
117  bool makeFirmware(const std::vector<ConditionMap> &conditionMap,const AlgorithmMap &algorithmMap);
118 
120  void writeMuonSetupVhdl(std::map<std::string,std::string> &muonParameters, const std::string &particle, unsigned short int &condChip);
121 
123  void writeConditionChipSetup(std::map<std::string, L1GtVhdlTemplateFile> templates, const std::map<std::string, std::string> &common, const unsigned short int &chip);
124 
126  void writeDefValPkg(const std::vector<ConditionMap> &conditionMap, const int &chip);
127 
129  void writeEtmSetup(std::string &etmString, const int &condChip);
130 
132  void writeAlgoSetup(std::vector< std::map<int, std::string> > &algoStrings);
133 
135  void writeQsfSetupFiles(const std::string &version);
136 
138  static std::string int2str(const int &integerValue);
139 
141  bool getIntVal(const std::map<std::string,int> &map, const std::string &searchValue, int &intVal);
142 
144  std::string gtTemplatesPath();
145 
147  void msg(const std::string &message);
148 
150  std::vector<std::string> getMsgBuf();
151 
154  std::string index4CondChipVhd(int intval);
155 
159  void countCondsAndAdd2NumberVec(const L1GtConditionType &type, const L1GtConditionCategory &category, const L1GtObject &object, const ConditionMap &map, ConditionMap &outputMap,const int &condChip);
160 
162 
164  void writeCond2intMap2File();
165 
167  void printConditionsOfCategory(const L1GtConditionCategory &category, const ConditionMap &map);
168 
171 
174  std:: string buildDefValString(const int &conditionIndex, const std::vector<int> &values);
175 
176  void writeCondChipPkg(const int &chip);
177 
178  std::map<std::string,int> getCond2IntMap();
179 
182  bool buildDefValuesBuffer(L1GtVhdlTemplateFile &buffer, const std::map<L1GtConditionType,std::string> &typeList, const std::vector<std::string> &defValuesList, const L1GtObject &object);
183 
186  std::string getDefValsFromTriggerMenu(const L1GtConditionType &type, const L1GtObject &object, const VmeRegister &reg);
187 
189  std::string sp(const std::string &name);
190 
191  std::string chip2OutputSubDir(const int &chip);
192 
193  private:
194 
196  const std::vector<ConditionMap> * conditionMap_;
197 
200 
202  std::map<std::string,int> conditionToIntegerMap_;
203 
205  std::map<L1GtConditionType,std::string> condType2Str_;
206 
208  std::map<L1GtObject,std::string> caloType2Int_;
209 
211  std::map<L1GtObject,std::string> objType2Str_;
212 
214  std::vector<L1GtObject> caloObjects_;
215 
217  std::vector<L1GtObject> esumObjects_;
218 
220  std::string vhdlDir_;
221 
223  std::string outputDir_;
224 
227 
228  std::string version_;
229 
232 
233  std::vector<std::string> internMessageBuf_;
234 
236  std::vector<std::vector<std::string> > numberOfConditions_;
237 
240 
241 };
242 #endif /*L1GtConfigProducers_L1GtVhdlWriterCore_h*/
type
Definition: HCALResponse.h:22
std::string vhdlDir_
templates directory
void writeConditionChipSetup(std::map< std::string, L1GtVhdlTemplateFile > templates, const std::map< std::string, std::string > &common, const unsigned short int &chip)
builds cond_chip.vhds
std::string sp(const std::string &name)
converts string name to substiution parameter synthax; name –&gt;
void writeQsfSetupFiles(const std::string &version)
builds the two quartus setup files. This routine is called in buildCommonHeader!
std::vector< L1GtObject > esumObjects_
list of all possible esums objects
std::map< L1GtObject, std::string > caloType2Int_
converts L1GtObject to calo_nr
std::map< std::string, L1GtCondition * > ConditionMap
map containing the conditions
std::map< std::string, L1GtAlgorithm > AlgorithmMap
map containing the algorithms
void writeDefValPkg(const std::vector< ConditionMap > &conditionMap, const int &chip)
writes def_val_pkg.vhd
std::map< L1GtConditionType, std::string > condType2Str_
converts L1GtConditionType to firmware string
bool getCaloSetupContentFromTriggerMenu(const unsigned short int &condChip, std::map< std::string, std::string > &caloParameters, const L1GtObject &caloObject)
L1GtVhdlWriterBitManager bm_
bit manager for bit operations
std::string getDefValsFromTriggerMenu(const L1GtConditionType &type, const L1GtObject &object, const VmeRegister &reg)
L1GtVhdlWriterCore(const std::string &templatesDirectory, const std::string &outputDirectory, const bool &debug)
constructor
std::vector< L1GtObject > caloObjects_
list of all possible calo objects
std::string index4CondChipVhd(int intval)
L1GtConditionType
std::vector< std::vector< std::string > > numberOfConditions_
vector containing the initialization of all conditions
bool getIntVal(const std::map< std::string, int > &map, const std::string &searchValue, int &intVal)
checks weather value searchValue exists in a &lt;string,int&gt; map, saves it in &amp;intVal if it exists and r...
static std::string int2str(const int &integerValue)
converts a integer into a string
bool returnConditionsOfOneClass(const L1GtConditionType &type, const L1GtConditionCategory &category, const L1GtObject &object, const ConditionMap &map, ConditionMap &outputMap)
bool getEsumsSetupContentFromTriggerMenu(const unsigned short int &condChip, const L1GtObject &object, std::string &energySumParameter)
contains only one subsitution parameter which is stored in reference energySumParameter ...
L1GtConditionCategory getCategoryFromObject(const L1GtObject &object)
gets condition category from object
const AlgorithmMap * algorithmMap_
algorithm map
~L1GtVhdlWriterCore()
destructor
std::vector< std::string > getMsgBuf()
returns intern message buffer
void writeEtmSetup(std::string &etmString, const int &condChip)
builds etm setup files
bool makeFirmware(const std::vector< ConditionMap > &conditionMap, const AlgorithmMap &algorithmMap)
produces the firmware code
void writeCond2intMap2File()
produces a control output file for condition to integer conversion
bool getSubstParamCommonFromTriggerMenu(const unsigned short int &condChip, L1GtVhdlTemplateFile &particle, const L1GtObject &object, const L1GtConditionCategory &category, std::string &parameterStr)
builds the parameters particle_common for the cond_chip.vhd&#39;s
void printCommonHeader()
prints the common header
L1GtVhdlTemplateFile commonHeader_
common header for all files
L1GtConditionCategory
condition categories
void writeCondChipPkg(const int &chip)
L1GtVhdlTemplateFile retrunCommonHeader()
returns the common header
void countCondsAndAdd2NumberVec(const L1GtConditionType &type, const L1GtConditionCategory &category, const L1GtObject &object, const ConditionMap &map, ConditionMap &outputMap, const int &condChip)
const std::vector< ConditionMap > * conditionMap_
condition map
std::string retNumberOfConditionsString(const std::string &typeStr, const int &number)
std::string gtTemplatesPath()
returns the templates path
void getMuonSetupContentFromTriggerMenu(const unsigned short int &condChip, std::map< std::string, std::string > &muonParameters)
void msg(const std::string &message)
adds a string to intern message buffer
std::vector< std::string > internMessageBuf_
std::string outputDir_
output directory
bool getCondChipVhdContentFromTriggerMenu(const unsigned short int &condChip, std::map< std::string, L1GtVhdlTemplateFile > &templates, std::map< std::string, std::string > &commonParams)
std::map< std::string, int > getCond2IntMap()
std::string chip2OutputSubDir(const int &chip)
std::string buildDefValString(const int &conditionIndex, const std::vector< int > &values)
void addJetCountsToCond2IntMap(const int chip, const std::vector< ConditionMap > &conditionMap, std::map< std::string, int > &conditionToIntegerMap)
L1GtVhdlTemplateFile openVhdlFileWithCommonHeader(const std::string &filename, const std::string &outputFilename)
opens a new template file and inserts the common header
void writeMuonSetupVhdl(std::map< std::string, std::string > &muonParameters, const std::string &particle, unsigned short int &condChip)
builds muon setup files
tuple filename
Definition: lut2db_cfg.py:20
std::map< std::string, int > conditionToIntegerMap_
stores to condition name to integer conversion table
void printConditionsOfCategory(const L1GtConditionCategory &category, const ConditionMap &map)
for debuggin
bool findObjectType(const L1GtObject &object, ConditionMap &map)
void buildCommonHeader(std::map< std::string, std::string > &headerParameters, const std::vector< std::string > &connectedChannels)
builds the common header for all files
#define debug
Definition: MEtoEDMFormat.h:34
void writeAlgoSetup(std::vector< std::map< int, std::string > > &algoStrings)
builds the prealgo_and_or setup
bool processAlgorithmMap(std::vector< std::map< int, std::string > > &algoStrings)
std::map< L1GtObject, std::string > objType2Str_
converts L1GtObject to string
bool buildDefValuesBuffer(L1GtVhdlTemplateFile &buffer, const std::map< L1GtConditionType, std::string > &typeList, const std::vector< std::string > &defValuesList, const L1GtObject &object)
bool debugMode_
class will produce some additional debugging output if set