CMS 3D CMS Logo

CSCMotherboard.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCMotherboard_h
2 #define L1Trigger_CSCTriggerPrimitives_CSCMotherboard_h
3 
40 
41 class CSCMotherboard : public CSCBaseboard {
42 public:
44  CSCMotherboard(unsigned endcap,
45  unsigned station,
46  unsigned sector,
47  unsigned subsector,
48  unsigned chamber,
49  const edm::ParameterSet& conf);
50 
53 
55  ~CSCMotherboard() override = default;
56 
59  virtual void run(const CSCWireDigiCollection* wiredc, const CSCComparatorDigiCollection* compdc);
60 
62  virtual std::vector<CSCCorrelatedLCTDigi> readoutLCTs() const;
63 
65  std::vector<CSCCorrelatedLCTDigi> getLCTs() const;
66 
69  void clear();
70 
72  void setConfigParameters(const CSCDBL1TPParameters* conf);
73 
75  std::unique_ptr<CSCAnodeLCTProcessor> alctProc;
76 
78  std::unique_ptr<CSCCathodeLCTProcessor> clctProc;
79 
80  // VK: change to protected, to allow inheritance
81 protected:
82  /* Containers for reconstructed ALCTs and CLCTs */
83  std::vector<CSCALCTDigi> alctV;
84  std::vector<CSCCLCTDigi> clctV;
85 
88 
91 
92  // helper function to return ALCT/CLCT with correct central BX
95 
97  unsigned int mpc_block_me1a;
100 
103 
106 
109 
112 
116 
118  static const unsigned int def_mpc_block_me1a;
119  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
121  static const unsigned int def_tmb_l1a_window_size;
122 
124  void checkConfigParameters();
125 
126  void correlateLCTs(const CSCALCTDigi& bestALCT,
127  const CSCALCTDigi& secondALCT,
128  const CSCCLCTDigi& bestCLCT,
129  const CSCCLCTDigi& secondCLCT,
130  int type);
131 
132  // This method calculates all the TMB words and then passes them to the
133  // constructor of correlated LCTs.
134  CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT, int type, int trknmb) const;
135 
136  // CLCT pattern number: encodes the pattern number itself
137  unsigned int encodePattern(const int clctPattern) const;
138 
139  // 4-bit LCT quality number.Made by TMB lookup tables and used for MPC sorting.
140  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
141 
142  enum LCT_Quality {
143  INVALID = 0,
144  NO_CLCT = 1,
145  NO_ALCT = 2,
159  };
160 
162  void dumpConfigParams() const;
163 };
164 #endif
type
Definition: HCALResponse.h:21
std::vector< CSCCLCTDigi > clctV
unsigned int clct_trig_enable
unsigned int match_trig_window_size
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
static const unsigned int def_alct_trig_enable
void correlateLCTs(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, int type)
static const unsigned int def_mpc_block_me1a
CSCCorrelatedLCTDigi secondLCT[CSCConstants::MAX_LCT_TBINS]
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
static const unsigned int def_clct_trig_enable
unsigned int mpc_block_me1a
std::vector< CSCCorrelatedLCTDigi > getLCTs() const
~CSCMotherboard() override=default
static const unsigned int def_tmb_l1a_window_size
std::vector< CSCALCTDigi > alctV
unsigned int encodePattern(const int clctPattern) const
unsigned int tmb_l1a_window_size
void checkConfigParameters()
unsigned int match_trig_enable
CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
unsigned int findQuality(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
static const unsigned int def_match_trig_window_size
unsigned int alct_trig_enable
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
void dumpConfigParams() const
void setConfigParameters(const CSCDBL1TPParameters *conf)
static const unsigned int def_match_trig_enable
virtual std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
CSCCorrelatedLCTDigi firstLCT[CSCConstants::MAX_LCT_TBINS]