CMS 3D CMS Logo

List of all members | Public Types | Static Public Attributes
CSCConstants Class Reference

#include <CSCConstants.h>

Public Types

enum  CFEB_Info {
  MAX_CFEBS_RUN1 = 5, NUM_CFEBS_ME1A_GANGED = 1, NUM_CFEBS_ME1A_UNGANGED = 3, NUM_CFEBS_ME1B = 4,
  NUM_CFEBS_ME11_GANGED = NUM_CFEBS_ME1A_GANGED + NUM_CFEBS_ME1B, NUM_CFEBS_ME11_UNGANGED = NUM_CFEBS_ME1A_UNGANGED + NUM_CFEBS_ME1B, MAX_CFEBS_RUN2 = NUM_CFEBS_ME11_UNGANGED, NUM_CFEBS_ME12 = 5,
  NUM_CFEBS_ME13 = 4, NUM_CFEBS_ME21 = 5, NUM_CFEBS_ME22 = 5, NUM_CFEBS_ME31 = 5,
  NUM_CFEBS_ME32 = 5, NUM_CFEBS_ME41 = 5, NUM_CFEBS_ME42 = 5
}
 
enum  DDU_Info { NUM_DDUS = 5 }
 
enum  Digis_Info { MAX_DIGIS_PER_ALCT = 10, MAX_DIGIS_PER_CLCT = 8 }
 
enum  FPGA_Latency { CLCT_EMUL_TIME_OFFSET = 3, ALCT_EMUL_TIME_OFFSET = 6 }
 
enum  Layer_Info { NUM_LAYERS = 6, KEY_CLCT_LAYER = 3, KEY_ALCT_LAYER = 3 }
 
enum  LCT_stubs {
  MAX_CLCT_TBINS = 16, MAX_ALCT_TBINS = 16, MAX_LCT_TBINS = 16, MAX_MATCH_WINDOW_SIZE = 7,
  MAX_CLCTS_PER_PROCESSOR = 2, MAX_CLCTS_READOUT = 2, MAX_ALCTS_PER_PROCESSOR = 2, MAX_ALCTS_READOUT = 2,
  MAX_LCTS_PER_CSC = 2, MAX_LCTS_PER_MPC = 18, MAX_CSCS_PER_EMTF_SP_NO_OVERLAP = 45, LCT_CENTRAL_BX = 8,
  ALCT_CENTRAL_BX = 3, CLCT_CENTRAL_BX = 7, ALCT_CLCT_OFFSET = 1
}
 
enum  Pattern_Info {
  NUM_ALCT_PATTERNS = 3, ALCT_PATTERN_WIDTH = 5, ALCT_ACCELERATOR_PATTERN = 0, ALCT_COLLISIONA_PATTERN = 1,
  ALCT_COLLISIONB_PATTERN = 2, NUM_CLCT_PATTERNS = 11, NUM_CLCT_PATTERNS_RUN3 = 5, CLCT_PATTERN_WIDTH = 11,
  MAX_WIRES_IN_PATTERN = 14, NUM_COMPARATOR_CODES = 4096
}
 
enum  WG_Info {
  NUM_WIREGROUPS_ME11 = 48, NUM_WIREGROUPS_ME12 = 64, NUM_WIREGROUPS_ME13 = 32, NUM_WIREGROUPS_ME21 = 112,
  NUM_WIREGROUPS_ME22 = 64, NUM_WIREGROUPS_ME31 = 96, NUM_WIREGROUPS_ME32 = 64, NUM_WIREGROUPS_ME41 = 96,
  NUM_WIREGROUPS_ME42 = 64, MAX_NUM_WIREGROUPS = 119, INVALID_WIREGROUP = 65535
}
 

Static Public Attributes

static constexpr int INVALID_HALF_STRIP = 65535
 
static constexpr int MAX_HALF_STRIP_ME1A_GANGED = NUM_HALF_STRIPS_ME1A_GANGED - 1
 
static constexpr int MAX_HALF_STRIP_ME1A_UNGANGED = NUM_HALF_STRIPS_ME1A_UNGANGED - 1
 
static constexpr int MAX_HALF_STRIP_ME1B = NUM_HALF_STRIPS_ME1B - 1
 
static constexpr int MAX_NUM_HALF_STRIPS_RUN1 = MAX_CFEBS_RUN1 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int MAX_NUM_HALF_STRIPS_RUN1_TRIGGER = 1 + MAX_NUM_HALF_STRIPS_RUN1
 
static constexpr int MAX_NUM_HALF_STRIPS_RUN2 = MAX_CFEBS_RUN2 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int MAX_NUM_HALF_STRIPS_RUN2_TRIGGER = 1 + MAX_NUM_HALF_STRIPS_RUN2
 
static constexpr int MAX_NUM_STRIPS_RUN1 = MAX_CFEBS_RUN1 * NUM_STRIPS_PER_CFEB
 
static constexpr int MAX_NUM_STRIPS_RUN2 = MAX_CFEBS_RUN2 * NUM_STRIPS_PER_CFEB
 
static constexpr int NUM_DISTRIPS_PER_CFEB = 8
 
static constexpr int NUM_HALF_STRIPS_ME11_GANGED = NUM_CFEBS_ME11_GANGED * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME11_UNGANGED = NUM_CFEBS_ME11_UNGANGED * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME12 = NUM_CFEBS_ME12 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME13 = NUM_CFEBS_ME13 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME1A_GANGED = NUM_CFEBS_ME1A_GANGED * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME1A_UNGANGED = NUM_CFEBS_ME1A_UNGANGED * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME1B = NUM_CFEBS_ME1B * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME21 = NUM_CFEBS_ME21 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME22 = NUM_CFEBS_ME22 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME31 = NUM_CFEBS_ME31 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME32 = NUM_CFEBS_ME32 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME41 = NUM_CFEBS_ME41 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_ME42 = NUM_CFEBS_ME42 * NUM_HALF_STRIPS_PER_CFEB
 
static constexpr int NUM_HALF_STRIPS_PER_CFEB = 2 * NUM_STRIPS_PER_CFEB
 
static constexpr int NUM_STRIPS_ME1A_GANGED = NUM_CFEBS_ME1A_GANGED * NUM_STRIPS_PER_CFEB
 
static constexpr int NUM_STRIPS_ME1A_UNGANGED = NUM_CFEBS_ME1A_UNGANGED * NUM_STRIPS_PER_CFEB
 
static constexpr int NUM_STRIPS_ME1B = NUM_CFEBS_ME1B * NUM_STRIPS_PER_CFEB
 
static constexpr int NUM_STRIPS_PER_CFEB = 2 * NUM_DISTRIPS_PER_CFEB
 

Detailed Description

Static interface to basic chamber constants.

Definition at line 10 of file CSCConstants.h.

Member Enumeration Documentation

◆ CFEB_Info

Enumerator
MAX_CFEBS_RUN1 
NUM_CFEBS_ME1A_GANGED 
NUM_CFEBS_ME1A_UNGANGED 
NUM_CFEBS_ME1B 
NUM_CFEBS_ME11_GANGED 
NUM_CFEBS_ME11_UNGANGED 
MAX_CFEBS_RUN2 
NUM_CFEBS_ME12 
NUM_CFEBS_ME13 
NUM_CFEBS_ME21 
NUM_CFEBS_ME22 
NUM_CFEBS_ME31 
NUM_CFEBS_ME32 
NUM_CFEBS_ME41 
NUM_CFEBS_ME42 

Definition at line 14 of file CSCConstants.h.

14  {
15  // Run-1: Maximum number of cathode front-end boards
16  MAX_CFEBS_RUN1 = 5,
17  // ME1/1 cases
20  NUM_CFEBS_ME1B = 4,
23  // Run-2: Maximum number of cathode front-end boards
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  };

◆ DDU_Info

Enumerator
NUM_DDUS 

Definition at line 12 of file CSCConstants.h.

◆ Digis_Info

Enumerator
MAX_DIGIS_PER_ALCT 
MAX_DIGIS_PER_CLCT 

Definition at line 121 of file CSCConstants.h.

◆ FPGA_Latency

Enumerator
CLCT_EMUL_TIME_OFFSET 
ALCT_EMUL_TIME_OFFSET 

Definition at line 36 of file CSCConstants.h.

◆ Layer_Info

Enumerator
NUM_LAYERS 
KEY_CLCT_LAYER 
KEY_ALCT_LAYER 

Definition at line 102 of file CSCConstants.h.

◆ LCT_stubs

Enumerator
MAX_CLCT_TBINS 
MAX_ALCT_TBINS 
MAX_LCT_TBINS 
MAX_MATCH_WINDOW_SIZE 
MAX_CLCTS_PER_PROCESSOR 
MAX_CLCTS_READOUT 
MAX_ALCTS_PER_PROCESSOR 
MAX_ALCTS_READOUT 
MAX_LCTS_PER_CSC 
MAX_LCTS_PER_MPC 
MAX_CSCS_PER_EMTF_SP_NO_OVERLAP 
LCT_CENTRAL_BX 
ALCT_CENTRAL_BX 
CLCT_CENTRAL_BX 
ALCT_CLCT_OFFSET 

Definition at line 123 of file CSCConstants.h.

123  {
124  // CSC local trigger considers 4-bit BX window (16 numbers) in the readout
125  MAX_CLCT_TBINS = 16,
126  MAX_ALCT_TBINS = 16,
127  MAX_LCT_TBINS = 16,
128  // Maximum allowed matching window size
130  // Each CLCT processor can send up to 2 CLCTs to TMB per BX
132  MAX_CLCTS_READOUT = 2,
133  // Each ALCT processor can send up to 2 ALCTs to TMB per BX
135  MAX_ALCTS_READOUT = 2,
136  // Each CSC can send up to 2 LCTs to the MPC per BX
137  MAX_LCTS_PER_CSC = 2,
138  // An MPC receives up to 18 LCTs from 9 CSCs in the trigger sector
139  MAX_LCTS_PER_MPC = 18,
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
147  LCT_CENTRAL_BX = 8,
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  */
154  ALCT_CENTRAL_BX = 3,
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  */
161  CLCT_CENTRAL_BX = 7,
162  // Offset between the ALCT and CLCT central BX in simulation
163  ALCT_CLCT_OFFSET = 1
164  };

◆ Pattern_Info

Enumerator
NUM_ALCT_PATTERNS 
ALCT_PATTERN_WIDTH 
ALCT_ACCELERATOR_PATTERN 
ALCT_COLLISIONA_PATTERN 
ALCT_COLLISIONB_PATTERN 
NUM_CLCT_PATTERNS 
NUM_CLCT_PATTERNS_RUN3 
CLCT_PATTERN_WIDTH 
MAX_WIRES_IN_PATTERN 
NUM_COMPARATOR_CODES 

Definition at line 105 of file CSCConstants.h.

◆ WG_Info

Enumerator
NUM_WIREGROUPS_ME11 
NUM_WIREGROUPS_ME12 
NUM_WIREGROUPS_ME13 
NUM_WIREGROUPS_ME21 
NUM_WIREGROUPS_ME22 
NUM_WIREGROUPS_ME31 
NUM_WIREGROUPS_ME32 
NUM_WIREGROUPS_ME41 
NUM_WIREGROUPS_ME42 
MAX_NUM_WIREGROUPS 
INVALID_WIREGROUP 

Definition at line 39 of file CSCConstants.h.

Member Data Documentation

◆ INVALID_HALF_STRIP

constexpr int CSCConstants::INVALID_HALF_STRIP = 65535
static

◆ MAX_HALF_STRIP_ME1A_GANGED

constexpr int CSCConstants::MAX_HALF_STRIP_ME1A_GANGED = NUM_HALF_STRIPS_ME1A_GANGED - 1
static

Definition at line 86 of file CSCConstants.h.

Referenced by CSCALCTCrossCLCT::doesWiregroupCrossHalfStrip().

◆ MAX_HALF_STRIP_ME1A_UNGANGED

constexpr int CSCConstants::MAX_HALF_STRIP_ME1A_UNGANGED = NUM_HALF_STRIPS_ME1A_UNGANGED - 1
static

Definition at line 87 of file CSCConstants.h.

Referenced by CSCALCTCrossCLCT::doesWiregroupCrossHalfStrip().

◆ MAX_HALF_STRIP_ME1B

constexpr int CSCConstants::MAX_HALF_STRIP_ME1B = NUM_HALF_STRIPS_ME1B - 1
static

◆ MAX_NUM_HALF_STRIPS_RUN1

constexpr int CSCConstants::MAX_NUM_HALF_STRIPS_RUN1 = MAX_CFEBS_RUN1 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 67 of file CSCConstants.h.

Referenced by CSCComparatorData::add().

◆ MAX_NUM_HALF_STRIPS_RUN1_TRIGGER

constexpr int CSCConstants::MAX_NUM_HALF_STRIPS_RUN1_TRIGGER = 1 + MAX_NUM_HALF_STRIPS_RUN1
static

Definition at line 73 of file CSCConstants.h.

◆ MAX_NUM_HALF_STRIPS_RUN2

constexpr int CSCConstants::MAX_NUM_HALF_STRIPS_RUN2 = MAX_CFEBS_RUN2 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 68 of file CSCConstants.h.

Referenced by CSCComparatorData::add().

◆ MAX_NUM_HALF_STRIPS_RUN2_TRIGGER

constexpr int CSCConstants::MAX_NUM_HALF_STRIPS_RUN2_TRIGGER = 1 + MAX_NUM_HALF_STRIPS_RUN2
static

◆ MAX_NUM_STRIPS_RUN1

constexpr int CSCConstants::MAX_NUM_STRIPS_RUN1 = MAX_CFEBS_RUN1 * NUM_STRIPS_PER_CFEB
static

◆ MAX_NUM_STRIPS_RUN2

constexpr int CSCConstants::MAX_NUM_STRIPS_RUN2 = MAX_CFEBS_RUN2 * NUM_STRIPS_PER_CFEB
static

Definition at line 65 of file CSCConstants.h.

Referenced by CSCCathodeLCTProcessor::run().

◆ NUM_DISTRIPS_PER_CFEB

constexpr int CSCConstants::NUM_DISTRIPS_PER_CFEB = 8
static

Definition at line 58 of file CSCConstants.h.

Referenced by CSCComparatorData::add(), and CSCComparatorData::comparatorDigis().

◆ NUM_HALF_STRIPS_ME11_GANGED

constexpr int CSCConstants::NUM_HALF_STRIPS_ME11_GANGED = NUM_CFEBS_ME11_GANGED * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 83 of file CSCConstants.h.

Referenced by LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME11_UNGANGED

constexpr int CSCConstants::NUM_HALF_STRIPS_ME11_UNGANGED = NUM_CFEBS_ME11_UNGANGED * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 84 of file CSCConstants.h.

Referenced by LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME12

constexpr int CSCConstants::NUM_HALF_STRIPS_ME12 = NUM_CFEBS_ME12 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 90 of file CSCConstants.h.

Referenced by LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME13

constexpr int CSCConstants::NUM_HALF_STRIPS_ME13 = NUM_CFEBS_ME13 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 91 of file CSCConstants.h.

Referenced by LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME1A_GANGED

constexpr int CSCConstants::NUM_HALF_STRIPS_ME1A_GANGED = NUM_CFEBS_ME1A_GANGED * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 80 of file CSCConstants.h.

Referenced by LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME1A_UNGANGED

constexpr int CSCConstants::NUM_HALF_STRIPS_ME1A_UNGANGED = NUM_CFEBS_ME1A_UNGANGED * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 81 of file CSCConstants.h.

Referenced by CSCDigiToRaw::add(), and LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME1B

constexpr int CSCConstants::NUM_HALF_STRIPS_ME1B = NUM_CFEBS_ME1B * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 82 of file CSCConstants.h.

Referenced by CSCDigiToRaw::add().

◆ NUM_HALF_STRIPS_ME21

constexpr int CSCConstants::NUM_HALF_STRIPS_ME21 = NUM_CFEBS_ME21 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 92 of file CSCConstants.h.

Referenced by LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME22

constexpr int CSCConstants::NUM_HALF_STRIPS_ME22 = NUM_CFEBS_ME22 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 93 of file CSCConstants.h.

Referenced by LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME31

constexpr int CSCConstants::NUM_HALF_STRIPS_ME31 = NUM_CFEBS_ME31 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 94 of file CSCConstants.h.

Referenced by LCTQualityControl::get_csc_max_halfstrip().

◆ NUM_HALF_STRIPS_ME32

constexpr int CSCConstants::NUM_HALF_STRIPS_ME32 = NUM_CFEBS_ME32 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 95 of file CSCConstants.h.

◆ NUM_HALF_STRIPS_ME41

constexpr int CSCConstants::NUM_HALF_STRIPS_ME41 = NUM_CFEBS_ME41 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 96 of file CSCConstants.h.

◆ NUM_HALF_STRIPS_ME42

constexpr int CSCConstants::NUM_HALF_STRIPS_ME42 = NUM_CFEBS_ME42 * NUM_HALF_STRIPS_PER_CFEB
static

Definition at line 97 of file CSCConstants.h.

◆ NUM_HALF_STRIPS_PER_CFEB

constexpr int CSCConstants::NUM_HALF_STRIPS_PER_CFEB = 2 * NUM_STRIPS_PER_CFEB
static

◆ NUM_STRIPS_ME1A_GANGED

constexpr int CSCConstants::NUM_STRIPS_ME1A_GANGED = NUM_CFEBS_ME1A_GANGED * NUM_STRIPS_PER_CFEB
static

◆ NUM_STRIPS_ME1A_UNGANGED

constexpr int CSCConstants::NUM_STRIPS_ME1A_UNGANGED = NUM_CFEBS_ME1A_UNGANGED * NUM_STRIPS_PER_CFEB
static

◆ NUM_STRIPS_ME1B

constexpr int CSCConstants::NUM_STRIPS_ME1B = NUM_CFEBS_ME1B * NUM_STRIPS_PER_CFEB
static

◆ NUM_STRIPS_PER_CFEB

constexpr int CSCConstants::NUM_STRIPS_PER_CFEB = 2 * NUM_DISTRIPS_PER_CFEB
static