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 
122  static const unsigned int def_mpc_block_me1a;
123  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
125  static const unsigned int def_tmb_l1a_window_size;
126 
128  void checkConfigParameters();
129 
130  void correlateLCTs(const CSCALCTDigi& bestALCT,
131  const CSCALCTDigi& secondALCT,
132  const CSCCLCTDigi& bestCLCT,
133  const CSCCLCTDigi& secondCLCT,
134  int type);
135 
136  // This method calculates all the TMB words and then passes them to the
137  // constructor of correlated LCTs.
138  CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT, int type, int trknmb) const;
139 
140  // CLCT pattern number: encodes the pattern number itself
141  unsigned int encodePattern(const int clctPattern) const;
142 
143  // 4-bit LCT quality number.Made by TMB lookup tables and used for MPC sorting.
144  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
145 
146  enum LCT_Quality {
147  INVALID = 0,
148  NO_CLCT = 1,
149  NO_ALCT = 2,
163  };
164 
166  void dumpConfigParams() const;
167 
168  /* encode high multiplicity bits for Run-3 exotic triggers */
169  void encodeHighMultiplicityBits(unsigned alctBits);
170 };
171 #endif
CSCMotherboard::run
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
Definition: CSCMotherboard.cc:127
CSCDBL1TPParameters
Definition: CSCDBL1TPParameters.h:14
CSCMotherboard::CLCT_LAYER_TRIGGER
Definition: CSCMotherboard.h:150
CSCMotherboard::match_trig_window_size
unsigned int match_trig_window_size
Definition: CSCMotherboard.h:99
CSCMotherboard::def_clct_trig_enable
static const unsigned int def_clct_trig_enable
Definition: CSCMotherboard.h:123
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:154
CSCMotherboard::correlateLCTs
void correlateLCTs(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, int type)
Definition: CSCMotherboard.cc:421
CSCMotherboard::findQuality
unsigned int findQuality(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
Definition: CSCMotherboard.cc:524
CSCCorrelatedLCTDigi.h
CSCMotherboard::def_alct_trig_enable
static const unsigned int def_alct_trig_enable
Definition: CSCMotherboard.h:123
CSCMotherboard::NO_ALCT
Definition: CSCMotherboard.h:149
CSCMotherboard
Definition: CSCMotherboard.h:41
CSCMotherboard::clear
void clear()
Definition: CSCMotherboard.cc:85
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:579
CSCMotherboard::CSCMotherboard
CSCMotherboard()
Definition: CSCMotherboard.cc:60
CSCMotherboard::NO_CLCT
Definition: CSCMotherboard.h:148
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:147
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:476
CSCMotherboard::HQ_RESERVED_1
Definition: CSCMotherboard.h:156
CSCMotherboard::HQ_PATTERN_4_5
Definition: CSCMotherboard.h:159
CSCMotherboard::dumpConfigParams
void dumpConfigParams() const
Definition: CSCMotherboard.cc:602
CSCMotherboard::def_tmb_l1a_window_size
static const unsigned int def_tmb_l1a_window_size
Definition: CSCMotherboard.h:125
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:153
CSCBaseboard
Definition: CSCBaseboard.h:15
CSCMotherboard::getLCTs
std::vector< CSCCorrelatedLCTDigi > getLCTs() const
Definition: CSCMotherboard.cc:406
CSCMotherboard::HQ_ACCEL_ALCT
Definition: CSCMotherboard.h:155
CSCMotherboard::early_tbins
int early_tbins
Definition: CSCMotherboard.h:108
CSCComparatorDigiCollection
CSCMotherboard::LOW_QUALITY
Definition: CSCMotherboard.h:151
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:158
CSCMotherboard::encodeHighMultiplicityBits
void encodeHighMultiplicityBits(unsigned alctBits)
Definition: CSCMotherboard.cc:630
CSCMotherboard::readoutLCTs
virtual std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
Definition: CSCMotherboard.cc:329
CSCMotherboard::getBXShiftedCLCT
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
Definition: CSCMotherboard.cc:624
CSCMotherboard::HQ_RESERVED_2
Definition: CSCMotherboard.h:157
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:104
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:160
CSCMotherboard::encodePattern
unsigned int encodePattern(const int clctPattern) const
Definition: CSCMotherboard.cc:514
CSCMotherboard::def_match_trig_window_size
static const unsigned int def_match_trig_window_size
Definition: CSCMotherboard.h:124
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:122
CSCMotherboard::def_match_trig_enable
static const unsigned int def_match_trig_enable
Definition: CSCMotherboard.h:124
CSCMotherboard::HQ_PATTERN_10
Definition: CSCMotherboard.h:162
CSCMotherboard::match_trig_enable
unsigned int match_trig_enable
Definition: CSCMotherboard.h:98
CSCMotherboard::MARGINAL_ANODE_CATHODE
Definition: CSCMotherboard.h:152
CSCMotherboard::getBXShiftedALCT
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
Definition: CSCMotherboard.cc:618
CSCMotherboard::LCT_Quality
LCT_Quality
Definition: CSCMotherboard.h:146
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:161