CMS 3D CMS Logo

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