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 
41 
43 {
44  public:
46  CSCMotherboard(unsigned endcap, unsigned station, unsigned sector,
47  unsigned subsector, unsigned chamber,
48  const edm::ParameterSet& conf);
49 
52 
54  ~CSCMotherboard() override = default;
55 
58  virtual void run(const CSCWireDigiCollection* wiredc, const CSCComparatorDigiCollection* compdc);
59 
61  virtual std::vector<CSCCorrelatedLCTDigi> readoutLCTs() const;
62 
64  std::vector<CSCCorrelatedLCTDigi> getLCTs() const;
65 
68  void clear();
69 
71  void setConfigParameters(const CSCDBL1TPParameters* conf);
72 
74  std::unique_ptr<CSCAnodeLCTProcessor> alctProc;
75 
77  std::unique_ptr<CSCCathodeLCTProcessor> clctProc;
78 
79  // VK: change to protected, to allow inheritance
80  protected:
81 
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 with correct central BX
94 
96  unsigned int mpc_block_me1a;
99 
102 
105 
108 
111 
115 
117  static const unsigned int def_mpc_block_me1a;
118  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
120  static const unsigned int def_tmb_l1a_window_size;
121 
123  void checkConfigParameters();
124 
125  void correlateLCTs(const CSCALCTDigi& bestALCT, const CSCALCTDigi& secondALCT,
126  const CSCCLCTDigi& bestCLCT, const CSCCLCTDigi& secondCLCT,
127  int type);
128 
129  // This method calculates all the TMB words and then passes them to the
130  // constructor of correlated LCTs.
132  const CSCCLCTDigi& cLCT,
133  int type, int trknmb) const;
134 
135  // CLCT pattern number: encodes the pattern number itself
136  unsigned int encodePattern(const int clctPattern) const;
137 
138  // 4-bit LCT quality number.Made by TMB lookup tables and used for MPC sorting.
139  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
140 
142  INVALID = 0,
143  NO_CLCT = 1,
144  NO_ALCT = 2,
158  };
159 
161  void dumpConfigParams() const;
162 };
163 #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
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]