File indexing completed on 2024-04-06 12:03:58
0001 #ifndef DataFormats_CSCDigi_CSCConstants_h
0002 #define DataFormats_CSCDigi_CSCConstants_h
0003
0004
0005
0006
0007
0008
0009
0010 class CSCConstants {
0011 public:
0012 enum DDU_Info { NUM_DDUS = 5 };
0013
0014 enum CFEB_Info {
0015
0016 MAX_CFEBS_RUN1 = 5,
0017
0018 NUM_CFEBS_ME1A_GANGED = 1,
0019 NUM_CFEBS_ME1A_UNGANGED = 3,
0020 NUM_CFEBS_ME1B = 4,
0021 NUM_CFEBS_ME11_GANGED = NUM_CFEBS_ME1A_GANGED + NUM_CFEBS_ME1B,
0022 NUM_CFEBS_ME11_UNGANGED = NUM_CFEBS_ME1A_UNGANGED + NUM_CFEBS_ME1B,
0023
0024 MAX_CFEBS_RUN2 = NUM_CFEBS_ME11_UNGANGED,
0025
0026 NUM_CFEBS_ME12 = 5,
0027 NUM_CFEBS_ME13 = 4,
0028 NUM_CFEBS_ME21 = 5,
0029 NUM_CFEBS_ME22 = 5,
0030 NUM_CFEBS_ME31 = 5,
0031 NUM_CFEBS_ME32 = 5,
0032 NUM_CFEBS_ME41 = 5,
0033 NUM_CFEBS_ME42 = 5
0034 };
0035
0036 enum FPGA_Latency { CLCT_EMUL_TIME_OFFSET = 3, ALCT_EMUL_TIME_OFFSET = 6 };
0037
0038
0039 enum WG_Info {
0040 NUM_WIREGROUPS_ME11 = 48,
0041 NUM_WIREGROUPS_ME12 = 64,
0042 NUM_WIREGROUPS_ME13 = 32,
0043 NUM_WIREGROUPS_ME21 = 112,
0044 NUM_WIREGROUPS_ME22 = 64,
0045 NUM_WIREGROUPS_ME31 = 96,
0046 NUM_WIREGROUPS_ME32 = 64,
0047 NUM_WIREGROUPS_ME41 = 96,
0048 NUM_WIREGROUPS_ME42 = 64,
0049
0050
0051 MAX_NUM_WIREGROUPS = 119,
0052 INVALID_WIREGROUP = 65535
0053 };
0054
0055
0056 static constexpr int
0057
0058 NUM_DISTRIPS_PER_CFEB = 8,
0059
0060 NUM_STRIPS_PER_CFEB = 2 * NUM_DISTRIPS_PER_CFEB,
0061
0062 NUM_HALF_STRIPS_PER_CFEB = 2 * NUM_STRIPS_PER_CFEB,
0063
0064 MAX_NUM_STRIPS_RUN1 = MAX_CFEBS_RUN1 * NUM_STRIPS_PER_CFEB,
0065 MAX_NUM_STRIPS_RUN2 = MAX_CFEBS_RUN2 * NUM_STRIPS_PER_CFEB,
0066
0067 MAX_NUM_HALF_STRIPS_RUN1 = MAX_CFEBS_RUN1 * NUM_HALF_STRIPS_PER_CFEB,
0068 MAX_NUM_HALF_STRIPS_RUN2 = MAX_CFEBS_RUN2 * NUM_HALF_STRIPS_PER_CFEB,
0069
0070
0071
0072
0073 MAX_NUM_HALF_STRIPS_RUN1_TRIGGER = 1 + MAX_NUM_HALF_STRIPS_RUN1,
0074 MAX_NUM_HALF_STRIPS_RUN2_TRIGGER = 1 + MAX_NUM_HALF_STRIPS_RUN2,
0075
0076 NUM_STRIPS_ME1A_GANGED = NUM_CFEBS_ME1A_GANGED * NUM_STRIPS_PER_CFEB,
0077 NUM_STRIPS_ME1A_UNGANGED = NUM_CFEBS_ME1A_UNGANGED * NUM_STRIPS_PER_CFEB,
0078 NUM_STRIPS_ME1B = NUM_CFEBS_ME1B * NUM_STRIPS_PER_CFEB,
0079
0080 NUM_HALF_STRIPS_ME1A_GANGED = NUM_CFEBS_ME1A_GANGED * NUM_HALF_STRIPS_PER_CFEB,
0081 NUM_HALF_STRIPS_ME1A_UNGANGED = NUM_CFEBS_ME1A_UNGANGED * NUM_HALF_STRIPS_PER_CFEB,
0082 NUM_HALF_STRIPS_ME1B = NUM_CFEBS_ME1B * NUM_HALF_STRIPS_PER_CFEB,
0083 NUM_HALF_STRIPS_ME11_GANGED = NUM_CFEBS_ME11_GANGED * NUM_HALF_STRIPS_PER_CFEB,
0084 NUM_HALF_STRIPS_ME11_UNGANGED = NUM_CFEBS_ME11_UNGANGED * NUM_HALF_STRIPS_PER_CFEB,
0085
0086 MAX_HALF_STRIP_ME1A_GANGED = NUM_HALF_STRIPS_ME1A_GANGED - 1,
0087 MAX_HALF_STRIP_ME1A_UNGANGED = NUM_HALF_STRIPS_ME1A_UNGANGED - 1,
0088 MAX_HALF_STRIP_ME1B = NUM_HALF_STRIPS_ME1B - 1,
0089
0090 NUM_HALF_STRIPS_ME12 = NUM_CFEBS_ME12 * NUM_HALF_STRIPS_PER_CFEB,
0091 NUM_HALF_STRIPS_ME13 = NUM_CFEBS_ME13 * NUM_HALF_STRIPS_PER_CFEB,
0092 NUM_HALF_STRIPS_ME21 = NUM_CFEBS_ME21 * NUM_HALF_STRIPS_PER_CFEB,
0093 NUM_HALF_STRIPS_ME22 = NUM_CFEBS_ME22 * NUM_HALF_STRIPS_PER_CFEB,
0094 NUM_HALF_STRIPS_ME31 = NUM_CFEBS_ME31 * NUM_HALF_STRIPS_PER_CFEB,
0095 NUM_HALF_STRIPS_ME32 = NUM_CFEBS_ME32 * NUM_HALF_STRIPS_PER_CFEB,
0096 NUM_HALF_STRIPS_ME41 = NUM_CFEBS_ME41 * NUM_HALF_STRIPS_PER_CFEB,
0097 NUM_HALF_STRIPS_ME42 = NUM_CFEBS_ME42 * NUM_HALF_STRIPS_PER_CFEB,
0098
0099 INVALID_HALF_STRIP = 65535;
0100
0101
0102 enum Layer_Info { NUM_LAYERS = 6, KEY_CLCT_LAYER = 3, KEY_ALCT_LAYER = 3 };
0103
0104
0105 enum Pattern_Info {
0106 NUM_ALCT_PATTERNS = 3,
0107 ALCT_PATTERN_WIDTH = 5,
0108 ALCT_ACCELERATOR_PATTERN = 0,
0109 ALCT_COLLISIONA_PATTERN = 1,
0110 ALCT_COLLISIONB_PATTERN = 2,
0111
0112 NUM_CLCT_PATTERNS = 11,
0113
0114 NUM_CLCT_PATTERNS_RUN3 = 5,
0115 CLCT_PATTERN_WIDTH = 11,
0116
0117 MAX_WIRES_IN_PATTERN = 14,
0118 NUM_COMPARATOR_CODES = 4096
0119 };
0120
0121 enum Digis_Info { MAX_DIGIS_PER_ALCT = 10, MAX_DIGIS_PER_CLCT = 8 };
0122
0123 enum LCT_stubs {
0124
0125 MAX_CLCT_TBINS = 16,
0126 MAX_ALCT_TBINS = 16,
0127 MAX_LCT_TBINS = 16,
0128
0129 MAX_MATCH_WINDOW_SIZE = 7,
0130
0131 MAX_CLCTS_PER_PROCESSOR = 2,
0132 MAX_CLCTS_READOUT = 2,
0133
0134 MAX_ALCTS_PER_PROCESSOR = 2,
0135 MAX_ALCTS_READOUT = 2,
0136
0137 MAX_LCTS_PER_CSC = 2,
0138
0139 MAX_LCTS_PER_MPC = 18,
0140
0141
0142
0143
0144
0145 MAX_CSCS_PER_EMTF_SP_NO_OVERLAP = 45,
0146
0147 LCT_CENTRAL_BX = 8,
0148
0149
0150
0151
0152
0153
0154 ALCT_CENTRAL_BX = 3,
0155
0156
0157
0158
0159
0160
0161 CLCT_CENTRAL_BX = 7,
0162
0163 ALCT_CLCT_OFFSET = 1
0164 };
0165 };
0166
0167 #endif