CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/L1TriggerConfig/L1GtConfigProducers/interface/L1GtVhdlDefinitions.h

Go to the documentation of this file.
00001 #ifndef L1GtConfigProducers_L1GtVhdlDefinitions_h
00002 #define L1GtConfigProducers_L1GtVhdlDefinitions_h
00003 
00020 // system include files
00021 #include <string>
00022 
00023 // user include files
00024 #include "CondFormats/L1TObjects/interface/L1GtFwd.h"
00025 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenuFwd.h"
00026 
00027 // forward declarations
00028 
00029 // class declaration
00030 class L1GtVhdlDefinitions
00031 {
00032 
00033 public:
00034     
00035     enum VmeRegister {RegPtHighThreshold, RegPtLowThreshold, RegQualityRange, RegChargeCorrelation, RegEtThreshold};
00036 
00038     L1GtVhdlDefinitions();
00039 
00041     virtual ~L1GtVhdlDefinitions();
00042 
00044     std::string obj2str(const L1GtObject &type);
00045     
00047     std::string type2str(const L1GtConditionType &type);
00048     
00049     const std::map<L1GtObject,std::string> getObj2StrMap();
00050     
00051     const std::map<L1GtConditionType,std::string> getCond2StrMap();
00052     
00053     const std::map<L1GtObject,std::string> getCalo2IntMap();
00054 
00055 protected:
00056     
00057     // templates
00058     
00059     static const std::string vhdlTemplateAlgoAndOr_;
00060     static const std::string vhdlTemplateCondChip_;
00061     static const std::string vhdlTemplateDefValPkg_;
00062     static const std::string vhdlTemplateEtmSetup_;
00063     static const std::string vhdlTemplateMuonSetup_;
00064     static const std::string vhdlTemplateCaloSetup_;
00065     static const std::string vhdlTemplateCondChipPkg1_;
00066     static const std::string vhdlTemplateCondChipPkg2_;
00067     static const std::string quartusSetupFileChip1_;
00068     static const std::string quartusSetupFileChip2_;   
00069     
00070     // output subdirectories
00071     
00072     static const std::string outputSubDir1_;
00073     static const std::string outputSubDir2_;
00074 
00075     
00076     // internal templates
00077     
00078     // ...
00079     
00080     // substitution parameters
00081     
00082     static const std::string substParamAlgos_;
00083     static const std::string substParamParticle_;
00084     static const std::string substParamType_;
00085     static const std::string substParamMaxNr_;
00086     static const std::string substParamDefValId_;
00087     static const std::string substParamCaloOrMuon_;
00088     static const std::string substParamContent_;
00089     static const std::string substParamOthers_;
00090     static const std::string substParamDefValType_;
00091     static const std::string substParamMuonDefVals_;
00092     static const std::string substParamCaloDefVals_;
00093     static const std::string substParamEsumsDefVals_;
00094     static const std::string substParamJetsDefVals_;
00095     static const std::string substParamCharge_;
00096     static const std::string substParamJetCntsCommon_;
00097 
00098     
00099     //string constants
00100     
00101     static const std::string stringConstantAlgo_; 
00102     static const std::string stringConstantDefValId_;
00103     static const std::string stringConstantJetCountsDefVal_;
00104     static const std::string stringConstantConstantNr_;
00105     static const std::string stringConstantEsumsLowDefVal_;
00106     static const std::string stringConstantEsumsLHighDefVal_;
00107     static const std::string stringConstantPtLowDefVal_;
00108     static const std::string stringConstantPtHighDefVal_;
00109     static const std::string stringConstantQualityDefVal_;
00110     static const std::string stringConstantQuargeDefVal_;
00111     static const std::string stringConstantCalo_;
00112     static const std::string stringConstantCharge1s_;
00113     static const std::string stringConstantCharge2s_;
00114     static const std::string stringConstantCharge2wsc_;
00115     static const std::string stringConstantCharge3s_;
00116     static const std::string stringConstantCharge4s_;
00117     static const std::string stringConstantCommon_;
00118     static const std::string stringConstantPtl_;
00119     static const std::string stringConstantPth_;
00120     static const std::string stringConstantEsumsLow_;
00121     static const std::string stringConstantEsumsHigh_;
00122     static const std::string stringConstantQuality_;
00123     
00124     
00125     // ... and so on
00126        
00127 private:
00128     
00130     std::map<L1GtObject,std::string> objType2Str_;
00131     
00133     std::map<L1GtConditionType,std::string> condType2Str_;
00134     
00136     std::map<L1GtObject,std::string> caloType2Int_;
00137 
00138 };
00139 
00140 #endif /*L1GtConfigProducers_L1GtVhdlDefinitions_h*/
00141