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 
127  /* quality control */
128  std::unique_ptr<LCTQualityControl> qualityControl_;
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  enum class LCT_Quality : unsigned int {
148  INVALID = 0,
149  NO_CLCT = 1,
150  NO_ALCT = 2,
151  CLCT_LAYER_TRIGGER = 3,
152  LOW_QUALITY = 4,
156  HQ_ACCEL_ALCT = 8,
157  HQ_RESERVED_1 = 9,
158  HQ_RESERVED_2 = 10,
159  HQ_PATTERN_2_3 = 11,
160  HQ_PATTERN_4_5 = 12,
161  HQ_PATTERN_6_7 = 13,
162  HQ_PATTERN_8_9 = 14,
163  HQ_PATTERN_10 = 15
164  };
165 
166  enum class LCT_QualityRun3 : unsigned int {
167  INVALID = 0,
168  LowQ = 1,
169  MedQ = 2,
170  HighQ = 3,
171  };
172 
173  LCT_Quality findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
174 
175  LCT_QualityRun3 findQualityRun3(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
176 
178  void dumpConfigParams() const;
179 
180  /* encode high multiplicity bits for Run-3 exotic triggers */
181  void encodeHighMultiplicityBits(unsigned alctBits);
182 };
183 #endif
CSCMotherboard::LCT_Quality::NO_CLCT
CSCMotherboard::run
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
Definition: CSCMotherboard.cc:131
CSCDBL1TPParameters
Definition: CSCDBL1TPParameters.h:14
CSCMotherboard::qualityControl_
std::unique_ptr< LCTQualityControl > qualityControl_
Definition: CSCMotherboard.h:128
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
CSCMotherboard::LCT_Quality::HQ_CATHODE_MARGINAL_ANODE
CSCMotherboard::LCT_Quality::NO_ALCT
relativeConstraints.station
station
Definition: relativeConstraints.py:67
CSCMotherboard::alctProc
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
Definition: CSCMotherboard.h:75
CSCMotherboard::correlateLCTs
void correlateLCTs(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, int type)
Definition: CSCMotherboard.cc:431
CSCMotherboard::LCT_Quality::CLCT_LAYER_TRIGGER
CSCMotherboard::findQuality
LCT_Quality findQuality(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
Definition: CSCMotherboard.cc:552
CSCCorrelatedLCTDigi.h
CSCMotherboard::def_alct_trig_enable
static const unsigned int def_alct_trig_enable
Definition: CSCMotherboard.h:123
CSCMotherboard
Definition: CSCMotherboard.h:41
CSCMotherboard::clear
void clear()
Definition: CSCMotherboard.cc:89
CSCMotherboard::clct_trig_enable
unsigned int clct_trig_enable
Definition: CSCMotherboard.h:98
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCMotherboard::LCT_QualityRun3::LowQ
CSCMotherboard::~CSCMotherboard
~CSCMotherboard() override=default
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCMotherboard::LCT_QualityRun3
LCT_QualityRun3
Definition: CSCMotherboard.h:166
CSCMotherboard::checkConfigParameters
void checkConfigParameters()
Definition: CSCMotherboard.cc:660
CSCMotherboard::CSCMotherboard
CSCMotherboard()
Definition: CSCMotherboard.cc:64
CSCMotherboard::clctV
std::vector< CSCCLCTDigi > clctV
Definition: CSCMotherboard.h:84
CSCMotherboard::clctProc
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
Definition: CSCMotherboard.h:78
CSCMotherboard::LCT_Quality::HQ_PATTERN_10
CSCMotherboard::alctV
std::vector< CSCALCTDigi > alctV
Definition: CSCMotherboard.h:83
CSCMotherboard::LCT_Quality::HQ_RESERVED_1
CSCMotherboard::constructLCTs
CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const
Definition: CSCMotherboard.cc:486
CSCMotherboard::LCT_Quality::LOW_QUALITY
CSCMotherboard::LCT_Quality::INVALID
CSCMotherboard::dumpConfigParams
void dumpConfigParams() const
Definition: CSCMotherboard.cc:683
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:65
CSCMotherboard::LCT_Quality::HQ_PATTERN_4_5
CSCMotherboard::LCT_Quality::HQ_RESERVED_2
CSCCathodeLCTProcessor.h
CSCMotherboard::findQualityRun3
LCT_QualityRun3 findQualityRun3(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
Definition: CSCMotherboard.cc:635
CSCAnodeLCTProcessor.h
edm::ParameterSet
Definition: ParameterSet.h:47
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
CSCMotherboard::LCT_Quality::HQ_PATTERN_8_9
CSCBaseboard
Definition: CSCBaseboard.h:14
CSCMotherboard::LCT_Quality::MARGINAL_ANODE_CATHODE
CSCMotherboard::getLCTs
std::vector< CSCCorrelatedLCTDigi > getLCTs() const
Definition: CSCMotherboard.cc:416
CSCMotherboard::early_tbins
int early_tbins
Definition: CSCMotherboard.h:108
createfilelist.int
int
Definition: createfilelist.py:10
CSCComparatorDigiCollection
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::encodeHighMultiplicityBits
void encodeHighMultiplicityBits(unsigned alctBits)
Definition: CSCMotherboard.cc:711
CSCMotherboard::readoutLCTs
virtual std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
Definition: CSCMotherboard.cc:332
CSCMotherboard::getBXShiftedCLCT
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
Definition: CSCMotherboard.cc:705
CSCMotherboard::tmb_l1a_window_size
unsigned int tmb_l1a_window_size
Definition: CSCMotherboard.h:99
CSCWireDigiCollection
CSCMotherboard::LCT_Quality::HQ_PATTERN_2_3
CSCMotherboard::setConfigParameters
void setConfigParameters(const CSCDBL1TPParameters *conf)
Definition: CSCMotherboard.cc:108
CSCMotherboard::LCT_Quality::HQ_ACCEL_ALCT
CSCMotherboard::highMultiplicityBits_
unsigned int highMultiplicityBits_
Definition: CSCMotherboard.h:118
CSCMotherboard::LCT_QualityRun3::HighQ
CSCALCTDigi
Definition: CSCALCTDigi.h:17
CSCMotherboard::alct_trig_enable
unsigned int alct_trig_enable
Definition: CSCMotherboard.h:98
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
CSCMotherboard::encodePattern
unsigned int encodePattern(const int clctPattern) const
Definition: CSCMotherboard.cc:542
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::LCT_Quality::HQ_ANODE_MARGINAL_CATHODE
CSCMotherboard::def_match_trig_enable
static const unsigned int def_match_trig_enable
Definition: CSCMotherboard.h:124
CSCMotherboard::match_trig_enable
unsigned int match_trig_enable
Definition: CSCMotherboard.h:98
CSCMotherboard::getBXShiftedALCT
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
Definition: CSCMotherboard.cc:699
CSCMotherboard::LCT_QualityRun3::INVALID
CSCMotherboard::LCT_QualityRun3::MedQ
CSCMotherboard::LCT_Quality
LCT_Quality
Definition: CSCMotherboard.h:147
CSCMotherboard::firstLCT
CSCCorrelatedLCTDigi firstLCT[CSCConstants::MAX_LCT_TBINS]
Definition: CSCMotherboard.h:87
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19
CSCMotherboard::LCT_Quality::HQ_PATTERN_6_7