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 
19 // system include files
20 
21 #include <iostream>
22 #include <fstream>
23 #include <map>
24 #include <string>
25 #include <vector>
26 
27 // CMSSW headers
28 #include "L1GtVhdlTemplateFile.h"
29 
33 
37 
41 
43 {
44 
45  public:
46 
48  L1GtVhdlWriterCore(const std::string &templatesDirectory, const std::string &outputDirectory, const bool &debug);
49 
52 
59 
65  void getMuonSetupContentFromTriggerMenu(const unsigned short int &condChip, std::map<std::string,std::string> &muonParameters);
66 
68  bool getSubstParamCommonFromTriggerMenu(const unsigned short int &condChip, L1GtVhdlTemplateFile &particle, const L1GtObject &object, const L1GtConditionCategory &category,
69  std::string &parameterStr);
70 
71  bool getCaloSetupContentFromTriggerMenu(const unsigned short int &condChip, std::map<std::string,std::string> &caloParameters,
72  const L1GtObject &caloObject);
73 
75  bool getEsumsSetupContentFromTriggerMenu(const unsigned short int &condChip, const L1GtObject &object, std::string &energySumParameter);
76 
84  bool getCondChipVhdContentFromTriggerMenu(const unsigned short int &condChip, std::map<std::string, L1GtVhdlTemplateFile> &templates,
85  std::map<std::string, std::string> &commonParams);
86 
87  std::string retNumberOfConditionsString(const std::string &typeStr, const int &number);
88 
89  bool findObjectType(const L1GtObject &object, ConditionMap &map);
90 
91  // builds the parameters particle_common for the cond_chip.vhd's
92  // bool buildCommonParameter(L1GtVhdlTemplateFile &particle,const L1GtObject &object, const L1GtConditionCategory &category, std::string &parameterStr, const ConditionMap &conditionMap);
93 
96  void addJetCountsToCond2IntMap(const int chip, const std::vector<ConditionMap> &conditionMap, std::map<std::string,int> &conditionToIntegerMap);
97 
100  bool processAlgorithmMap(std::vector< std::map<int, std::string> > &algoStrings);
101 
103  void buildCommonHeader(std::map<std::string,std::string> &headerParameters , const std::vector<std::string> &connectedChannels);
104 
107 
110 
112  void printCommonHeader();
113 
115  bool makeFirmware(const std::vector<ConditionMap> &conditionMap,const AlgorithmMap &algorithmMap);
116 
118  void writeMuonSetupVhdl(std::map<std::string,std::string> &muonParameters, const std::string &particle, unsigned short int &condChip);
119 
121  void writeConditionChipSetup(const std::map<std::string, L1GtVhdlTemplateFile>& templates, const std::map<std::string, std::string> &common, const unsigned short int &chip);
122 
124  void writeDefValPkg(const std::vector<ConditionMap> &conditionMap, const int &chip);
125 
127  void writeEtmSetup(std::string &etmString, const int &condChip);
128 
130  void writeAlgoSetup(std::vector< std::map<int, std::string> > &algoStrings);
131 
134 
136  static std::string int2str(const int &integerValue);
137 
139  bool getIntVal(const std::map<std::string,int> &map, const std::string &searchValue, int &intVal);
140 
143 
145  void msg(const std::string &message);
146 
148  std::vector<std::string> getMsgBuf();
149 
152  std::string index4CondChipVhd(int intval);
153 
157  void countCondsAndAdd2NumberVec(const L1GtConditionType &type, const L1GtConditionCategory &category, const L1GtObject &object, const ConditionMap &map, ConditionMap &outputMap,const int &condChip);
158 
160 
162  void writeCond2intMap2File();
163 
165  void printConditionsOfCategory(const L1GtConditionCategory &category, const ConditionMap &map);
166 
169 
172  std:: string buildDefValString(const int &conditionIndex, const std::vector<int> &values);
173 
174  void writeCondChipPkg(const int &chip);
175 
176  std::map<std::string,int> getCond2IntMap();
177 
180  bool buildDefValuesBuffer(L1GtVhdlTemplateFile &buffer, const std::map<L1GtConditionType,std::string> &typeList, const std::vector<std::string> &defValuesList, const L1GtObject &object);
181 
184  std::string getDefValsFromTriggerMenu(const L1GtConditionType &type, const L1GtObject &object, const VmeRegister &reg);
185 
187  std::string sp(const std::string &name);
188 
189  std::string chip2OutputSubDir(const int &chip);
190 
191  private:
192 
194  const std::vector<ConditionMap> * conditionMap_;
195 
198 
200  std::map<std::string,int> conditionToIntegerMap_;
201 
203  std::map<L1GtConditionType,std::string> condType2Str_;
204 
206  std::map<L1GtObject,std::string> caloType2Int_;
207 
209  std::map<L1GtObject,std::string> objType2Str_;
210 
212  std::vector<L1GtObject> caloObjects_;
213 
215  std::vector<L1GtObject> esumObjects_;
216 
219 
222 
225 
227 
230 
231  std::vector<std::string> internMessageBuf_;
232 
234  std::vector<std::vector<std::string> > numberOfConditions_;
235 
238 
239 };
240 #endif /*L1GtConfigProducers_L1GtVhdlWriterCore_h*/
type
Definition: HCALResponse.h:21
std::string vhdlDir_
templates directory
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
#define debug
Definition: HDRShower.cc:19
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)
void writeConditionChipSetup(const std::map< std::string, L1GtVhdlTemplateFile > &templates, const std::map< std::string, std::string > &common, const unsigned short int &chip)
builds cond_chip.vhds
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
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