File indexing completed on 2024-04-06 12:02:21
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef L1TBMTFParams_h
0011 #define L1TBMTFParams_h
0012
0013 #include <memory>
0014 #include <iostream>
0015 #include <vector>
0016
0017 #include "CondFormats/Serialization/interface/Serializable.h"
0018 #include "CondFormats/L1TObjects/interface/LUT.h"
0019 #include "CondFormats/L1TObjects/interface/L1MuDTTFParameters.h"
0020 #include "CondFormats/L1TObjects/interface/L1MuDTTFMasks.h"
0021 #include "CondFormats/L1TObjects/interface/L1MuDTEtaPattern.h"
0022
0023 class L1TMuonBarrelParams {
0024 public:
0025 L1TMuonBarrelParams();
0026 enum { Version = 1 };
0027
0028 class Node {
0029 public:
0030 std::string type_;
0031 unsigned version_;
0032 l1t::LUT LUT_;
0033 std::vector<double> dparams_;
0034 std::vector<unsigned> uparams_;
0035 std::vector<int> iparams_;
0036 std::vector<std::string> sparams_;
0037 Node() {
0038 type_ = "unspecified";
0039 version_ = 0;
0040 }
0041 COND_SERIALIZABLE;
0042 };
0043 enum { CONFIG = 0, NUM_BMTF_PARAM_NODES = 2 };
0044
0045 enum {
0046 PT_Assignment_nbits_Phi,
0047 PT_Assignment_nbits_PhiB,
0048 PHI_Assignment_nbits_Phi,
0049 PHI_Assignment_nbits_PhiB,
0050 Extrapolation_nbits_Phi,
0051 Extrapolation_nbits_PhiB,
0052 BX_min,
0053 BX_max,
0054 Extrapolation_Filter,
0055 OutOfTime_Filter_Window,
0056 OutOfTime_Filter,
0057 Open_LUTs,
0058 EtaTrackFinder,
0059 Extrapolation_21,
0060 DisableNewAlgo,
0061 NUM_CONFIG_PARAMS
0062 };
0063
0064
0065 L1MuDTTFParameters l1mudttfparams;
0066 L1MuDTTFMasks l1mudttfmasks;
0067
0068
0069
0070
0071
0072 typedef std::map<short, short, std::less<short> > LUT;
0073
0074 typedef std::pair<short, short> LUTID;
0075 typedef std::pair<short, std::vector<short> > LUTCONT;
0076 typedef std::map<LUTID, LUTCONT> qpLUT;
0077
0078 typedef std::map<short, L1MuDTEtaPattern, std::less<short> > etaLUT;
0079
0080 class LUTParams {
0081 public:
0082 std::vector<LUT> pta_lut_;
0083 std::vector<LUT> phi_lut_;
0084 std::vector<int> pta_threshold_;
0085 qpLUT qp_lut_;
0086 etaLUT eta_lut_;
0087
0088
0089 class extLUT {
0090 public:
0091 LUT low;
0092 LUT high;
0093 COND_SERIALIZABLE;
0094 };
0095 std::vector<extLUT> ext_lut_;
0096 LUTParams() : pta_lut_(0), phi_lut_(0), pta_threshold_(6), ext_lut_(0) {}
0097 COND_SERIALIZABLE;
0098 };
0099
0100 ~L1TMuonBarrelParams() {}
0101
0102 public:
0103 unsigned version_;
0104 unsigned fwVersion_;
0105
0106 std::vector<Node> pnodes_;
0107
0108 std::vector<L1MuDTTFParameters> l1mudttfparams_;
0109 std::vector<L1MuDTTFMasks> l1mudttfmasks_;
0110 LUTParams lutparams_;
0111
0112 COND_SERIALIZABLE;
0113 };
0114 #endif