CMS 3D CMS Logo

LCTQualityAssignment.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_LCTQualityAssignment_h
2 #define L1Trigger_CSCTriggerPrimitives_LCTQualityAssignment_h
3 
21 
23 public:
24  // 4-bit LCT quality number. Made by TMB lookup tables and used for MPC sorting.
25  enum class LCT_QualityRun2 : unsigned int {
26  INVALID = 0,
27  NO_CLCT = 1,
28  NO_ALCT = 2,
30  LOW_QUALITY = 4,
34  HQ_ACCEL_ALCT = 8,
35  HQ_RESERVED_1 = 9,
36  HQ_RESERVED_2 = 10,
37  HQ_PATTERN_2_3 = 11,
38  HQ_PATTERN_4_5 = 12,
39  HQ_PATTERN_6_7 = 13,
40  HQ_PATTERN_8_9 = 14,
41  HQ_PATTERN_10 = 15
42  };
43 
44  // See DN-20-016
45  enum class LCT_QualityRun3 : unsigned int { INVALID = 0, LowQ = 1, MedQ = 2, HighQ = 3 };
46 
47  // See DN-20-016
48  enum class LCT_QualityRun3GEM : unsigned int {
49  INVALID = 0,
50  CLCT_2GEM = 1,
51  ALCT_2GEM = 2,
52  ALCT_CLCT = 3,
57  };
58 
59  // constructor
61  unsigned station,
62  unsigned sector,
63  unsigned subsector,
64  unsigned chamber,
66 
68  ~LCTQualityAssignment() override {}
69 
70  // setter
71  void setGEMCSCBending(const bool setBend) { assignGEMCSCBending_ = setBend; }
72 
73  // quality for all LCTs in Run-1/2 or Run-3
74  unsigned findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
75  unsigned findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT, const GEMInternalCluster& cl) const;
76  unsigned findQuality(const CSCALCTDigi& aLCT, const GEMInternalCluster& cl) const;
77  unsigned findQuality(const CSCCLCTDigi& cLCT, const GEMInternalCluster& cl) const;
78 
79 private:
80  // quality for all LCTs in Run-1 and Run-2 (run-3 mode off)
81  unsigned findQualityRun2(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
82 
83  // quality for non-ME1/1 LCTs in Run-3 without GEMs (run-3 mode on)
84  unsigned findQualityRun3(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
85 
86  // quality for LCTs in Run-3 with GEMs (CCLUT off)
87  // old-style to be compatible with EMTF Run-2
88  unsigned findQualityGEMv1(const CSCCLCTDigi&, const GEMInternalCluster& cl) const;
89  unsigned findQualityGEMv1(const CSCALCTDigi&, const CSCCLCTDigi&, const GEMInternalCluster& cl) const;
90 
91  // quality for LCTs in Run-3 with GEMs (CCLUT on)
92  unsigned findQualityGEMv2(const CSCALCTDigi&, const CSCCLCTDigi&, const GEMInternalCluster& cl) const;
93 
95  bool runILT_;
96 };
97 
98 #endif
LCTQualityAssignment(unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, CSCBaseboard::Parameters &conf)
unsigned findQuality(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
unsigned findQualityRun3(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
unsigned findQualityGEMv1(const CSCCLCTDigi &, const GEMInternalCluster &cl) const
unsigned findQualityGEMv2(const CSCALCTDigi &, const CSCCLCTDigi &, const GEMInternalCluster &cl) const
unsigned findQualityRun2(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
void setGEMCSCBending(const bool setBend)