CMS 3D CMS Logo

CSCGEMMotherboard.cc
Go to the documentation of this file.
1 #include <memory>
2 
4 
6  unsigned station,
7  unsigned sector,
8  unsigned subsector,
9  unsigned chamber,
10  const edm::ParameterSet& conf)
11  : CSCUpgradeMotherboard(endcap, station, sector, subsector, chamber, conf),
12  maxDeltaBXPad_(tmbParams_.getParameter<int>("maxDeltaBXPad")),
13  maxDeltaBXCoPad_(tmbParams_.getParameter<int>("maxDeltaBXCoPad")),
14  promoteALCTGEMpattern_(tmbParams_.getParameter<bool>("promoteALCTGEMpattern")),
15  promoteALCTGEMquality_(tmbParams_.getParameter<bool>("promoteALCTGEMquality")) {
16  // super chamber has layer=0!
18 
19  const edm::ParameterSet coPadParams(station == 1 ? conf.getParameter<edm::ParameterSet>("copadParamGE11")
20  : conf.getParameter<edm::ParameterSet>("copadParamGE21"));
21  coPadProcessor = std::make_unique<GEMCoPadProcessor>(theRegion, theStation, theChamber, coPadParams);
22 
23  maxDeltaPadL1_ = (theParity ? tmbParams_.getParameter<int>("maxDeltaPadL1Even")
24  : tmbParams_.getParameter<int>("maxDeltaPadL1Odd"));
25  maxDeltaPadL2_ = (theParity ? tmbParams_.getParameter<int>("maxDeltaPadL2Even")
26  : tmbParams_.getParameter<int>("maxDeltaPadL2Odd"));
27 }
28 
30 
32 
35  gemCoPadV.clear();
36  coPadProcessor->clear();
37  pads_.clear();
38  coPads_.clear();
39 }
40 
42  std::unique_ptr<GEMPadDigiCollection> gemPads(new GEMPadDigiCollection());
43  coPadProcessor->declusterize(gemClusters, *gemPads);
44 
45  gemCoPadV = coPadProcessor->run(gemPads.get());
46 
47  processGEMPads(gemPads.get());
49 }
50 
52  pads_.clear();
53  const auto& superChamber(gem_g->superChamber(gemId));
54  for (const auto& ch : superChamber->chambers()) {
55  for (const auto& roll : ch->etaPartitions()) {
56  GEMDetId roll_id(roll->id());
57  auto pads_in_det = gemPads->get(roll_id);
58  for (auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
59  // ignore 16-partition GE2/1 pads
60  if (roll->isGE21() and pad->nPartitions() == GEMPadDigi::GE21SplitStrip)
61  continue;
62 
63  // ignore invalid pads
64  if (!pad->isValid())
65  continue;
66 
67  const int bx_shifted(CSCConstants::LCT_CENTRAL_BX + pad->bx());
68  // consider matches with BX difference +1/0/-1
69  for (int bx = bx_shifted - maxDeltaBXPad_; bx <= bx_shifted + maxDeltaBXPad_; ++bx) {
70  pads_[bx].emplace_back(roll_id.rawId(), *pad);
71  }
72  }
73  }
74  }
75 }
76 
78  coPads_.clear();
79  for (const auto& copad : gemCoPadV) {
80  GEMDetId detId(theRegion, 1, theStation, 0, theChamber, 0);
81 
82  // ignore 16-partition GE2/1 pads
83  if (detId.isGE21() and copad.first().nPartitions() == GEMPadDigi::GE21SplitStrip)
84  continue;
85 
86  // only consider matches with same BX
87  coPads_[CSCConstants::LCT_CENTRAL_BX + copad.bx(1)].emplace_back(detId.rawId(), copad);
88  }
89 }
90 
92  const GEMCoPadDigi& gem,
93  int trknmb) const {
94  return constructLCTsGEM(alct, CSCCLCTDigi(), GEMPadDigi(), gem, trknmb);
95 }
96 
98  const GEMCoPadDigi& gem,
99  int trknmb) const {
100  return constructLCTsGEM(CSCALCTDigi(), clct, GEMPadDigi(), gem, trknmb);
101 }
102 
104  const CSCCLCTDigi& clct,
105  const GEMCoPadDigi& gem,
106  int trknmb) const {
107  return constructLCTsGEM(alct, clct, GEMPadDigi(), gem, trknmb);
108 }
109 
111  const CSCCLCTDigi& clct,
112  const GEMPadDigi& gem,
113  int trknmb) const {
114  return constructLCTsGEM(alct, clct, gem, GEMCoPadDigi(), trknmb);
115 }
116 
118  const CSCCLCTDigi& clct,
119  const GEMPadDigi& gem1,
120  const GEMCoPadDigi& gem2,
121  int trknmb) const {
122  int pattern = 0, quality = 0, bx = 0, keyStrip = 0, keyWG = 0, bend = 0, valid = 0;
123 
124  // make a new LCT
125  CSCCorrelatedLCTDigi thisLCT;
126  if (!alct.isValid() and !clct.isValid()) {
127  edm::LogError("CSCGEMCMotherboard") << "Warning!!! neither ALCT nor CLCT valid, return invalid LCT";
128  return thisLCT;
129  }
130 
131  // Determine the case and assign properties depending on the LCT dataformat (old/new)
132  if (alct.isValid() and clct.isValid() and gem1.isValid() and not gem2.isValid()) {
133  pattern = encodePattern(clct.getPattern());
134  if (runCCLUT_) {
135  quality = static_cast<unsigned int>(findQualityGEMv2(alct, clct, 1));
136  } else {
137  quality = static_cast<unsigned int>(findQualityGEMv1(alct, clct, 1));
138  }
139  bx = alct.getBX();
140  keyStrip = clct.getKeyStrip();
141  keyWG = alct.getKeyWG();
142  bend = clct.getBend();
143  thisLCT.setALCT(getBXShiftedALCT(alct));
144  thisLCT.setCLCT(getBXShiftedCLCT(clct));
145  thisLCT.setGEM1(gem1);
147  valid = doesWiregroupCrossStrip(keyWG, keyStrip) ? 1 : 0;
148  } else if (alct.isValid() and clct.isValid() and not gem1.isValid() and gem2.isValid()) {
149  pattern = encodePattern(clct.getPattern());
150  if (runCCLUT_) {
151  quality = static_cast<unsigned int>(findQualityGEMv2(alct, clct, 2));
152  } else {
153  quality = static_cast<unsigned int>(findQualityGEMv1(alct, clct, 2));
154  }
155  bx = alct.getBX();
156  keyStrip = clct.getKeyStrip();
157  keyWG = alct.getKeyWG();
158  bend = clct.getBend();
159  thisLCT.setALCT(getBXShiftedALCT(alct));
160  thisLCT.setCLCT(getBXShiftedCLCT(clct));
161  thisLCT.setGEM1(gem2.first());
162  thisLCT.setGEM2(gem2.second());
164  valid = doesWiregroupCrossStrip(keyWG, keyStrip) ? 1 : 0;
165  } else if (alct.isValid() and gem2.isValid() and not clct.isValid()) {
166  //in ME11
167  //ME1b: keyWG >15,
168  //ME1a and ME1b overlap: 10<=keyWG<=15
169  //ME1a: keyWG < 10
170  //in overlap region, firstly try a match in ME1b
171 
172  auto p(getCSCPart(-1)); //use -1 as fake halfstrip, it returns ME11 if station==1 && (ring==1 or ring==4)
173  if (p == CSCPart::ME11) {
174  if (alct.getKeyWG() >= 10)
175  p = CSCPart::ME1B;
176  else
177  p = CSCPart::ME1A;
178  }
179 
180  // min pad number is always 0
181  // max pad number is 191 or 383, depending on the station
182  assert(gem2.pad(1) >= 0);
183  assert(gem2.pad(2) >= 0);
184  assert(gem2.pad(1) < maxPads());
185  assert(gem2.pad(2) < maxPads());
186 
187  const auto& mymap1 = getLUT()->get_gem_pad_to_csc_hs(theParity, p);
188  // GEM pad number is counting from 1
189  // keyStrip from mymap: for ME1b 0-127 and for ME1a 0-95
190  // keyStrip for CLCT: for ME1b 0-127 and for ME1a 128-223
191  keyStrip = mymap1.at(gem2.pad(2));
192  if (p == CSCPart::ME1A and keyStrip <= CSCConstants::MAX_HALF_STRIP_ME1B) {
193  keyStrip += CSCConstants::MAX_HALF_STRIP_ME1B + 1;
194  }
195  keyWG = alct.getKeyWG();
196 
197  if ((not doesWiregroupCrossStrip(keyWG, keyStrip)) and p == CSCPart::ME1B and keyWG <= 15) {
198  //try ME1A as strip and WG do not cross
199  p = CSCPart::ME1A;
200  const auto& mymap2 = getLUT()->get_gem_pad_to_csc_hs(theParity, p);
201  keyStrip = mymap2.at(gem2.pad(2)) + CSCConstants::MAX_HALF_STRIP_ME1B + 1;
202  }
203 
204  pattern = promoteALCTGEMpattern_ ? 10 : 0;
205  quality = promoteALCTGEMquality_ ? 15 : 11;
206  bx = alct.getBX();
207  thisLCT.setALCT(getBXShiftedALCT(alct));
208  thisLCT.setGEM1(gem2.first());
209  thisLCT.setGEM2(gem2.second());
211  valid = true;
212  } else if (clct.isValid() and gem2.isValid() and not alct.isValid()) {
213  // min roll number is always 1
214  // max roll number is 8 or 16, depending on the station
215  assert(gem2.roll() >= GEMDetId::minRollId);
216  assert(gem2.roll() <= maxRolls());
217 
218  const auto& mymap2 = getLUT()->get_gem_roll_to_csc_wg(theParity);
219  pattern = encodePattern(clct.getPattern());
220  quality = promoteCLCTGEMquality_ ? 15 : 11;
221  bx = gem2.bx(1) + CSCConstants::LCT_CENTRAL_BX;
222  keyStrip = clct.getKeyStrip();
223  // choose the corresponding wire-group in the middle of the partition
224  keyWG = mymap2.at(gem2.roll() - 1);
225  bend = clct.getBend();
226  thisLCT.setCLCT(clct);
227  thisLCT.setGEM1(gem2.first());
228  thisLCT.setGEM2(gem2.second());
230  valid = true;
231  }
232 
233  if (valid == 0)
234  LogTrace("CSCGEMCMotherboard") << "Warning!!! wiregroup and strip pair are not crossing each other"
235  << " detid " << cscId_ << " with wiregroup " << keyWG << "keyStrip " << keyStrip
236  << " \n";
237 
238  // fill the rest of the properties
239  thisLCT.setTrknmb(trknmb);
240  thisLCT.setValid(valid);
241  thisLCT.setQuality(quality);
242  thisLCT.setWireGroup(keyWG);
243  thisLCT.setStrip(keyStrip);
244  thisLCT.setPattern(pattern);
245  thisLCT.setBend(bend);
246  thisLCT.setBX(bx);
247  thisLCT.setMPCLink(0);
248  thisLCT.setBX0(0);
249  // Not used in Run-2. Will not be assigned in Run-3
250  thisLCT.setSyncErr(0);
251  thisLCT.setCSCID(theTrigChamber);
252  thisLCT.setRun3(true);
253  // in Run-3 we plan to denote the presence of exotic signatures in the chamber
255  thisLCT.setHMT(highMultiplicityBits_);
256 
257  // future work: add a section that produces LCTs according
258  // to the new LCT dataformat (not yet defined)
259 
260  // return new LCT
261  return thisLCT;
262 }
263 
264 bool CSCGEMMotherboard::isPadInOverlap(int roll) const {
265  // this only works for ME1A!
266  const auto& mymap = (getLUT()->get_csc_wg_to_gem_roll(theParity));
267  for (unsigned i = 0; i < mymap.size(); i++) {
268  // overlap region are WGs 10-15
269  if ((i < 10) or (i > 15))
270  continue;
271  if ((mymap.at(i).first <= roll) and (roll <= mymap.at(i).second))
272  return true;
273  }
274  return false;
275 }
276 
277 bool CSCGEMMotherboard::isGEMDetId(unsigned int p) const {
278  return (DetId(p).subdetId() == MuonSubdetId::GEM and DetId(p).det() == DetId::Muon);
279 }
280 
281 int CSCGEMMotherboard::getBX(const GEMPadDigi& p) const { return p.bx(); }
282 
283 int CSCGEMMotherboard::getBX(const GEMCoPadDigi& p) const { return p.bx(1); }
284 
285 int CSCGEMMotherboard::getRoll(const GEMPadDigiId& p) const { return GEMDetId(p.first).roll(); }
286 
287 int CSCGEMMotherboard::getRoll(const GEMCoPadDigiId& p) const { return p.second.roll(); }
288 
289 std::pair<int, int> CSCGEMMotherboard::getRolls(const CSCALCTDigi& alct) const {
290  const auto& mymap(getLUT()->get_csc_wg_to_gem_roll(theParity));
291  return mymap.at(alct.getKeyWG());
292 }
293 
294 float CSCGEMMotherboard::getPad(const GEMPadDigi& p) const { return p.pad(); }
295 
297  // average pad number for a GEMCoPad
298  return 0.5 * (p.pad(1) + p.pad(2));
299 }
300 
301 float CSCGEMMotherboard::getPad(const CSCCLCTDigi& clct, enum CSCPart part) const {
302  const auto& mymap = (getLUT()->get_csc_hs_to_gem_pad(theParity, part));
303  int keyStrip = clct.getKeyStrip();
304  //ME1A part, convert halfstrip from 128-223 to 0-95
306  keyStrip = keyStrip - CSCConstants::MAX_HALF_STRIP_ME1B - 1;
307  return 0.5 * (mymap.at(keyStrip).first + mymap.at(keyStrip).second);
308 }
309 
312  generator_->setGEMGeometry(gem_g);
313 }
314 
316 
318 
319 void CSCGEMMotherboard::printGEMTriggerPads(int bx_start, int bx_stop, enum CSCPart part) {
320  LogTrace("CSCGEMMotherboard") << "------------------------------------------------------------------------"
321  << std::endl;
322  LogTrace("CSCGEMMotherboard") << "* GEM trigger pads: " << std::endl;
323 
324  for (int bx = bx_start; bx <= bx_stop; bx++) {
325  const auto& in_pads = pads_[bx];
326  LogTrace("CSCGEMMotherboard") << "N(pads) BX " << bx << " : " << in_pads.size() << std::endl;
327 
328  for (const auto& pad : in_pads) {
329  LogTrace("CSCGEMMotherboard") << "\tdetId " << GEMDetId(pad.first) << ", pad = " << pad.second;
330  const auto& roll_id(GEMDetId(pad.first));
331 
332  if (part == CSCPart::ME11 and isPadInOverlap(GEMDetId(roll_id).roll()))
333  LogTrace("CSCGEMMotherboard") << " (in overlap)" << std::endl;
334  else
335  LogTrace("CSCGEMMotherboard") << std::endl;
336  }
337  }
338 }
339 
340 void CSCGEMMotherboard::printGEMTriggerCoPads(int bx_start, int bx_stop, enum CSCPart part) {
341  LogTrace("CSCGEMMotherboard") << "------------------------------------------------------------------------"
342  << std::endl;
343  LogTrace("CSCGEMMotherboard") << "* GEM trigger coincidence pads: " << std::endl;
344 
345  for (int bx = bx_start; bx <= bx_stop; bx++) {
346  const auto& in_pads = coPads_[bx];
347  LogTrace("CSCGEMMotherboard") << "N(copads) BX " << bx << " : " << in_pads.size() << std::endl;
348 
349  for (const auto& pad : in_pads) {
350  LogTrace("CSCGEMMotherboard") << "\tdetId " << GEMDetId(pad.first) << ", pad = " << pad.second;
351  const auto& roll_id(GEMDetId(pad.first));
352 
353  if (part == CSCPart::ME11 and isPadInOverlap(GEMDetId(roll_id).roll()))
354  LogTrace("CSCGEMMotherboard") << " (in overlap)" << std::endl;
355  else
356  LogTrace("CSCGEMMotherboard") << std::endl;
357  }
358  }
359 }
360 
362  const CSCCLCTDigi& cLCT,
363  int gemlayers) const {
364  // Either ALCT or CLCT is invalid
365  if (!(aLCT.isValid()) || !(cLCT.isValid())) {
366  // No CLCT
367  if (aLCT.isValid() && !(cLCT.isValid()))
368  return LCT_Quality::NO_CLCT;
369 
370  // No ALCT
371  else if (!(aLCT.isValid()) && cLCT.isValid())
372  return LCT_Quality::NO_ALCT;
373 
374  // No ALCT and no CLCT
375  else
376  return LCT_Quality::INVALID;
377  }
378  // Both ALCT and CLCT are valid
379  else {
380  const int pattern(cLCT.getPattern());
381 
382  // Layer-trigger in CLCT
383  if (pattern == 1)
385 
386  // Multi-layer pattern in CLCT
387  else {
388  // ALCT quality is the number of layers hit minus 3.
389  bool a4 = false;
390 
391  // Case of ME11 with GEMs: require 4 layers for ALCT
392  if (theStation == 1)
393  a4 = aLCT.getQuality() >= 1;
394 
395  // Case of ME21 with GEMs: require 4 layers for ALCT+GEM
396  if (theStation == 2)
397  a4 = aLCT.getQuality() + gemlayers >= 1;
398 
399  // CLCT quality is the number of layers hit.
400  const bool c4((cLCT.getQuality() >= 4) or (cLCT.getQuality() >= 3 and gemlayers >= 1));
401 
402  // quality = 4; "reserved for low-quality muons in future"
403 
404  // marginal anode and cathode
405  if (!a4 && !c4)
407 
408  // HQ anode, but marginal cathode
409  else if (a4 && !c4)
411 
412  // HQ cathode, but marginal anode
413  else if (!a4 && c4)
415 
416  // HQ muon, but accelerator ALCT
417  else if (a4 && c4) {
418  if (aLCT.getAccelerator())
420 
421  else {
422  // quality = 9; "reserved for HQ muons with future patterns
423  // quality = 10; "reserved for HQ muons with future patterns
424 
425  // High quality muons are determined by their CLCT pattern
426  if (pattern == 2 || pattern == 3)
428 
429  else if (pattern == 4 || pattern == 5)
431 
432  else if (pattern == 6 || pattern == 7)
434 
435  else if (pattern == 8 || pattern == 9)
437 
438  else if (pattern == 10)
440 
441  else {
442  edm::LogWarning("CSCGEMMotherboard")
443  << "findQualityGEMv1: Unexpected CLCT pattern id = " << pattern << " in " << theCSCName_;
444  return LCT_Quality::INVALID;
445  }
446  }
447  }
448  }
449  }
450  return LCT_Quality::INVALID;
451 }
452 
454  const CSCCLCTDigi& cLCT,
455  int gemlayers) const {
456  // ALCT and CLCT invalid
457  if (!(aLCT.isValid()) and !(cLCT.isValid())) {
459  } else if (!aLCT.isValid() && cLCT.isValid() and gemlayers == 2) {
460  return LCT_QualityRun3::CLCT_2GEM;
461  } else if (aLCT.isValid() && !cLCT.isValid() and gemlayers == 2) {
462  return LCT_QualityRun3::ALCT_2GEM;
463  } else if (aLCT.isValid() && cLCT.isValid()) {
464  if (gemlayers == 0)
465  return LCT_QualityRun3::ALCTCLCT;
466  else if (gemlayers == 1)
467  return LCT_QualityRun3::ALCTCLCT_1GEM;
468  else if (gemlayers == 2)
469  return LCT_QualityRun3::ALCTCLCT_2GEM;
470  }
472 }
473 
474 template <>
475 const matchesBX<GEMPadDigi>& CSCGEMMotherboard::getPads<GEMPadDigi>() const {
476  return pads_;
477 }
478 
479 template <>
480 const matchesBX<GEMCoPadDigi>& CSCGEMMotherboard::getPads<GEMCoPadDigi>() const {
481  return coPads_;
482 }
483 
484 template <>
485 int CSCGEMMotherboard::getMaxDeltaBX<GEMPadDigi>() const {
486  return maxDeltaBXPad_;
487 }
488 
489 template <>
490 int CSCGEMMotherboard::getMaxDeltaBX<GEMCoPadDigi>() const {
491  return maxDeltaBXCoPad_;
492 }
493 
494 template <>
495 int CSCGEMMotherboard::getLctTrigEnable<CSCALCTDigi>() const {
496  return alct_trig_enable;
497 }
498 
499 template <>
500 int CSCGEMMotherboard::getLctTrigEnable<CSCCLCTDigi>() const {
501  return clct_trig_enable;
502 }
CSCMotherboard::LCT_Quality::NO_CLCT
MuonSubdetId::GEM
static constexpr int GEM
Definition: MuonSubdetId.h:14
CSCGEMMotherboard::doesWiregroupCrossStrip
virtual bool doesWiregroupCrossStrip(int key_wg, int key_strip) const
Definition: CSCGEMMotherboard.h:67
CSCALCTDigi::getBX
uint16_t getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
Definition: CSCALCTDigi.h:73
CSCGEMMotherboard::isPadInOverlap
bool isPadInOverlap(int roll) const
Definition: CSCGEMMotherboard.cc:264
CSCUpgradeMotherboard
Definition: CSCUpgradeMotherboard.h:35
ME11
Definition: CSCUpgradeMotherboardLUT.h:12
GEMDetId::isGE21
bool isGE21() const
Definition: GEMDetId.cc:11
electrons_cff.bool
bool
Definition: electrons_cff.py:393
mps_fire.i
i
Definition: mps_fire.py:428
GEMCoPadDigi::bx
int bx(int l) const
Definition: GEMCoPadDigi.cc:29
CSCGEMMotherboardLUT::get_gem_pad_to_csc_hs
virtual std::vector< int > get_gem_pad_to_csc_hs(Parity par, enum CSCPart) const =0
GEMCoPadDigi::pad
int pad(int l) const
Definition: GEMCoPadDigi.cc:20
CSCCorrelatedLCTDigi::setValid
void setValid(const uint16_t v)
set valid
Definition: CSCCorrelatedLCTDigi.h:151
GEMPadDigi
Definition: GEMPadDigi.h:17
CSCBaseboard::theRegion
unsigned theRegion
Definition: CSCBaseboard.h:47
CSCGEMMotherboard::maxDeltaPadL2_
int maxDeltaPadL2_
Definition: CSCGEMMotherboard.h:226
CSCCorrelatedLCTDigi::ALCT2GEM
Definition: CSCCorrelatedLCTDigi.h:194
CSCMotherboard::useHighMultiplicityBits_
bool useHighMultiplicityBits_
Definition: CSCMotherboard.h:119
CSCMotherboard::LCT_Quality::HQ_CATHODE_MARGINAL_ANODE
CSCGEMMotherboard::findQualityGEMv1
CSCMotherboard::LCT_Quality findQualityGEMv1(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
Definition: CSCGEMMotherboard.cc:361
CSCBaseboard::tmbParams_
edm::ParameterSet tmbParams_
Definition: CSCBaseboard.h:73
CSCMotherboard::LCT_Quality::NO_ALCT
relativeConstraints.station
station
Definition: relativeConstraints.py:67
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CSCGEMMotherboard::getLUT
virtual const CSCGEMMotherboardLUT * getLUT() const =0
CSCBaseboard::theStation
const unsigned theStation
Definition: CSCBaseboard.h:43
CSCMotherboard::LCT_Quality::CLCT_LAYER_TRIGGER
CSCUpgradeMotherboard::clear
void clear()
Definition: CSCUpgradeMotherboard.cc:332
CSCGEMMotherboard::findQualityGEMv2
LCT_QualityRun3 findQualityGEMv2(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
Definition: CSCGEMMotherboard.cc:453
CSCCorrelatedLCTDigi::setQuality
void setQuality(const uint16_t q)
set quality code
Definition: CSCCorrelatedLCTDigi.h:148
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
CSCBaseboard::theCSCName_
std::string theCSCName_
Definition: CSCBaseboard.h:82
CSCConstants::LCT_CENTRAL_BX
Definition: CSCConstants.h:79
cms::cuda::assert
assert(be >=bs)
GEMPadDigiCollection
MuonDigiCollection< GEMDetId, GEMPadDigi > GEMPadDigiCollection
Definition: GEMPadDigiCollection.h:13
CSCGEMMotherboard::constructLCTsGEM
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, int i) const
Definition: CSCGEMMotherboard.cc:91
GEMSuperChamber::chamber
const GEMChamber * chamber(GEMDetId id) const
Return the chamber corresponding to the given id.
Definition: GEMSuperChamber.cc:27
CSCCorrelatedLCTDigi::setWireGroup
void setWireGroup(const uint16_t wiregroup)
set wiregroup number
Definition: CSCCorrelatedLCTDigi.h:145
CSCGEMMotherboard::promoteALCTGEMquality_
bool promoteALCTGEMquality_
Definition: CSCGEMMotherboard.h:231
CSCGEMMotherboard::coPads_
GEMCoPadDigiIdsBX coPads_
Definition: CSCGEMMotherboard.h:220
CSCMotherboard::clct_trig_enable
unsigned int clct_trig_enable
Definition: CSCMotherboard.h:98
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
CSCCLCTDigi::getKeyStrip
uint16_t getKeyStrip(const uint16_t n=2) const
Definition: CSCCLCTDigi.cc:133
CSCGEMMotherboard.h
CSCCorrelatedLCTDigi::setBX0
void setBX0(const uint16_t b)
set bx0
Definition: CSCCorrelatedLCTDigi.h:172
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
CSCGEMMotherboard::setupGeometry
void setupGeometry()
Definition: CSCGEMMotherboard.cc:310
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
GEMPadDigi::GE21SplitStrip
Definition: GEMPadDigi.h:22
CSCCorrelatedLCTDigi::CLCT2GEM
Definition: CSCCorrelatedLCTDigi.h:195
CSCCorrelatedLCTDigi::setHMT
void setHMT(const uint16_t h)
set high-multiplicity bits
Definition: CSCCorrelatedLCTDigi.cc:160
CSCCorrelatedLCTDigi::setCLCT
void setCLCT(const CSCCLCTDigi &clct)
Definition: CSCCorrelatedLCTDigi.h:205
CSCMotherboard::LCT_Quality::HQ_PATTERN_10
DetId
Definition: DetId.h:17
CSCCorrelatedLCTDigi::setALCT
void setALCT(const CSCALCTDigi &alct)
Definition: CSCCorrelatedLCTDigi.h:204
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:54
CSCCorrelatedLCTDigi::setStrip
void setStrip(const uint16_t s)
set strip
Definition: CSCCorrelatedLCTDigi.h:154
CSCCLCTDigi::getBend
uint16_t getBend() const
Definition: CSCCLCTDigi.h:89
CSCGEMMotherboard::LCT_QualityRun3
LCT_QualityRun3
Definition: CSCGEMMotherboard.h:187
part
part
Definition: HCALResponse.h:20
CSCPart
CSCPart
Definition: CSCUpgradeMotherboardLUT.h:12
CSCUpgradeMotherboard::getCSCPart
enum CSCPart getCSCPart(int keystrip) const
Definition: CSCUpgradeMotherboard.cc:279
CSCMotherboard::LCT_Quality::INVALID
CSCGEMMotherboard::CSCGEMMotherboard
CSCGEMMotherboard()
Definition: CSCGEMMotherboard.cc:29
CSCUpgradeMotherboard::setupGeometry
void setupGeometry()
Definition: CSCUpgradeMotherboard.cc:322
cond::time::INVALID
static constexpr TimeType INVALID
Definition: Time.h:33
CSCGEMMotherboard::processGEMClusters
void processGEMClusters(const GEMPadDigiClusterCollection *pads)
Definition: CSCGEMMotherboard.cc:41
CSCCorrelatedLCTDigi::setMPCLink
void setMPCLink(const uint16_t &link)
Set mpc link number after MPC sorting.
Definition: CSCCorrelatedLCTDigi.h:135
GEMPadDigiCollection
CSCUpgradeMotherboard::theParity
Parity theParity
Definition: CSCUpgradeMotherboard.h:92
CSCGEMMotherboardLUT::get_csc_hs_to_gem_pad
virtual std::vector< std::pair< int, int > > get_csc_hs_to_gem_pad(Parity par, enum CSCPart) const =0
CSCGEMMotherboard::printGEMTriggerCoPads
void printGEMTriggerCoPads(int bx_start, int bx_stop, enum CSCPart)
Definition: CSCGEMMotherboard.cc:340
CSCGEMMotherboard::gemId
unsigned gemId
Definition: CSCGEMMotherboard.h:209
CSCGEMMotherboard::promoteCLCTGEMquality_
bool promoteCLCTGEMquality_
Definition: CSCGEMMotherboard.h:232
CSCMotherboard::LCT_Quality::HQ_PATTERN_4_5
GEMPadDigiClusterCollection
CSCALCTDigi::getQuality
uint16_t getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:46
CSCCorrelatedLCTDigi::ALCTCLCTGEM
Definition: CSCCorrelatedLCTDigi.h:192
CSCGEMMotherboard::coPadProcessor
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
Definition: CSCGEMMotherboard.h:59
GEMCoPadDigiId
match< GEMCoPadDigi > GEMCoPadDigiId
Definition: CSCGEMMotherboard.h:25
CSCGEMMotherboard::gemCoPadV
std::vector< GEMCoPadDigi > gemCoPadV
Definition: CSCGEMMotherboard.h:216
CSCGEMMotherboard::promoteALCTGEMpattern_
bool promoteALCTGEMpattern_
Definition: CSCGEMMotherboard.h:229
CSCCorrelatedLCTDigi::setBend
void setBend(const uint16_t b)
set bend
Definition: CSCCorrelatedLCTDigi.h:166
GEMCoPadDigi
Definition: GEMCoPadDigi.h:16
CSCCorrelatedLCTDigi::setGEM1
void setGEM1(const GEMPadDigi &gem)
Definition: CSCCorrelatedLCTDigi.h:206
CSCCorrelatedLCTDigi::ALCTCLCT2GEM
Definition: CSCCorrelatedLCTDigi.h:193
CSCCorrelatedLCTDigi::setBX
void setBX(const uint16_t b)
set bx
Definition: CSCCorrelatedLCTDigi.h:169
CSCCorrelatedLCTDigi::setTrknmb
void setTrknmb(const uint16_t number)
Set track number (1,2) after sorting LCTs.
Definition: CSCCorrelatedLCTDigi.h:132
edm::ParameterSet
Definition: ParameterSet.h:47
ME1A
Definition: CSCUpgradeMotherboardLUT.h:12
CSCGEMMotherboard::isGEMDetId
bool isGEMDetId(unsigned int) const
Definition: CSCGEMMotherboard.cc:277
CSCCorrelatedLCTDigi::setPattern
void setPattern(const uint16_t p)
set pattern
Definition: CSCCorrelatedLCTDigi.cc:142
CSCGEMMotherboard::getRoll
int getRoll(const GEMPadDigiId &p) const
Definition: CSCGEMMotherboard.cc:285
GEMDetId::roll
constexpr int roll() const
Definition: GEMDetId.h:191
CSCMotherboard::LCT_Quality::HQ_PATTERN_8_9
CSCMotherboard::LCT_Quality::MARGINAL_ANODE_CATHODE
CSCCorrelatedLCTDigi::setGEM2
void setGEM2(const GEMPadDigi &gem)
Definition: CSCCorrelatedLCTDigi.h:207
CSCConstants::MAX_HALF_STRIP_ME1B
Definition: CSCConstants.h:39
GEMDetId
Definition: GEMDetId.h:18
CSCCorrelatedLCTDigi::setCSCID
void setCSCID(const uint16_t c)
set cscID
Definition: CSCCorrelatedLCTDigi.h:178
createfilelist.int
int
Definition: createfilelist.py:10
CSCGEMMotherboardLUT::get_gem_roll_to_csc_wg
std::vector< int > get_gem_roll_to_csc_wg(Parity par) const
Definition: CSCUpgradeMotherboardLUT.cc:106
CSCCLCTDigi::isValid
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:48
topSingleLeptonDQM_PU_cfi.pattern
pattern
Definition: topSingleLeptonDQM_PU_cfi.py:39
GEMCoPadDigi::second
GEMPadDigi second() const
Definition: GEMCoPadDigi.h:30
CSCGEMMotherboard::getRolls
std::pair< int, int > getRolls(const CSCALCTDigi &) const
Definition: CSCGEMMotherboard.cc:289
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
CSCBaseboard::theChamber
unsigned theChamber
Definition: CSCBaseboard.h:49
CSCCorrelatedLCTDigi::setSyncErr
void setSyncErr(const uint16_t s)
set syncErr
Definition: CSCCorrelatedLCTDigi.h:175
gem
Definition: AMC13Event.h:6
GEMChamber::etaPartition
const GEMEtaPartition * etaPartition(GEMDetId id) const
Return the eta partition corresponding to the given id.
Definition: GEMChamber.cc:33
CSCGEMMotherboard::processGEMCoPads
void processGEMCoPads()
Definition: CSCGEMMotherboard.cc:77
GEMChamber::nEtaPartitions
int nEtaPartitions() const
Retunr numbers of eta partitions.
Definition: GEMChamber.cc:31
CSCMotherboard::getBXShiftedCLCT
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
Definition: CSCMotherboard.cc:703
GEMEtaPartition::npads
int npads() const
number of GEM-CSC trigger readout pads in partition
Definition: GEMEtaPartition.cc:43
CSCGEMMotherboardLUT::get_csc_wg_to_gem_roll
std::vector< std::pair< int, int > > get_csc_wg_to_gem_roll(Parity par, int layer=1) const
Definition: CSCUpgradeMotherboardLUT.cc:98
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
GEMPadDigiId
match< GEMPadDigi > GEMPadDigiId
Definition: CSCGEMMotherboard.h:21
CSCGEMMotherboard::maxDeltaBXPad_
int maxDeltaBXPad_
Definition: CSCGEMMotherboard.h:223
CSCGEMMotherboard::processGEMPads
void processGEMPads(const GEMPadDigiCollection *pads)
Definition: CSCGEMMotherboard.cc:51
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
CSCALCTDigi::getAccelerator
uint16_t getAccelerator() const
Definition: CSCALCTDigi.h:53
CSCMotherboard::LCT_Quality::HQ_PATTERN_2_3
trklet::bend
double bend(double r, double rinv, double stripPitch)
Definition: Util.h:160
CSCMotherboard::LCT_Quality::HQ_ACCEL_ALCT
CSCMotherboard::highMultiplicityBits_
unsigned int highMultiplicityBits_
Definition: CSCMotherboard.h:118
CSCGEMMotherboard::maxRolls
int maxRolls() const
Definition: CSCGEMMotherboard.cc:317
CSCALCTDigi
Definition: CSCALCTDigi.h:17
CSCGEMMotherboard::printGEMTriggerPads
void printGEMTriggerPads(int bx_start, int bx_stop, enum CSCPart)
Definition: CSCGEMMotherboard.cc:319
GEMCoPadDigi::roll
int roll() const
Definition: GEMCoPadDigi.h:25
CSCMotherboard::alct_trig_enable
unsigned int alct_trig_enable
Definition: CSCMotherboard.h:98
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
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
CSCGEMMotherboard::clear
void clear()
Definition: CSCGEMMotherboard.cc:33
CSCBaseboard::theTrigChamber
const unsigned theTrigChamber
Definition: CSCBaseboard.h:46
GEMDetId::minRollId
static constexpr int32_t minRollId
Definition: GEMDetId.h:33
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
CSCMotherboard::encodePattern
unsigned int encodePattern(const int clctPattern) const
Definition: CSCMotherboard.cc:540
CSCGEMMotherboard::pads_
GEMPadDigiIdsBX pads_
Definition: CSCGEMMotherboard.h:219
CSCGEMMotherboard::maxDeltaBXCoPad_
int maxDeltaBXCoPad_
Definition: CSCGEMMotherboard.h:224
CSCBaseboard::cscId_
CSCDetId cscId_
Definition: CSCBaseboard.h:58
CSCALCTDigi::isValid
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:40
CSCGEMMotherboard::getPad
float getPad(const GEMPadDigi &) const
Definition: CSCGEMMotherboard.cc:294
CSCMotherboard::LCT_Quality::HQ_ANODE_MARGINAL_CATHODE
CSCGEMMotherboard::maxPads
int maxPads() const
Definition: CSCGEMMotherboard.cc:315
CSCCorrelatedLCTDigi::setRun3
void setRun3(const bool isRun3)
Definition: CSCCorrelatedLCTDigi.cc:162
DetId::Muon
Definition: DetId.h:26
RunInfoPI::valid
Definition: RunInfoPayloadInspectoHelper.h:16
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
GEMPadDigi::isValid
bool isValid() const
Definition: GEMPadDigi.cc:26
GEMGeometry::superChamber
const GEMSuperChamber * superChamber(GEMDetId id) const
Definition: GEMGeometry.cc:69
CSCMotherboard::getBXShiftedALCT
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
Definition: CSCMotherboard.cc:697
CSCCLCTDigi::getPattern
uint16_t getPattern() const
return pattern
Definition: CSCCLCTDigi.cc:88
CSCUpgradeMotherboard::generator_
std::unique_ptr< CSCUpgradeMotherboardLUTGenerator > generator_
Definition: CSCUpgradeMotherboard.h:100
CSCCorrelatedLCTDigi::setType
void setType(int type)
Definition: CSCCorrelatedLCTDigi.h:202
CSCGEMMotherboard::getBX
int getBX(const GEMPadDigi &p) const
Definition: CSCGEMMotherboard.cc:281
CSCGEMMotherboard::maxDeltaPadL1_
int maxDeltaPadL1_
Definition: CSCGEMMotherboard.h:225
CSCGEMMotherboard::~CSCGEMMotherboard
~CSCGEMMotherboard() override
Definition: CSCGEMMotherboard.cc:31
GEMCoPadDigi::first
GEMPadDigi first() const
Definition: GEMCoPadDigi.h:29
CSCMotherboard::LCT_Quality
LCT_Quality
Definition: CSCMotherboard.h:147
CSCGEMMotherboard::gem_g
const GEMGeometry * gem_g
Definition: CSCGEMMotherboard.h:213
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19
CSCBaseboard::runCCLUT_
bool runCCLUT_
Definition: CSCBaseboard.h:103
GEMCoPadDigi::isValid
bool isValid() const
Definition: GEMCoPadDigi.cc:18
ME1B
Definition: CSCUpgradeMotherboardLUT.h:12
CSCMotherboard::LCT_Quality::HQ_PATTERN_6_7