CMS 3D CMS Logo

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
17  // ME1/1 cases
23  // Run-2: Maximum number of cathode front-end boards
25  // CFEBS for the rest of the system
34  };
35 
37 
38  // Numbers obtained from https://twiki.cern.ch/twiki/pub/CMS/CSCDPGGeometry/table_of_csc_properties_150730.pdf
39  enum WG_Info {
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
53  };
54 
55  // distrips, strips, half-strips
56  static constexpr int
57  // Each CFEB reads out 8 distrips...
59  //...16 strips...
61  //...32 half-strips.
63  // There are exactly 80 or 112 strips...
66  //...and 160 or 224 half-strips for 5 or 7 CFEBs...
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
75  // Number of strips in ME11 (special case)
79  // Number of half-strips in ME11 (special case)
85  // max halfstrip number in ME1/1 chambers
89  // half-strips for the rest of the system
98  // useful for the comparator code algorithm
100 
101  // CSCs have 6 layers. The key (reference) layer is the third layer
103 
104  // Both ALCT and CLCTs have patterns. CLCTs have a better granularity than ALCTs, thus more patterns
111  // Run-1 and Run-2 CSC trigger patterns
113  // Run-3 CSC trigger patterns
116  // Max number of wires participating in a pattern
119  };
120 
122 
123  enum LCT_stubs {
124  // CSC local trigger considers 4-bit BX window (16 numbers) in the readout
128  // Maximum allowed matching window size
130  // Each CLCT processor can send up to 2 CLCTs to TMB per BX
133  // Each ALCT processor can send up to 2 ALCTs to TMB per BX
136  // Each CSC can send up to 2 LCTs to the MPC per BX
138  // An MPC receives up to 18 LCTs from 9 CSCs in the trigger sector
140  /*
141  An EMTF sector processor receives LCTs from 5 MPCS
142  or 45 chambers when not considering overlapping EMTF SPs
143  18 CSCs in ME1; 9 x 3 CSCs in ME2,3,4
144  */
146  // Reference BX for LCTs in simulation and firmware
148  /*
149  Reference BX for ALCTs in firmware. In the ALCT simulation,
150  and in the motherboard simulation the ALCT central BX is 8.
151  However, ALCT BX is shifted before they are inserted into the EDM
152  ROOT file to have a central BX of 3 and be consistent with the firmware.
153  */
155  /*
156  Reference BX for CLCTs in firmware. In the CLCT simulation, the central
157  CLCT BX is 7. In the motherboard simulation they are shifted to 8 (in order
158  to matched with ALCTs). But in the EDM ROOT file the CLCT central BX is 7
159  to be consistent with the firmware.
160  */
162  // Offset between the ALCT and CLCT central BX in simulation
164  };
165 };
166 
167 #endif
static constexpr int NUM_HALF_STRIPS_ME22
Definition: CSCConstants.h:93
static constexpr int MAX_NUM_STRIPS_RUN1
Definition: CSCConstants.h:64
static constexpr int NUM_HALF_STRIPS_ME31
Definition: CSCConstants.h:94
static constexpr int NUM_STRIPS_ME1A_GANGED
Definition: CSCConstants.h:76
static constexpr int NUM_HALF_STRIPS_ME21
Definition: CSCConstants.h:92
static constexpr int NUM_STRIPS_ME1A_UNGANGED
Definition: CSCConstants.h:77
static constexpr int NUM_HALF_STRIPS_ME13
Definition: CSCConstants.h:91
static constexpr int MAX_NUM_HALF_STRIPS_RUN1_TRIGGER
Definition: CSCConstants.h:73
static constexpr int NUM_HALF_STRIPS_ME11_GANGED
Definition: CSCConstants.h:83
static constexpr int MAX_NUM_HALF_STRIPS_RUN1
Definition: CSCConstants.h:67
static constexpr int NUM_HALF_STRIPS_PER_CFEB
Definition: CSCConstants.h:62
static constexpr int MAX_NUM_HALF_STRIPS_RUN2
Definition: CSCConstants.h:68
static constexpr int MAX_NUM_HALF_STRIPS_RUN2_TRIGGER
Definition: CSCConstants.h:74
static constexpr int NUM_HALF_STRIPS_ME11_UNGANGED
Definition: CSCConstants.h:84
static constexpr int INVALID_HALF_STRIP
Definition: CSCConstants.h:99
static constexpr int NUM_DISTRIPS_PER_CFEB
Definition: CSCConstants.h:58
static constexpr int MAX_NUM_STRIPS_RUN2
Definition: CSCConstants.h:65
static constexpr int NUM_STRIPS_ME1B
Definition: CSCConstants.h:78
static constexpr int NUM_HALF_STRIPS_ME12
Definition: CSCConstants.h:90
static constexpr int NUM_HALF_STRIPS_ME1A_GANGED
Definition: CSCConstants.h:80
static constexpr int NUM_HALF_STRIPS_ME32
Definition: CSCConstants.h:95
static constexpr int NUM_HALF_STRIPS_ME42
Definition: CSCConstants.h:97
static constexpr int MAX_HALF_STRIP_ME1A_UNGANGED
Definition: CSCConstants.h:87
static constexpr int MAX_HALF_STRIP_ME1B
Definition: CSCConstants.h:88
static constexpr int MAX_HALF_STRIP_ME1A_GANGED
Definition: CSCConstants.h:86
static constexpr int NUM_HALF_STRIPS_ME1B
Definition: CSCConstants.h:82
static constexpr int NUM_HALF_STRIPS_ME1A_UNGANGED
Definition: CSCConstants.h:81
static constexpr int NUM_HALF_STRIPS_ME41
Definition: CSCConstants.h:96
static constexpr int NUM_STRIPS_PER_CFEB
Definition: CSCConstants.h:60