Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:01:59

0001 #ifndef CSCObjects_CSCDBL1TPParametersExtended_h
0002 #define CSCObjects_CSCDBL1TPParametersExtended_h
0003 
0004 #include "CondFormats/Serialization/interface/Serializable.h"
0005 
0006 #include <vector>
0007 
0008 /** \class CSCDBL1TPParametersExtended
0009  *  \author Sven Dildick
0010  *
0011  * Description: Configuration parameters needed for the Phase-1 upgrade of the level-1
0012  *              CSC trigger primitives emulator. ME1/1 ALCT, CLCT and TMB have own members.
0013  *
0014  */
0015 
0016 union S {
0017   unsigned int i;
0018   bool b;
0019 };
0020 
0021 class CSCDBL1TPParametersExtended {
0022 public:
0023   CSCDBL1TPParametersExtended();
0024   ~CSCDBL1TPParametersExtended();
0025 
0026   int getValueInt(const std::string&) const;
0027   bool getValueBool(const std::string&) const;
0028 
0029   void setValue(const std::string&, int);
0030   void setValue(const std::string&, bool);
0031 
0032 private:
0033   std::vector<int> paramsInt_;
0034   std::vector<int> paramsBool_;
0035 
0036   const std::vector<std::string> paramNamesBool_{
0037       /* ME11 ALCT Phase-1 Upgrade Parameters */
0038       "me11_phase1_alctNarrowMaskForR1a",
0039       "me11_phase1_alctGhostCancellationSideQuality",
0040       "me11_phase1_alctUseCorrectedBx",
0041 
0042       /* ME11 CLCT Phase-1 Upgrade Parameters */
0043       "me11_phase1_useDeadTimeZoning",
0044       "me11_phase1_useDynamicStateMachineZone",
0045       "me11_phase1_clctUseCorrectedBx",
0046 
0047       /* ME11 TMB Phase-1 Upgrade Parameters */
0048       "me11_phase1_tmbReadoutEarliest2",
0049       "me11_phase1_tmbDropUsedAlcts",
0050       "me11_phase1_clctToAlct",
0051       "me11_phase1_tmbDropUsedClcts",
0052       "me11_phase1_matchEarliestAlctME11Only",
0053       "me11_phase1_matchEarliestClctME11Only",
0054   };
0055 
0056   const std::vector<std::string> paramNamesInt_{
0057       /* Parameters %for 2007 version of ALCT firmware */
0058       "alctFifoTbins",
0059       "alctFifoPretrig",
0060       "alctDriftDelay",
0061       "alctNplanesHitPretrig",
0062       "alctNplanesHitPattern",
0063       "alctNplanesHitAccelPretrig",
0064       "alctNplanesHitAccelPattern",
0065       "alctTrigMode",
0066       "alctAccelMode",
0067       "alctL1aWindowWidth",
0068       "alctEarlyTbins",
0069 
0070       /* Parameters for 2007 version of CLCT firmware */
0071       "clctFifoTbins",
0072       "clctFifoPretrig",
0073       "clctHitPersist",
0074       "clctDriftDelay",
0075       "clctNplanesHitPretrig",
0076       "clctNplanesHitPattern",
0077       "clctPidThreshPretrig",
0078       "clctMinSeparation",
0079 
0080       /* Parameters for 2007 version of TMB firmware */
0081       "tmbMpcBlockMe1a",
0082       "tmbAlctTrigEnable",
0083       "tmbClctTrigEnable",
0084       "tmbMatchTrigEnable",
0085       "tmbMatchTrigWindowSize",
0086       "tmbTmbL1aWindowSize",
0087 
0088       /* ME11 ALCT Phase-1 Upgrade Parameters */
0089       "me11_phase1_alctFifoTbins",
0090       "me11_phase1_alctFifoPretrig",
0091       "me11_phase1_alctDriftDelay",
0092       "me11_phase1_alctNplanesHitPretrig",
0093       "me11_phase1_alctNplanesHitPattern",
0094       "me11_phase1_alctNplanesHitAccelPretrig",
0095       "me11_phase1_alctNplanesHitAccelPattern",
0096       "me11_phase1_alctTrigMode",
0097       "me11_phase1_alctAccelMode",
0098       "me11_phase1_alctL1aWindowWidth",
0099       "me11_phase1_alctEarlyTbins",
0100       "me11_phase1_alctHitPersist",
0101       "me11_phase1_alctGhostCancellationBxDepth",
0102       "me11_phase1_alctPretrigDeadtime",
0103 
0104       /* ME11 CLCT Phase-1 Upgrade Parameters */
0105       "me11_phase1_clctFifoTbins",
0106       "me11_phase1_clctFifoPretrig",
0107       "me11_phase1_clctHitPersist",
0108       "me11_phase1_clctDriftDelay",
0109       "me11_phase1_clctNplanesHitPretrig",
0110       "me11_phase1_clctNplanesHitPattern",
0111       "me11_phase1_clctPidThreshPretrig",
0112       "me11_phase1_clctMinSeparation",
0113       "me11_phase1_clctStartBxShift",
0114       "me11_phase1_clctStateMachineZone",
0115       "me11_phase1_clctPretriggerTriggerZone",
0116 
0117       /* ME11 TMB Phase-1 Upgrade Parameters */
0118       "me11_phase1_tmbMpcBlockMe1a",
0119       "me11_phase1_tmbAlctTrigEnable",
0120       "me11_phase1_tmbClctTrigEnable",
0121       "me11_phase1_tmbMatchTrigEnable",
0122       "me11_phase1_tmbMatchTrigWindowSize",
0123       "me11_phase1_tmbTmbL1aWindowSize",
0124       "me11_phase1_tmbEarlyTbins",
0125       "me11_phase1_tmbCrossBxAlgorithm",
0126       "me11_phase1_maxME11LCTs",
0127   };
0128 
0129   COND_SERIALIZABLE;
0130 };
0131 
0132 #endif