CMS 3D CMS Logo

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