src
DataFormats
CSCDigi
interface
CSCConstants.h
Go to the documentation of this file.
1
#ifndef DataFormats_CSCDigi_CSCConstants_h
2
#define DataFormats_CSCDigi_CSCConstants_h
3
10
class
CSCConstants
{
11
public
:
12
enum
DDU_Info
{
NUM_DDUS
= 5 };
13
14
enum
CFEB_Info
{
15
// Run-1: Maximum number of cathode front-end boards
16
MAX_CFEBS_RUN1
= 5,
17
// ME1/1 cases
18
NUM_CFEBS_ME1A_GANGED
= 1,
19
NUM_CFEBS_ME1A_UNGANGED
= 3,
20
NUM_CFEBS_ME1B
= 4,
21
NUM_CFEBS_ME11_GANGED
=
NUM_CFEBS_ME1A_GANGED
+
NUM_CFEBS_ME1B
,
// 5
22
NUM_CFEBS_ME11_UNGANGED
=
NUM_CFEBS_ME1A_UNGANGED
+
NUM_CFEBS_ME1B
,
// 7
23
// Run-2: Maximum number of cathode front-end boards
24
MAX_CFEBS_RUN2
=
NUM_CFEBS_ME11_UNGANGED
,
// 7
25
// CFEBS for the rest of the system
26
NUM_CFEBS_ME12
= 5,
27
NUM_CFEBS_ME13
= 4,
28
NUM_CFEBS_ME21
= 5,
29
NUM_CFEBS_ME22
= 5,
30
NUM_CFEBS_ME31
= 5,
31
NUM_CFEBS_ME32
= 5,
32
NUM_CFEBS_ME41
= 5,
33
NUM_CFEBS_ME42
= 5
34
};
35
36
enum
FPGA_Latency
{
CLCT_EMUL_TIME_OFFSET
= 3,
ALCT_EMUL_TIME_OFFSET
= 6 };
37
38
// Numbers obtained from https://twiki.cern.ch/twiki/pub/CMS/CSCDPGGeometry/table_of_csc_properties_150730.pdf
39
enum
WG_Info
{
40
NUM_WIREGROUPS_ME11
= 48,
41
NUM_WIREGROUPS_ME12
= 64,
42
NUM_WIREGROUPS_ME13
= 32,
43
NUM_WIREGROUPS_ME21
= 112,
44
NUM_WIREGROUPS_ME22
= 64,
45
NUM_WIREGROUPS_ME31
= 96,
46
NUM_WIREGROUPS_ME32
= 64,
47
NUM_WIREGROUPS_ME41
= 96,
48
NUM_WIREGROUPS_ME42
= 64,
49
// this number should really be 112, but has always been 119 since the
50
// CSC trigger was developed in 2006. Probably it would not hurt to change it to 112
51
MAX_NUM_WIREGROUPS
= 119,
52
INVALID_WIREGROUP
= 65535
53
};
54
55
// distrips, strips, half-strips
56
enum
Strip_Info
{
57
// Each CFEB reads out 8 distrips...
58
NUM_DISTRIPS_PER_CFEB
= 8,
59
//...16 strips...
60
NUM_STRIPS_PER_CFEB
= 2 *
NUM_DISTRIPS_PER_CFEB
,
61
//...32 half-strips.
62
NUM_HALF_STRIPS_PER_CFEB
= 2 *
NUM_STRIPS_PER_CFEB
,
63
// There are exactly 80 or 112 strips...
64
MAX_NUM_STRIPS_RUN1
=
MAX_CFEBS_RUN1
*
NUM_STRIPS_PER_CFEB
,
// 80
65
MAX_NUM_STRIPS_RUN2
=
MAX_CFEBS_RUN2
*
NUM_STRIPS_PER_CFEB
,
// 112
66
//...and 160 or 224 half-strips for 5 or 7 CFEBs...
67
MAX_NUM_HALF_STRIPS_RUN1
=
MAX_CFEBS_RUN1
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
68
MAX_NUM_HALF_STRIPS_RUN2
=
MAX_CFEBS_RUN2
*
NUM_HALF_STRIPS_PER_CFEB
,
// 224
69
// ...but depending on the chamber, there may or may not be strip staggering.
70
/* CMS-MUO-16-001: "[..] alternate layers in a CSC are staggered by half a strip width, except
71
in the ME1/1 chambers where the strips are narrower and the effect is small" */
72
// _TRIGGER is added at the end, because these constants are only used in the trigger
73
MAX_NUM_HALF_STRIPS_RUN1_TRIGGER
= 1 +
MAX_NUM_HALF_STRIPS_RUN1
,
// 161
74
MAX_NUM_HALF_STRIPS_RUN2_TRIGGER
= 1 +
MAX_NUM_HALF_STRIPS_RUN2
,
// 225
75
// Number of strips in ME11 (special case)
76
NUM_STRIPS_ME1A_GANGED
=
NUM_CFEBS_ME1A_GANGED
*
NUM_STRIPS_PER_CFEB
,
// 16
77
NUM_STRIPS_ME1A_UNGANGED
=
NUM_CFEBS_ME1A_UNGANGED
*
NUM_STRIPS_PER_CFEB
,
// 48
78
NUM_STRIPS_ME1B
=
NUM_CFEBS_ME1B
*
NUM_STRIPS_PER_CFEB
,
// 64
79
// Number of half-strips in ME11 (special case)
80
NUM_HALF_STRIPS_ME1A_GANGED
=
NUM_CFEBS_ME1A_GANGED
*
NUM_HALF_STRIPS_PER_CFEB
,
// 32
81
NUM_HALF_STRIPS_ME1A_UNGANGED
=
NUM_CFEBS_ME1A_UNGANGED
*
NUM_HALF_STRIPS_PER_CFEB
,
// 96
82
NUM_HALF_STRIPS_ME1B
=
NUM_CFEBS_ME1B
*
NUM_HALF_STRIPS_PER_CFEB
,
// 128
83
NUM_HALF_STRIPS_ME11_GANGED
=
NUM_CFEBS_ME11_GANGED
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
84
NUM_HALF_STRIPS_ME11_UNGANGED
=
NUM_CFEBS_ME11_UNGANGED
*
NUM_HALF_STRIPS_PER_CFEB
,
// 224
85
// max halfstrip number in ME1/1 chambers
86
MAX_HALF_STRIP_ME1A_GANGED
=
NUM_HALF_STRIPS_ME1A_GANGED
- 1,
// 31
87
MAX_HALF_STRIP_ME1A_UNGANGED
=
NUM_HALF_STRIPS_ME1A_UNGANGED
- 1,
// 95
88
MAX_HALF_STRIP_ME1B
=
NUM_HALF_STRIPS_ME1B
- 1,
// 127
89
// half-strips for the rest of the system
90
NUM_HALF_STRIPS_ME12
=
NUM_CFEBS_ME12
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
91
NUM_HALF_STRIPS_ME13
=
NUM_CFEBS_ME13
*
NUM_HALF_STRIPS_PER_CFEB
,
// 128
92
NUM_HALF_STRIPS_ME21
=
NUM_CFEBS_ME21
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
93
NUM_HALF_STRIPS_ME22
=
NUM_CFEBS_ME22
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
94
NUM_HALF_STRIPS_ME31
=
NUM_CFEBS_ME31
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
95
NUM_HALF_STRIPS_ME32
=
NUM_CFEBS_ME32
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
96
NUM_HALF_STRIPS_ME41
=
NUM_CFEBS_ME41
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
97
NUM_HALF_STRIPS_ME42
=
NUM_CFEBS_ME42
*
NUM_HALF_STRIPS_PER_CFEB
,
// 160
98
// useful for the comparator code algorithm
99
INVALID_HALF_STRIP
= 65535
100
};
101
102
// CSCs have 6 layers. The key (reference) layer is the third layer
103
enum
Layer_Info
{
NUM_LAYERS
= 6,
KEY_CLCT_LAYER
= 3,
KEY_ALCT_LAYER
= 3 };
104
105
// Both ALCT and CLCTs have patterns. CLCTs have a better granularity than ALCTs, thus more patterns
106
enum
Pattern_Info
{
107
NUM_ALCT_PATTERNS
= 3,
108
ALCT_PATTERN_WIDTH
= 5,
109
ALCT_ACCELERATOR_PATTERN
= 0,
110
ALCT_COLLISIONA_PATTERN
= 1,
111
ALCT_COLLISIONB_PATTERN
= 2,
112
// Run-1 and Run-2 CSC trigger patterns
113
NUM_CLCT_PATTERNS
= 11,
114
// Run-3 CSC trigger patterns
115
NUM_CLCT_PATTERNS_RUN3
= 5,
116
CLCT_PATTERN_WIDTH
= 11,
117
// Max number of wires participating in a pattern
118
MAX_WIRES_IN_PATTERN
= 14,
119
NUM_COMPARATOR_CODES
= 4096
120
};
121
122
enum
Digis_Info
{
MAX_DIGIS_PER_ALCT
= 10,
MAX_DIGIS_PER_CLCT
= 8 };
123
124
enum
LCT_stubs
{
125
// CSC local trigger considers 4-bit BX window (16 numbers) in the readout
126
MAX_CLCT_TBINS
= 16,
127
MAX_ALCT_TBINS
= 16,
128
MAX_LCT_TBINS
= 16,
129
// Maximum allowed matching window size
130
MAX_MATCH_WINDOW_SIZE
= 7,
131
// Each CLCT processor can send up to 2 CLCTs to TMB per BX
132
MAX_CLCTS_PER_PROCESSOR
= 2,
133
MAX_CLCTS_READOUT
= 2,
134
// Each ALCT processor can send up to 2 ALCTs to TMB per BX
135
MAX_ALCTS_PER_PROCESSOR
= 2,
136
MAX_ALCTS_READOUT
= 2,
137
// Each CSC can send up to 2 LCTs to the MPC per BX
138
MAX_LCTS_PER_CSC
= 2,
139
// An MPC receives up to 18 LCTs from 9 CSCs in the trigger sector
140
MAX_LCTS_PER_MPC
= 18,
141
/*
142
An EMTF sector processor receives LCTs from 5 MPCS
143
or 45 chambers when not considering overlapping EMTF SPs
144
18 CSCs in ME1; 9 x 3 CSCs in ME2,3,4
145
*/
146
MAX_CSCS_PER_EMTF_SP_NO_OVERLAP
= 45,
147
// Reference BX for LCTs in simulation and firmware
148
LCT_CENTRAL_BX
= 8,
149
/*
150
Reference BX for ALCTs in firmware. In the ALCT simulation,
151
and in the motherboard simulation the ALCT central BX is 8.
152
However, ALCT BX is shifted before they are inserted into the EDM
153
ROOT file to have a central BX of 3 and be consistent with the firmware.
154
*/
155
ALCT_CENTRAL_BX
= 3,
156
/*
157
Reference BX for CLCTs in firmware. In the CLCT simulation, the central
158
CLCT BX is 7. In the motherboard simulation they are shifted to 8 (in order
159
to matched with ALCTs). But in the EDM ROOT file the CLCT central BX is 7
160
to be consistent with the firmware.
161
*/
162
CLCT_CENTRAL_BX
= 7,
163
// Offset between the ALCT and CLCT central BX in simulation
164
ALCT_CLCT_OFFSET
= 1
165
};
166
};
167
168
#endif
CSCConstants::NUM_WIREGROUPS_ME22
Definition:
CSCConstants.h:44
CSCConstants::CFEB_Info
CFEB_Info
Definition:
CSCConstants.h:14
CSCConstants::NUM_WIREGROUPS_ME13
Definition:
CSCConstants.h:42
CSCConstants::NUM_CFEBS_ME41
Definition:
CSCConstants.h:32
CSCConstants::NUM_CFEBS_ME32
Definition:
CSCConstants.h:31
CSCConstants::LCT_CENTRAL_BX
Definition:
CSCConstants.h:148
CSCConstants::ALCT_ACCELERATOR_PATTERN
Definition:
CSCConstants.h:109
CSCConstants::MAX_ALCTS_PER_PROCESSOR
Definition:
CSCConstants.h:135
CSCConstants::INVALID_HALF_STRIP
Definition:
CSCConstants.h:99
CSCConstants::NUM_HALF_STRIPS_ME13
Definition:
CSCConstants.h:91
CSCConstants::NUM_WIREGROUPS_ME41
Definition:
CSCConstants.h:47
CSCConstants::NUM_CFEBS_ME11_UNGANGED
Definition:
CSCConstants.h:22
CSCConstants::NUM_HALF_STRIPS_ME11_GANGED
Definition:
CSCConstants.h:83
CSCConstants::MAX_NUM_HALF_STRIPS_RUN1_TRIGGER
Definition:
CSCConstants.h:73
CSCConstants::NUM_WIREGROUPS_ME32
Definition:
CSCConstants.h:46
CSCConstants::NUM_CLCT_PATTERNS_RUN3
Definition:
CSCConstants.h:115
CSCConstants::NUM_STRIPS_ME1A_UNGANGED
Definition:
CSCConstants.h:77
CSCConstants::MAX_HALF_STRIP_ME1A_GANGED
Definition:
CSCConstants.h:86
CSCConstants::MAX_NUM_STRIPS_RUN2
Definition:
CSCConstants.h:65
CSCConstants::NUM_CFEBS_ME13
Definition:
CSCConstants.h:27
CSCConstants::NUM_CFEBS_ME11_GANGED
Definition:
CSCConstants.h:21
CSCConstants::ALCT_PATTERN_WIDTH
Definition:
CSCConstants.h:108
CSCConstants::MAX_NUM_STRIPS_RUN1
Definition:
CSCConstants.h:64
CSCConstants::NUM_CFEBS_ME22
Definition:
CSCConstants.h:29
CSCConstants::MAX_HALF_STRIP_ME1B
Definition:
CSCConstants.h:88
CSCConstants::NUM_WIREGROUPS_ME12
Definition:
CSCConstants.h:41
CSCConstants::CLCT_CENTRAL_BX
Definition:
CSCConstants.h:162
CSCConstants::NUM_STRIPS_ME1A_GANGED
Definition:
CSCConstants.h:76
CSCConstants::NUM_HALF_STRIPS_ME1A_GANGED
Definition:
CSCConstants.h:80
CSCConstants::NUM_ALCT_PATTERNS
Definition:
CSCConstants.h:107
CSCConstants::NUM_HALF_STRIPS_ME32
Definition:
CSCConstants.h:95
CSCConstants::NUM_CFEBS_ME21
Definition:
CSCConstants.h:28
CSCConstants::WG_Info
WG_Info
Definition:
CSCConstants.h:39
CSCConstants::NUM_STRIPS_ME1B
Definition:
CSCConstants.h:78
CSCConstants::NUM_CFEBS_ME1A_GANGED
Definition:
CSCConstants.h:18
CSCConstants::ALCT_CLCT_OFFSET
Definition:
CSCConstants.h:164
CSCConstants::MAX_ALCTS_READOUT
Definition:
CSCConstants.h:136
CSCConstants::NUM_HALF_STRIPS_ME1A_UNGANGED
Definition:
CSCConstants.h:81
CSCConstants::CLCT_PATTERN_WIDTH
Definition:
CSCConstants.h:116
CSCConstants::NUM_HALF_STRIPS_ME22
Definition:
CSCConstants.h:93
CSCConstants::LCT_stubs
LCT_stubs
Definition:
CSCConstants.h:124
CSCConstants::NUM_HALF_STRIPS_ME1B
Definition:
CSCConstants.h:82
CSCConstants::Strip_Info
Strip_Info
Definition:
CSCConstants.h:56
CSCConstants::NUM_WIREGROUPS_ME21
Definition:
CSCConstants.h:43
CSCConstants::NUM_COMPARATOR_CODES
Definition:
CSCConstants.h:119
CSCConstants::NUM_HALF_STRIPS_ME21
Definition:
CSCConstants.h:92
CSCConstants::CLCT_EMUL_TIME_OFFSET
Definition:
CSCConstants.h:36
CSCConstants::MAX_NUM_WIREGROUPS
Definition:
CSCConstants.h:51
CSCConstants::Layer_Info
Layer_Info
Definition:
CSCConstants.h:103
CSCConstants::NUM_LAYERS
Definition:
CSCConstants.h:103
CSCConstants::KEY_CLCT_LAYER
Definition:
CSCConstants.h:103
CSCConstants::NUM_CFEBS_ME12
Definition:
CSCConstants.h:26
CSCConstants::MAX_NUM_HALF_STRIPS_RUN2_TRIGGER
Definition:
CSCConstants.h:74
CSCConstants::KEY_ALCT_LAYER
Definition:
CSCConstants.h:103
CSCConstants::MAX_WIRES_IN_PATTERN
Definition:
CSCConstants.h:118
CSCConstants::ALCT_COLLISIONA_PATTERN
Definition:
CSCConstants.h:110
CSCConstants::NUM_CLCT_PATTERNS
Definition:
CSCConstants.h:113
CSCConstants::MAX_NUM_HALF_STRIPS_RUN2
Definition:
CSCConstants.h:68
CSCConstants::Pattern_Info
Pattern_Info
Definition:
CSCConstants.h:106
CSCConstants::ALCT_EMUL_TIME_OFFSET
Definition:
CSCConstants.h:36
CSCConstants::ALCT_COLLISIONB_PATTERN
Definition:
CSCConstants.h:111
CSCConstants::MAX_DIGIS_PER_CLCT
Definition:
CSCConstants.h:122
CSCConstants::MAX_CLCTS_READOUT
Definition:
CSCConstants.h:133
CSCConstants::MAX_CFEBS_RUN2
Definition:
CSCConstants.h:24
CSCConstants::Digis_Info
Digis_Info
Definition:
CSCConstants.h:122
CSCConstants::NUM_STRIPS_PER_CFEB
Definition:
CSCConstants.h:60
CSCConstants::NUM_HALF_STRIPS_ME31
Definition:
CSCConstants.h:94
CSCConstants::MAX_HALF_STRIP_ME1A_UNGANGED
Definition:
CSCConstants.h:87
CSCConstants::NUM_HALF_STRIPS_ME12
Definition:
CSCConstants.h:90
CSCConstants::FPGA_Latency
FPGA_Latency
Definition:
CSCConstants.h:36
CSCConstants::MAX_NUM_HALF_STRIPS_RUN1
Definition:
CSCConstants.h:67
CSCConstants::MAX_LCTS_PER_CSC
Definition:
CSCConstants.h:138
CSCConstants::NUM_CFEBS_ME1A_UNGANGED
Definition:
CSCConstants.h:19
CSCConstants::MAX_DIGIS_PER_ALCT
Definition:
CSCConstants.h:122
CSCConstants
Definition:
CSCConstants.h:10
CSCConstants::NUM_HALF_STRIPS_PER_CFEB
Definition:
CSCConstants.h:62
CSCConstants::NUM_DISTRIPS_PER_CFEB
Definition:
CSCConstants.h:58
CSCConstants::MAX_CSCS_PER_EMTF_SP_NO_OVERLAP
Definition:
CSCConstants.h:146
CSCConstants::NUM_HALF_STRIPS_ME41
Definition:
CSCConstants.h:96
CSCConstants::NUM_CFEBS_ME1B
Definition:
CSCConstants.h:20
CSCConstants::DDU_Info
DDU_Info
Definition:
CSCConstants.h:12
CSCConstants::MAX_CLCTS_PER_PROCESSOR
Definition:
CSCConstants.h:132
CSCConstants::NUM_HALF_STRIPS_ME11_UNGANGED
Definition:
CSCConstants.h:84
CSCConstants::NUM_WIREGROUPS_ME31
Definition:
CSCConstants.h:45
CSCConstants::NUM_WIREGROUPS_ME11
Definition:
CSCConstants.h:40
CSCConstants::ALCT_CENTRAL_BX
Definition:
CSCConstants.h:155
CSCConstants::MAX_CLCT_TBINS
Definition:
CSCConstants.h:126
CSCConstants::INVALID_WIREGROUP
Definition:
CSCConstants.h:52
CSCConstants::NUM_DDUS
Definition:
CSCConstants.h:12
CSCConstants::MAX_CFEBS_RUN1
Definition:
CSCConstants.h:16
CSCConstants::NUM_HALF_STRIPS_ME42
Definition:
CSCConstants.h:97
CSCConstants::NUM_CFEBS_ME42
Definition:
CSCConstants.h:33
CSCConstants::MAX_MATCH_WINDOW_SIZE
Definition:
CSCConstants.h:130
CSCConstants::MAX_LCT_TBINS
Definition:
CSCConstants.h:128
CSCConstants::MAX_LCTS_PER_MPC
Definition:
CSCConstants.h:140
CSCConstants::NUM_CFEBS_ME31
Definition:
CSCConstants.h:30
CSCConstants::NUM_WIREGROUPS_ME42
Definition:
CSCConstants.h:48
CSCConstants::MAX_ALCT_TBINS
Definition:
CSCConstants.h:127
Generated for CMSSW Reference Manual by
1.8.14