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 
117  // encode special bits for high-multiplicity triggers
118  unsigned int highMultiplicityBits_;
120 
121  // Use the new patterns according to the comparator code format
123 
125  static const unsigned int def_mpc_block_me1a;
126  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
128  static const unsigned int def_tmb_l1a_window_size;
129 
131  void checkConfigParameters();
132 
133  void correlateLCTs(const CSCALCTDigi& bestALCT,
134  const CSCALCTDigi& secondALCT,
135  const CSCCLCTDigi& bestCLCT,
136  const CSCCLCTDigi& secondCLCT,
137  int type);
138 
139  // This method calculates all the TMB words and then passes them to the
140  // constructor of correlated LCTs.
141  CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT, int type, int trknmb) const;
142 
143  // CLCT pattern number: encodes the pattern number itself
144  unsigned int encodePattern(const int clctPattern) const;
145 
146  // 4-bit LCT quality number.Made by TMB lookup tables and used for MPC sorting.
147  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
148 
149  enum LCT_Quality {
150  INVALID = 0,
151  NO_CLCT = 1,
152  NO_ALCT = 2,
166  };
167 
169  void dumpConfigParams() const;
170 
171  // Check if the LCT is valid
172  void checkValid(const CSCCorrelatedLCTDigi& lct) const;
173 
174  /* encode high multiplicity bits for Run-3 exotic triggers */
175  void encodeHighMultiplicityBits(unsigned alctBits);
176 };
177 #endif
CSCMotherboard::run
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
Definition: CSCMotherboard.cc:130
CSCDBL1TPParameters
Definition: CSCDBL1TPParameters.h:14
CSCMotherboard::CLCT_LAYER_TRIGGER
Definition: CSCMotherboard.h:153
CSCMotherboard::match_trig_window_size
unsigned int match_trig_window_size
Definition: CSCMotherboard.h:99
CSCMotherboard::checkValid
void checkValid(const CSCCorrelatedLCTDigi &lct) const
Definition: CSCMotherboard.cc:647
CSCMotherboard::def_clct_trig_enable
static const unsigned int def_clct_trig_enable
Definition: CSCMotherboard.h:126
CSCMotherboard::mpc_block_me1a
unsigned int mpc_block_me1a
Definition: CSCMotherboard.h:97
CSCMotherboard::drop_used_alcts
bool drop_used_alcts
Definition: CSCMotherboard.h:102
CSCMotherboard::secondLCT
CSCCorrelatedLCTDigi secondLCT[CSCConstants::MAX_LCT_TBINS]
Definition: CSCMotherboard.h:90
CSCMotherboard::useHighMultiplicityBits_
bool useHighMultiplicityBits_
Definition: CSCMotherboard.h:119
relativeConstraints.station
station
Definition: relativeConstraints.py:67
CSCMotherboard::alctProc
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
Definition: CSCMotherboard.h:75
CSCMotherboard::HQ_CATHODE_MARGINAL_ANODE
Definition: CSCMotherboard.h:157
CSCMotherboard::correlateLCTs
void correlateLCTs(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, int type)
Definition: CSCMotherboard.cc:429
CSCMotherboard::findQuality
unsigned int findQuality(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
Definition: CSCMotherboard.cc:532
CSCCorrelatedLCTDigi.h
CSCMotherboard::def_alct_trig_enable
static const unsigned int def_alct_trig_enable
Definition: CSCMotherboard.h:126
CSCMotherboard::NO_ALCT
Definition: CSCMotherboard.h:152
CSCMotherboard
Definition: CSCMotherboard.h:41
CSCMotherboard::clear
void clear()
Definition: CSCMotherboard.cc:88
CSCMotherboard::clct_trig_enable
unsigned int clct_trig_enable
Definition: CSCMotherboard.h:98
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCMotherboard::~CSCMotherboard
~CSCMotherboard() override=default
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCMotherboard::checkConfigParameters
void checkConfigParameters()
Definition: CSCMotherboard.cc:587
CSCMotherboard::CSCMotherboard
CSCMotherboard()
Definition: CSCMotherboard.cc:63
CSCMotherboard::NO_CLCT
Definition: CSCMotherboard.h:151
CSCMotherboard::clctV
std::vector< CSCCLCTDigi > clctV
Definition: CSCMotherboard.h:84
CSCMotherboard::clctProc
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
Definition: CSCMotherboard.h:78
CSCMotherboard::INVALID
Definition: CSCMotherboard.h:150
CSCMotherboard::alctV
std::vector< CSCALCTDigi > alctV
Definition: CSCMotherboard.h:83
CSCMotherboard::constructLCTs
CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const
Definition: CSCMotherboard.cc:484
CSCMotherboard::HQ_RESERVED_1
Definition: CSCMotherboard.h:159
CSCMotherboard::HQ_PATTERN_4_5
Definition: CSCMotherboard.h:162
CSCMotherboard::dumpConfigParams
void dumpConfigParams() const
Definition: CSCMotherboard.cc:610
CSCMotherboard::def_tmb_l1a_window_size
static const unsigned int def_tmb_l1a_window_size
Definition: CSCMotherboard.h:128
CSCConstants::MAX_LCT_TBINS
Definition: CSCConstants.h:63
CSCCathodeLCTProcessor.h
CSCAnodeLCTProcessor.h
edm::ParameterSet
Definition: ParameterSet.h:36
CSCMotherboard::HQ_ANODE_MARGINAL_CATHODE
Definition: CSCMotherboard.h:156
CSCBaseboard
Definition: CSCBaseboard.h:15
CSCMotherboard::getLCTs
std::vector< CSCCorrelatedLCTDigi > getLCTs() const
Definition: CSCMotherboard.cc:414
CSCMotherboard::HQ_ACCEL_ALCT
Definition: CSCMotherboard.h:158
CSCMotherboard::use_run3_patterns_
bool use_run3_patterns_
Definition: CSCMotherboard.h:122
CSCMotherboard::early_tbins
int early_tbins
Definition: CSCMotherboard.h:108
CSCComparatorDigiCollection
CSCMotherboard::LOW_QUALITY
Definition: CSCMotherboard.h:154
CSCMotherboard::readout_earliest_2
bool readout_earliest_2
Definition: CSCMotherboard.h:111
CSCMotherboard::drop_used_clcts
bool drop_used_clcts
Definition: CSCMotherboard.h:105
CSCMotherboard::HQ_PATTERN_2_3
Definition: CSCMotherboard.h:161
CSCMotherboard::encodeHighMultiplicityBits
void encodeHighMultiplicityBits(unsigned alctBits)
Definition: CSCMotherboard.cc:638
CSCMotherboard::readoutLCTs
virtual std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
Definition: CSCMotherboard.cc:331
CSCMotherboard::getBXShiftedCLCT
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
Definition: CSCMotherboard.cc:632
CSCMotherboard::HQ_RESERVED_2
Definition: CSCMotherboard.h:160
CSCMotherboard::tmb_l1a_window_size
unsigned int tmb_l1a_window_size
Definition: CSCMotherboard.h:99
type
type
Definition: HCALResponse.h:21
CSCWireDigiCollection
CSCMotherboard::setConfigParameters
void setConfigParameters(const CSCDBL1TPParameters *conf)
Definition: CSCMotherboard.cc:107
CSCMotherboard::highMultiplicityBits_
unsigned int highMultiplicityBits_
Definition: CSCMotherboard.h:118
CSCALCTDigi
Definition: CSCALCTDigi.h:16
CSCMotherboard::alct_trig_enable
unsigned int alct_trig_enable
Definition: CSCMotherboard.h:98
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
CSCMotherboard::HQ_PATTERN_6_7
Definition: CSCMotherboard.h:163
CSCMotherboard::encodePattern
unsigned int encodePattern(const int clctPattern) const
Definition: CSCMotherboard.cc:522
CSCMotherboard::def_match_trig_window_size
static const unsigned int def_match_trig_window_size
Definition: CSCMotherboard.h:127
CSCMotherboard::clct_to_alct
bool clct_to_alct
Definition: CSCMotherboard.h:115
CSCMotherboard::def_mpc_block_me1a
static const unsigned int def_mpc_block_me1a
Definition: CSCMotherboard.h:125
CSCMotherboard::def_match_trig_enable
static const unsigned int def_match_trig_enable
Definition: CSCMotherboard.h:127
CSCMotherboard::HQ_PATTERN_10
Definition: CSCMotherboard.h:165
CSCMotherboard::match_trig_enable
unsigned int match_trig_enable
Definition: CSCMotherboard.h:98
CSCMotherboard::MARGINAL_ANODE_CATHODE
Definition: CSCMotherboard.h:155
CSCMotherboard::getBXShiftedALCT
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
Definition: CSCMotherboard.cc:626
CSCMotherboard::LCT_Quality
LCT_Quality
Definition: CSCMotherboard.h:149
CSCMotherboard::firstLCT
CSCCorrelatedLCTDigi firstLCT[CSCConstants::MAX_LCT_TBINS]
Definition: CSCMotherboard.h:87
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19
CSCMotherboard::HQ_PATTERN_8_9
Definition: CSCMotherboard.h:164