CMS 3D CMS Logo

LCTQualityControl.cc
Go to the documentation of this file.
3 #include <unordered_map>
4 
5 // constructor
7  unsigned station,
8  unsigned sector,
9  unsigned subsector,
10  unsigned chamber,
11  const edm::ParameterSet& conf)
12  : CSCBaseboard(endcap, station, sector, subsector, chamber, conf) {
13  nplanes_clct_hit_pattern = clctParams_.getParameter<unsigned int>("clctNplanesHitPattern");
14 }
15 
16 // Check if the ALCT is valid
19 }
20 
22  int value, int min_value, int max_value, const std::string& comment, unsigned& errors) const {
23  if (value < min_value or value > max_value) {
24  edm::LogError("LCTQualityControl") << comment << value << "; allowed [" << min_value << ", " << max_value << "]";
25  errors++;
26  }
27 }
28 
29 template <class T>
30 void LCTQualityControl::reportErrors(const T& lct, const unsigned errors) const {
31  if (errors > 0) {
32  edm::LogError("LCTQualityControl") << "Invalid stub in " << cscId_ << " (" << errors << " errors):\n" << lct;
33  }
34 }
35 
36 // Check if the ALCT is valid
37 void LCTQualityControl::checkValid(const CSCALCTDigi& alct, unsigned max_stubs) const {
38  const unsigned max_wiregroup = get_csc_max_wiregroup(theStation, theRing);
39  const auto& [min_quality, max_quality] = get_csc_alct_min_max_quality();
40 
41  unsigned errors = 0;
42 
43  // stub must be valid
44  checkRange(alct.isValid(), 1, 1, "CSCALCTDigi with invalid bit set: ", errors);
45 
46  // ALCT number is 1 or 2
47  checkRange(alct.getTrknmb(), 1, max_stubs, "CSCALCTDigi with invalid track number: ", errors);
48 
49  // ALCT quality must be valid
50  // number of layers - 3
51  checkRange(alct.getQuality(), min_quality, max_quality, "CSCALCTDigi with invalid quality: ", errors);
52 
53  // ALCT key wire-group must be within bounds
54  checkRange(alct.getKeyWG(), 0, max_wiregroup - 1, "CSCALCTDigi with invalid wire-group: ", errors);
55 
56  // ALCT with out-of-time BX
57  checkRange(alct.getBX(), 0, CSCConstants::MAX_ALCT_TBINS - 1, "CSCALCTDigi with invalid BX: ", errors);
58 
59  // ALCT is neither accelerator or collision
60  checkRange(alct.getCollisionB(), 0, 1, "CSCALCTDigi with invalid accel/coll biit: ", errors);
61 
62  reportErrors(alct, errors);
63 }
64 
65 // Check if the CLCT is valid
66 void LCTQualityControl::checkValid(const CSCCLCTDigi& clct, unsigned max_stubs) const {
67  const unsigned max_strip = get_csc_max_halfstrip(theStation, theRing);
68  const auto& [min_pattern_run2, max_pattern_run2] = get_csc_min_max_pattern();
69  const auto& [min_pattern_run3, max_pattern_run3] = get_csc_min_max_pattern_run3();
70  const auto& [min_slope, max_slope] = get_csc_clct_min_max_slope();
71  const auto& [min_cfeb, max_cfeb] = get_csc_min_max_cfeb();
72  const auto& [min_quality, max_quality] = get_csc_clct_min_max_quality();
73 
74  unsigned errors = 0;
75 
76  // CLCT must be valid
77  checkRange(clct.isValid(), 1, 1, "CSCCLCTDigi with invalid bit set: ", errors);
78 
79  // CLCT number is 1 or max
80  checkRange(clct.getTrknmb(), 1, max_stubs, "CSCCLCTDigi with invalid track number: ", errors);
81 
82  // CLCT quality must be valid
83  // CLCTs require at least 4 layers hit
84  // Run-3: ME1/1 CLCTs require only 3 layers
85  // Run-4: ME2/1 CLCTs require only 3 layers
86  checkRange(clct.getQuality(), min_quality, max_quality, "CSCCLCTDigi with invalid quality: ", errors);
87 
88  // CLCT half-strip must be within bounds
89  checkRange(
90  clct.getStrip(), 0, CSCConstants::NUM_HALF_STRIPS_PER_CFEB - 1, "CSCCLCTDigi with invalid half-strip: ", errors);
91 
92  // CLCT key half-strip must be within bounds
93  checkRange(clct.getKeyStrip(), 0, max_strip - 1, "CSCCLCTDigi with invalid key half-strip: ", errors);
94 
95  // CLCT with out-of-time BX
96  checkRange(clct.getBX(), 0, CSCConstants::MAX_CLCT_TBINS - 1, "CSCCLCTDigi with invalid BX: ", errors);
97 
98  // CLCT with neither left nor right bending
99  checkRange(clct.getBend(), 0, 1, "CSCCLCTDigi with invalid bending: ", errors);
100 
101  // CLCT with an invalid pattern ID
102  checkRange(
103  clct.getPattern(), min_pattern_run2, max_pattern_run2, "CSCCLCTDigi with invalid Run-2 pattern ID: ", errors);
104 
105  // CLCT with an invalid pattern ID
106  checkRange(
107  clct.getRun3Pattern(), min_pattern_run3, max_pattern_run3, "CSCCLCTDigi with invalid Run-3 pattern ID: ", errors);
108 
109  // CLCT with an invalid slope
110  checkRange(clct.getSlope(), min_slope, max_slope, "CSCCLCTDigi with invalid slope: ", errors);
111 
112  // CLCT with an invalid CFEB ID
113  checkRange(clct.getCFEB(), min_cfeb, max_cfeb, "CSCCLCTDigi with invalid CFEB ID: ", errors);
114 
115  if (runCCLUT_) {
116  // CLCT comparator code is invalid
117  checkRange(clct.getCompCode(), 0, std::pow(2, 12) - 1, "CSCCLCTDigi with invalid comparator code: ", errors);
118 
119  const unsigned max_quartstrip = get_csc_max_quartstrip(theStation, theRing);
120  const unsigned max_eighthstrip = get_csc_max_eighthstrip(theStation, theRing);
121 
122  // CLCT key quart-strip must be within bounds
123  checkRange(clct.getKeyStrip(4), 0, max_quartstrip - 1, "CSCCLCTDigi with invalid key quart-strip: ", errors);
124 
125  // CLCT key eighth-strip must be within bounds
126  checkRange(clct.getKeyStrip(8), 0, max_eighthstrip - 1, "CSCCLCTDigi with invalid key quart-strip: ", errors);
127  }
128 
129  reportErrors(clct, errors);
130 }
131 
133 
134 void LCTQualityControl::checkValid(const CSCCorrelatedLCTDigi& lct, unsigned station, unsigned ring) const {
135  const unsigned max_strip = get_csc_max_halfstrip(station, ring);
136  const unsigned max_quartstrip = get_csc_max_quartstrip(station, ring);
137  const unsigned max_eighthstrip = get_csc_max_eighthstrip(station, ring);
138  const unsigned max_wiregroup = get_csc_max_wiregroup(station, ring);
139  const auto& [min_pattern_run2, max_pattern_run2] = get_csc_min_max_pattern();
140  const auto& [min_pattern_run3, max_pattern_run3] = get_csc_min_max_pattern_run3();
141  const auto& [min_quality, max_quality] = get_csc_lct_min_max_quality(station, ring);
142 
143  unsigned errors = 0;
144 
145  // LCT must be valid
146  checkRange(lct.isValid(), 1, 1, "CSCCorrelatedLCTDigi with invalid bit set: ", errors);
147 
148  // LCT number is 1 or 2
149  checkRange(lct.getTrknmb(), 1, 2, "CSCCorrelatedLCTDigi with invalid track number: ", errors);
150 
151  // LCT quality must be valid
152  checkRange(lct.getQuality(), min_quality, max_quality, "CSCCorrelatedLCTDigi with invalid quality: ", errors);
153 
154  // LCT key half-strip must be within bounds
155  checkRange(lct.getStrip(), 0, max_strip - 1, "CSCCorrelatedLCTDigi with invalid key half-strip: ", errors);
156 
157  // LCT key quart-strip must be within bounds
158  checkRange(lct.getStrip(4), 0, max_quartstrip - 1, "CSCCorrelatedLCTDigi with invalid key quart-strip: ", errors);
159 
160  // LCT key eighth-strip must be within bounds
161  checkRange(lct.getStrip(8), 0, max_eighthstrip - 1, "CSCCorrelatedLCTDigi with invalid key eighth-strip: ", errors);
162 
163  // LCT key wire-group must be within bounds
164  checkRange(lct.getKeyWG(), 0, max_wiregroup - 1, "CSCCorrelatedLCTDigi with invalid wire-group: ", errors);
165 
166  // LCT with out-of-time BX
167  checkRange(lct.getBX(), 0, CSCConstants::MAX_LCT_TBINS - 1, "CSCCorrelatedLCTDigi with invalid BX: ", errors);
168 
169  // LCT with neither left nor right bending
170  checkRange(lct.getBend(), 0, 1, "CSCCorrelatedLCTDigi with invalid bending: ", errors);
171 
172  // LCT with invalid MPC link
173  checkRange(lct.getMPCLink(), 0, CSCConstants::MAX_LCTS_PER_MPC, "CSCCorrelatedLCTDigi with MPC link: ", errors);
174 
175  // LCT with invalid CSCID
176  checkRange(lct.getCSCID(),
179  "CSCCorrelatedLCTDigi with invalid CSCID: ",
180  errors);
181 
182  // LCT with an invalid pattern ID
183  checkRange(lct.getPattern(),
184  min_pattern_run2,
185  max_pattern_run2,
186  "CSCCorrelatedLCTDigi with invalid Run-2 pattern ID: ",
187  errors);
188 
190  min_pattern_run3,
191  max_pattern_run3,
192  "CSCCorrelatedLCTDigi with invalid Run-3 pattern ID: ",
193  errors);
194 
195  // simulated LCT type must be valid
198  edm::LogError("LCTQualityControl") << "CSCCorrelatedLCTDigi with invalid type (SIM): " << lct.getType()
199  << "; allowed [" << CSCCorrelatedLCTDigi::ALCTCLCT << ", "
201  errors++;
202  }
203 
204  // non-GEM-CSC stations ALWAYS send out ALCTCLCT type LCTs
205  if (!isME11_ and !isME21_) {
207  edm::LogError("LCTQualityControl") << "CSCCorrelatedLCTDigi with invalid type (SIM) in this station: "
208  << lct.getType() << "; allowed [" << CSCCorrelatedLCTDigi::ALCTCLCT << "]";
209  errors++;
210  }
211  }
212 
213  // GEM-CSC stations can send out GEM-type LCTs ONLY when the ILT is turned on!
214  if ((isME11_ and !runME11ILT_) or (isME21_ and !runME21ILT_)) {
216  edm::LogError("LCTQualityControl") << "CSCCorrelatedLCTDigi with invalid type (SIM) with GEM-CSC trigger not on: "
217  << lct.getType() << "; allowed [" << CSCCorrelatedLCTDigi::ALCTCLCT << "]";
218  errors++;
219  }
220  }
221 
222  // GEM-CSC types must have at least one valid GEM hit
225  !lct.getGEM1().isValid() and !lct.getGEM2().isValid()) {
226  edm::LogError("LCTQualityControl") << "CSCCorrelatedLCTDigi with valid GEM-CSC type (SIM) has no valid GEM hits: "
227  << lct.getType();
228  errors++;
229  }
230 
231  // LCT type does not agree with the LCT quality when CCLUT is on
232  if (runCCLUT_) {
233  const bool ME11ILT(isME11_ and runME11ILT_);
234  const bool ME21ILT(isME21_ and runME21ILT_);
235 
236  // GEM-CSC cases
237  if (ME11ILT or ME21ILT) {
238  const bool case1(lct.getType() == CSCCorrelatedLCTDigi::ALCT2GEM and
239  lct.getQuality() == static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_2GEM));
240  const bool case2(lct.getType() == CSCCorrelatedLCTDigi::CLCT2GEM and
241  lct.getQuality() == static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3GEM::CLCT_2GEM));
242  const bool case3(lct.getType() == CSCCorrelatedLCTDigi::ALCTCLCTGEM and
243  lct.getQuality() ==
245  const bool case4(lct.getType() == CSCCorrelatedLCTDigi::ALCTCLCTGEM and
246  lct.getQuality() ==
248  const bool case5(lct.getType() == CSCCorrelatedLCTDigi::ALCTCLCT2GEM and
249  lct.getQuality() ==
251  const bool case6(lct.getType() == CSCCorrelatedLCTDigi::ALCTCLCT2GEM and
252  lct.getQuality() ==
254  const bool case7(lct.getType() == CSCCorrelatedLCTDigi::ALCTCLCT and
255  lct.getQuality() == static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_CLCT));
256 
257  if (!(case1 or case2 or case3 or case4 or case5 or case6 or case7)) {
258  edm::LogError("LCTQualityControl")
259  << "CSCCorrelatedLCTDigi with valid GEM-CSC type (SIM) has no matching Run-3 quality: " << lct.getType()
260  << " " << lct.getQuality();
261  errors++;
262  }
263  }
264 
265  // regular cases
266  else {
267  const bool case1(lct.getType() == CSCCorrelatedLCTDigi::ALCTCLCT and
268  lct.getQuality() == static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3::LowQ));
269  const bool case2(lct.getType() == CSCCorrelatedLCTDigi::ALCTCLCT and
270  lct.getQuality() == static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3::MedQ));
271  const bool case3(lct.getType() == CSCCorrelatedLCTDigi::ALCTCLCT and
272  lct.getQuality() == static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3::HighQ));
273  if (!(case1 or case2 or case3)) {
274  edm::LogError("LCTQualityControl")
275  << "CSCCorrelatedLCTDigi with invalid CSC type (SIM) has no matching Run-3 quality: " << lct.getType()
276  << " " << lct.getQuality();
277  errors++;
278  }
279  }
280  }
281  reportErrors(lct, errors);
282 }
283 
284 void LCTQualityControl::checkMultiplicityBX(const std::vector<CSCALCTDigi>& collection) const {
286 }
287 
288 void LCTQualityControl::checkMultiplicityBX(const std::vector<CSCCLCTDigi>& collection) const {
290 }
291 
292 void LCTQualityControl::checkMultiplicityBX(const std::vector<CSCCorrelatedLCTDigi>& collection) const {
294 }
295 
297  // PID 2 is actually a left-bending pattern with a negative slope
298  // PID 3 is actually a right-bending pattern with a positive slope
299  int slopeList[CSCConstants::NUM_CLCT_PATTERNS] = {0, 0, -8, 8, -6, 6, -4, 4, -2, 2, 0};
300  return slopeList[pattern];
301 }
302 
304  int min_slope, max_slope;
305  // Run-3 case with CCLUT
306  // 5-bit number (includes the L/R bending)
307  if (runCCLUT_) {
308  min_slope = 0;
309  max_slope = 15;
310  }
311  // Run-1 or Run-2 case
312  // Run-3 case without CCLUT
313  else {
314  min_slope = -10;
315  max_slope = 10;
316  }
317 
318  return std::make_pair(min_slope, max_slope);
319 }
320 
321 // Number of halfstrips and wiregroups
322 // +----------------------------+------------+------------+
323 // | Chamber type | Num of | Num of |
324 // | | halfstrips | wiregroups |
325 // +----------------------------+------------+------------+
326 // | ME1/1a | 96 | 48 |
327 // | ME1/1b | 128 | 48 |
328 // | ME1/2 | 160 | 64 |
329 // | ME1/3 | 128 | 32 |
330 // | ME2/1 | 160 | 112 |
331 // | ME3/1, ME4/1 | 160 | 96 |
332 // | ME2/2, ME3/2, ME4/2 | 160 | 64 |
333 // +----------------------------+------------+------------+
334 
335 unsigned LCTQualityControl::get_csc_max_wiregroup(unsigned station, unsigned ring) const {
336  unsigned max_wiregroup = 0;
337  if (station == 1 && ring == 4) { // ME1/1a
338  max_wiregroup = CSCConstants::NUM_WIREGROUPS_ME11;
339  } else if (station == 1 && ring == 1) { // ME1/1b
340  max_wiregroup = CSCConstants::NUM_WIREGROUPS_ME11;
341  } else if (station == 1 && ring == 2) { // ME1/2
342  max_wiregroup = CSCConstants::NUM_WIREGROUPS_ME12;
343  } else if (station == 1 && ring == 3) { // ME1/3
344  max_wiregroup = CSCConstants::NUM_WIREGROUPS_ME13;
345  } else if (station == 2 && ring == 1) { // ME2/1
346  max_wiregroup = CSCConstants::NUM_WIREGROUPS_ME21;
347  } else if (station >= 3 && ring == 1) { // ME3/1, ME4/1
348  max_wiregroup = CSCConstants::NUM_WIREGROUPS_ME31;
349  } else if (station >= 2 && ring == 2) { // ME2/2, ME3/2, ME4/2
350  max_wiregroup = CSCConstants::NUM_WIREGROUPS_ME22;
351  }
352  return max_wiregroup;
353 }
354 
355 unsigned LCTQualityControl::get_csc_max_halfstrip(unsigned station, unsigned ring) const {
356  unsigned max_half_strip = 0;
357  // ME1/1a
358  if (station == 1 && ring == 4 and gangedME1a_) {
360  } else if (station == 1 && ring == 4 and !gangedME1a_) {
362  }
363  // ME1/1b
364  // In the CSC local trigger
365  // ME1/a is taken together with ME1/b
366  else if (station == 1 && ring == 1 and gangedME1a_) {
368  } else if (station == 1 && ring == 1 and !gangedME1a_) {
370  }
371  // ME1/2
372  else if (station == 1 && ring == 2) {
373  max_half_strip = CSCConstants::NUM_HALF_STRIPS_ME12;
374  }
375  // ME1/3
376  else if (station == 1 && ring == 3) {
377  max_half_strip = CSCConstants::NUM_HALF_STRIPS_ME13;
378  }
379  // ME2/1
380  else if (station == 2 && ring == 1) {
381  max_half_strip = CSCConstants::NUM_HALF_STRIPS_ME21;
382  }
383  // ME3/1, ME4/1
384  else if (station >= 3 && ring == 1) {
385  max_half_strip = CSCConstants::NUM_HALF_STRIPS_ME31;
386  }
387  // ME2/2, ME3/2, ME4/2
388  else if (station >= 2 && ring == 2) {
389  max_half_strip = CSCConstants::NUM_HALF_STRIPS_ME22;
390  }
391  return max_half_strip;
392 }
393 
394 unsigned LCTQualityControl::get_csc_max_quartstrip(unsigned station, unsigned ring) const {
395  return get_csc_max_halfstrip(station, ring) * 2;
396 }
397 
398 unsigned LCTQualityControl::get_csc_max_eighthstrip(unsigned station, unsigned ring) const {
399  return get_csc_max_halfstrip(station, ring) * 4;
400 }
401 
402 std::pair<unsigned, unsigned> LCTQualityControl::get_csc_min_max_cfeb() const {
403  // counts at 0!
404  unsigned min_cfeb = 0;
405  unsigned max_cfeb = 0;
406 
407  // ME1/1a
408  if (theStation == 1 && theRing == 4 and gangedME1a_) {
410  } else if (theStation == 1 && theRing == 4 and !gangedME1a_) {
412  }
413  // ME1/1b
414  // In the CSC local trigger
415  // ME1/a is taken together with ME1/b
416  else if (theStation == 1 && theRing == 1 and gangedME1a_) {
418  } else if (theStation == 1 && theRing == 1 and !gangedME1a_) {
420  }
421  // ME1/2
422  else if (theStation == 1 && theRing == 2) {
423  max_cfeb = CSCConstants::NUM_CFEBS_ME12;
424  }
425  // ME1/3
426  else if (theStation == 1 && theRing == 3) {
427  max_cfeb = CSCConstants::NUM_CFEBS_ME13;
428  }
429  // ME2/1
430  else if (theStation == 2 && theRing == 1) {
431  max_cfeb = CSCConstants::NUM_CFEBS_ME21;
432  }
433  // ME3/1, ME4/1
434  else if (theStation >= 3 && theRing == 1) {
435  max_cfeb = CSCConstants::NUM_CFEBS_ME31;
436  }
437  // ME2/2, ME3/2, ME4/2
438  else if (theStation >= 2 && theRing == 2) {
439  max_cfeb = CSCConstants::NUM_CFEBS_ME22;
440  }
441  return std::make_pair(min_cfeb, max_cfeb - 1);
442 }
443 
444 std::pair<unsigned, unsigned> LCTQualityControl::get_csc_min_max_pattern() const { return std::make_pair(2, 10); }
445 
446 std::pair<unsigned, unsigned> LCTQualityControl::get_csc_min_max_pattern_run3() const { return std::make_pair(0, 4); }
447 
448 std::pair<unsigned, unsigned> LCTQualityControl::get_csc_lct_min_max_pattern() const {
449  unsigned min_pattern, max_pattern;
450  // Run-1 or Run-2 case
451  if (!runCCLUT_) {
452  min_pattern = 2;
453  max_pattern = 10;
454  }
455  // Run-3 case: pattern Id is interpreted as the slope!
456  else {
457  min_pattern = 0;
458  max_pattern = 15;
459  }
460  return std::make_pair(min_pattern, max_pattern);
461 }
462 
463 std::pair<unsigned, unsigned> LCTQualityControl::get_csc_alct_min_max_quality() const {
464  // quality is number of layers - 3
465  // at least 4 layers for CSC-only trigger
466  unsigned min_quality = 1;
467  if (isME21_ and runME21ILT_) {
468  // at least 3 layers for GEM-CSC trigger in ME2/1
469  min_quality = 0;
470  }
471  return std::make_pair(min_quality, 3);
472 }
473 
474 std::pair<unsigned, unsigned> LCTQualityControl::get_csc_clct_min_max_quality() const {
475  // quality is number of layers
476  unsigned min_quality = 4;
477  if ((runME11ILT_ and isME11_) or (runME21ILT_ and isME21_)) {
478  // at least 3 layers for GEM-CSC trigger in ME1/1 or ME2/1
479  min_quality = 3;
480  }
481  return std::make_pair(min_quality, 6);
482 }
483 
484 std::pair<unsigned, unsigned> LCTQualityControl::get_csc_lct_min_max_quality(unsigned station, unsigned ring) const {
485  // Run-1 or Run-2
486  unsigned min_quality = static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun2::HQ_PATTERN_2_3);
487  unsigned max_quality = static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun2::HQ_PATTERN_10);
488 
489  const bool GEMCSC = (isME11_ and runME11ILT_) or (isME21_ and runME21ILT_);
490 
491  // Run-3 with CCLUT on
492  if (runCCLUT_ and !GEMCSC) {
493  min_quality = static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3::LowQ);
494  max_quality = static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3::HighQ);
495  }
496 
497  // Run-3 with GEM-CSC on (low-quality CLCTs are permitted, but use Run-2 data format)
498  if (!runCCLUT_ and GEMCSC) {
499  min_quality = static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun2::HQ_ANODE_MARGINAL_CATHODE);
500  max_quality = static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun2::HQ_PATTERN_10);
501  }
502 
503  // Run-3 CSC with GEM-CSC on and CCLUT on
504  if (runCCLUT_ and GEMCSC) {
505  min_quality = static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_2GEM);
506  max_quality = static_cast<unsigned>(LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_CLCT_2GEM_GEMCSCBend);
507  }
508  return std::make_pair(min_quality, max_quality);
509 }
CSCALCTDigi::getBX
uint16_t getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
Definition: CSCALCTDigi.h:73
LCTQualityControl::checkValidReadout
void checkValidReadout(const CSCALCTDigi &alct) const
Definition: LCTQualityControl.cc:17
CSCConstants::NUM_HALF_STRIPS_ME11_GANGED
Definition: CSCConstants.h:83
CSCConstants::NUM_HALF_STRIPS_PER_CFEB
Definition: CSCConstants.h:62
CSCBaseboard::clctParams_
edm::ParameterSet clctParams_
Definition: CSCBaseboard.h:78
LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_CLCT_2GEM_CSCBend
CSCCorrelatedLCTDigi::getRun3Pattern
uint16_t getRun3Pattern() const
return the Run-3 pattern ID
Definition: CSCCorrelatedLCTDigi.h:113
CSCCorrelatedLCTDigi::getTrknmb
uint16_t getTrknmb() const
return track number
Definition: CSCCorrelatedLCTDigi.h:64
LCTQualityControl::get_csc_max_eighthstrip
unsigned get_csc_max_eighthstrip(unsigned station, unsigned ring) const
Definition: LCTQualityControl.cc:398
CSCCorrelatedLCTDigi::ALCT2GEM
Definition: CSCCorrelatedLCTDigi.h:31
CSCConstants::MAX_ALCT_TBINS
Definition: CSCConstants.h:127
CSCConstants::NUM_WIREGROUPS_ME31
Definition: CSCConstants.h:45
CSCCLCTDigi::getTrknmb
uint16_t getTrknmb() const
return track number (1,2)
Definition: CSCCLCTDigi.h:132
CSCCorrelatedLCTDigi::getType
int getType() const
Definition: CSCCorrelatedLCTDigi.h:211
LCTQualityAssignment::LCT_QualityRun2::HQ_PATTERN_2_3
relativeConstraints.station
station
Definition: relativeConstraints.py:67
CSCCorrelatedLCTDigi::CLCTALCT
Definition: CSCCorrelatedLCTDigi.h:27
LCTQualityControl::nplanes_clct_hit_pattern
unsigned nplanes_clct_hit_pattern
Definition: LCTQualityControl.h:96
CSCCorrelatedLCTDigi::getStrip
uint16_t getStrip(uint16_t n=2) const
return the key halfstrip from 0,159
Definition: CSCCorrelatedLCTDigi.cc:86
CSCBaseboard::theStation
const unsigned theStation
Definition: CSCBaseboard.h:42
CSCCorrelatedLCTDigi::getKeyWG
uint16_t getKeyWG() const
return the key wire group. counts from 0.
Definition: CSCCorrelatedLCTDigi.h:73
CSCCLCTDigi::getCompCode
int16_t getCompCode() const
Definition: CSCCLCTDigi.h:171
CSCConstants::NUM_WIREGROUPS_ME13
Definition: CSCConstants.h:42
CSCConstants::NUM_CFEBS_ME12
Definition: CSCConstants.h:26
CSCConstants::NUM_CFEBS_ME11_GANGED
Definition: CSCConstants.h:21
CSCConstants::NUM_CFEBS_ME11_UNGANGED
Definition: CSCConstants.h:22
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCConstants::NUM_HALF_STRIPS_ME1A_GANGED
Definition: CSCConstants.h:80
CSCCLCTDigi::getKeyStrip
uint16_t getKeyStrip(const uint16_t n=2) const
Definition: CSCCLCTDigi.cc:99
LCTQualityControl::get_csc_lct_min_max_quality
std::pair< unsigned, unsigned > get_csc_lct_min_max_quality(unsigned station, unsigned ring) const
Definition: LCTQualityControl.cc:484
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCCorrelatedLCTDigi::ALCTCLCT
Definition: CSCCorrelatedLCTDigi.h:28
CSCConstants::NUM_HALF_STRIPS_ME22
Definition: CSCConstants.h:93
CSCConstants::NUM_HALF_STRIPS_ME11_UNGANGED
Definition: CSCConstants.h:84
CSCBaseboard::runME11ILT_
bool runME11ILT_
Definition: CSCBaseboard.h:94
CSCConstants::NUM_CFEBS_ME31
Definition: CSCConstants.h:30
CSCConstants::NUM_WIREGROUPS_ME21
Definition: CSCConstants.h:43
CSCCorrelatedLCTDigi::CLCT2GEM
Definition: CSCCorrelatedLCTDigi.h:32
LCTQualityControl::get_csc_alct_min_max_quality
std::pair< unsigned, unsigned > get_csc_alct_min_max_quality() const
Definition: LCTQualityControl.cc:463
CSCConstants::NUM_HALF_STRIPS_ME31
Definition: CSCConstants.h:94
CSCConstants::NUM_HALF_STRIPS_ME1A_UNGANGED
Definition: CSCConstants.h:81
LCTQualityAssignment::LCT_QualityRun2::HQ_ANODE_MARGINAL_CATHODE
CSCALCTDigi::getKeyWG
uint16_t getKeyWG() const
return key wire group
Definition: CSCALCTDigi.h:67
CSCCLCTDigi::getQuality
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
LCTQualityControl::LCTQualityControl
LCTQualityControl(unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf)
Definition: LCTQualityControl.cc:6
CSCCLCTDigi::getBend
uint16_t getBend() const
Definition: CSCCLCTDigi.h:93
CSCConstants::NUM_HALF_STRIPS_ME12
Definition: CSCConstants.h:90
CSCConstants::MAX_LCTS_PER_CSC
Definition: CSCConstants.h:138
CSCConstants::NUM_WIREGROUPS_ME12
Definition: CSCConstants.h:41
errors
Definition: errors.py:1
LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_CLCT
LCTQualityControl::reportErrors
void reportErrors(const T &lct, const unsigned errors) const
Definition: LCTQualityControl.cc:30
LCTQualityAssignment::LCT_QualityRun3::MedQ
CSCCorrelatedLCTDigi::CLCTONLY
Definition: CSCCorrelatedLCTDigi.h:33
LCTQualityControl::get_csc_min_max_pattern_run3
std::pair< unsigned, unsigned > get_csc_min_max_pattern_run3() const
Definition: LCTQualityControl.cc:446
LCTQualityControl::get_csc_max_wiregroup
unsigned get_csc_max_wiregroup(unsigned station, unsigned ring) const
Definition: LCTQualityControl.cc:335
LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_CLCT_2GEM_GEMCSCBend
LCTQualityAssignment::LCT_QualityRun3GEM::CLCT_2GEM
CSCConstants::NUM_CFEBS_ME1A_GANGED
Definition: CSCConstants.h:18
LCTQualityControl::get_csc_min_max_pattern
std::pair< unsigned, unsigned > get_csc_min_max_pattern() const
Definition: LCTQualityControl.cc:444
LCTQualityControl::get_csc_max_quartstrip
unsigned get_csc_max_quartstrip(unsigned station, unsigned ring) const
Definition: LCTQualityControl.cc:394
CSCConstants::MAX_LCT_TBINS
Definition: CSCConstants.h:128
CSCConstants::MAX_ALCTS_READOUT
Definition: CSCConstants.h:136
CSCCorrelatedLCTDigi::getBend
uint16_t getBend() const
Definition: CSCCorrelatedLCTDigi.h:126
CSCCorrelatedLCTDigi::getGEM1
const GEMPadDigi & getGEM1() const
Definition: CSCCorrelatedLCTDigi.h:221
hcaldqm::quantity::min_value
const std::map< ValueQuantityType, double > min_value
Definition: ValueQuantity.h:134
CSCALCTDigi::getCollisionB
uint16_t getCollisionB() const
Definition: CSCALCTDigi.h:61
CSCBaseboard::gangedME1a_
bool gangedME1a_
Definition: CSCBaseboard.h:91
LCTQualityControl::get_csc_max_halfstrip
unsigned get_csc_max_halfstrip(unsigned station, unsigned ring) const
Definition: LCTQualityControl.cc:355
LCTQualityControl::checkRange
void checkRange(int parameter, int min_value, int max_value, const std::string &comment, unsigned &errors) const
Definition: LCTQualityControl.cc:21
CSCALCTDigi::getQuality
uint16_t getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:46
CSCCorrelatedLCTDigi::ALCTCLCTGEM
Definition: CSCCorrelatedLCTDigi.h:29
CSCConstants::NUM_WIREGROUPS_ME22
Definition: CSCConstants.h:44
CSCConstants::NUM_WIREGROUPS_ME11
Definition: CSCConstants.h:40
CSCCLCTDigi::getStrip
uint16_t getStrip() const
return halfstrip that goes from 0 to 31 in a (D)CFEB
Definition: CSCCLCTDigi.h:99
CSCCorrelatedLCTDigi::ALCTCLCT2GEM
Definition: CSCCorrelatedLCTDigi.h:30
edm::ParameterSet
Definition: ParameterSet.h:47
CSCTriggerNumbering::minTriggerCscId
static int minTriggerCscId()
Definition: CSCTriggerNumbering.h:111
CSCBaseboard
Definition: CSCBaseboard.h:14
CSCCorrelatedLCTDigi::getCSCID
uint16_t getCSCID() const
Definition: CSCCorrelatedLCTDigi.h:144
CSCCLCTDigi::isValid
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50
universalConfigTemplate.collection
collection
Definition: universalConfigTemplate.py:81
LCTQualityAssignment::LCT_QualityRun2::HQ_PATTERN_10
LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_2GEM
LCTQualityControl::checkValid
void checkValid(const CSCALCTDigi &alct, unsigned max_stubs=CSCConstants::MAX_ALCTS_PER_PROCESSOR) const
Definition: LCTQualityControl.cc:37
value
Definition: value.py:1
CSCConstants::NUM_CFEBS_ME1A_UNGANGED
Definition: CSCConstants.h:19
topSingleLeptonDQM_PU_cfi.pattern
pattern
Definition: topSingleLeptonDQM_PU_cfi.py:39
LCTQualityControl::get_csc_min_max_cfeb
std::pair< unsigned, unsigned > get_csc_min_max_cfeb() const
Definition: LCTQualityControl.cc:402
LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_CLCT_1GEM_CSCBend
LCTQualityControl::getSlopePhase1
int getSlopePhase1(unsigned pattern) const
Definition: LCTQualityControl.cc:296
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
CSCCLCTDigi::getSlope
uint16_t getSlope() const
return the slope
Definition: CSCCLCTDigi.h:74
LCTQualityControl::get_csc_lct_min_max_pattern
std::pair< unsigned, unsigned > get_csc_lct_min_max_pattern() const
Definition: LCTQualityControl.cc:448
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CSCCLCTDigi::getBX
uint16_t getBX() const
return BX
Definition: CSCCLCTDigi.h:123
LCTQualityAssignment::LCT_QualityRun3GEM::ALCT_CLCT_1GEM_GEMCSCBend
LCTQualityControl::get_csc_clct_min_max_quality
std::pair< unsigned, unsigned > get_csc_clct_min_max_quality() const
Definition: LCTQualityControl.cc:474
LCTQualityAssignment::LCT_QualityRun3::HighQ
CSCBaseboard::runME21ILT_
bool runME21ILT_
Definition: CSCBaseboard.h:97
CSCConstants::MAX_CLCTS_READOUT
Definition: CSCConstants.h:133
hcaldqm::quantity::max_value
const std::map< ValueQuantityType, double > max_value
Definition: ValueQuantity.h:196
CSCConstants::NUM_CFEBS_ME13
Definition: CSCConstants.h:27
CSCConstants::NUM_HALF_STRIPS_ME13
Definition: CSCConstants.h:91
LCTQualityAssignment.h
LCTQualityAssignment::LCT_QualityRun3::LowQ
CSCConstants::NUM_CFEBS_ME22
Definition: CSCConstants.h:29
T
long double T
Definition: Basic3DVectorLD.h:48
CSCCorrelatedLCTDigi::getPattern
uint16_t getPattern() const
return the Run-2 pattern ID
Definition: CSCCorrelatedLCTDigi.h:110
CSCBaseboard::isME21_
bool isME21_
Definition: CSCBaseboard.h:52
CSCALCTDigi
Definition: CSCALCTDigi.h:17
relativeConstraints.ring
ring
Definition: relativeConstraints.py:68
CSCConstants::MAX_CLCT_TBINS
Definition: CSCConstants.h:126
CSCCorrelatedLCTDigi::getMPCLink
uint16_t getMPCLink() const
return MPC link number, 0 means not sorted, 1-3 give MPC sorting rank
Definition: CSCCorrelatedLCTDigi.h:142
LCTQualityControl::checkMultiplicityBX
void checkMultiplicityBX(const std::vector< CSCALCTDigi > &alcts) const
Definition: LCTQualityControl.cc:284
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
LCTQualityControl::get_csc_clct_min_max_slope
std::pair< int, int > get_csc_clct_min_max_slope() const
Definition: LCTQualityControl.cc:303
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
CSCCLCTDigi::getCFEB
uint16_t getCFEB() const
return Key CFEB ID
Definition: CSCCLCTDigi.h:117
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
CSCConstants::NUM_CFEBS_ME21
Definition: CSCConstants.h:28
CSCCorrelatedLCTDigi::ALCTONLY
Definition: CSCCorrelatedLCTDigi.h:34
CSCTriggerNumbering::maxTriggerCscId
static int maxTriggerCscId()
Definition: CSCTriggerNumbering.h:110
CSCBaseboard::cscId_
CSCDetId cscId_
Definition: CSCBaseboard.h:57
CSCALCTDigi::isValid
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:40
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
CSCConstants::MAX_LCTS_PER_MPC
Definition: CSCConstants.h:140
CSCALCTDigi::getTrknmb
uint16_t getTrknmb() const
return track number (1,2)
Definition: CSCALCTDigi.h:79
GEMPadDigi::isValid
bool isValid() const
Definition: GEMPadDigi.cc:26
CSCConstants::NUM_CLCT_PATTERNS
Definition: CSCConstants.h:113
CSCCLCTDigi::getPattern
uint16_t getPattern() const
return pattern
Definition: CSCCLCTDigi.h:62
CSCCorrelatedLCTDigi::getBX
uint16_t getBX() const
return BX
Definition: CSCCorrelatedLCTDigi.h:129
CSCCorrelatedLCTDigi::isValid
bool isValid() const
return valid pattern bit
Definition: CSCCorrelatedLCTDigi.h:67
CSCCorrelatedLCTDigi::getGEM2
const GEMPadDigi & getGEM2() const
Definition: CSCCorrelatedLCTDigi.h:222
CSCCorrelatedLCTDigi::getQuality
uint16_t getQuality() const
return the Quality
Definition: CSCCorrelatedLCTDigi.h:70
CSCConstants::NUM_HALF_STRIPS_ME21
Definition: CSCConstants.h:92
CSCBaseboard::isME11_
bool isME11_
Definition: CSCBaseboard.h:51
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19
CSCBaseboard::runCCLUT_
bool runCCLUT_
Definition: CSCBaseboard.h:105
LCTQualityControl.h
CSCBaseboard::theRing
unsigned theRing
Definition: CSCBaseboard.h:47
debug_messages_cfi.errors
errors
Definition: debug_messages_cfi.py:54
CSCCLCTDigi::getRun3Pattern
uint16_t getRun3Pattern() const
return pattern
Definition: CSCCLCTDigi.h:68