CMS 3D CMS Logo

MuonTriggerPrimitive.cc
Go to the documentation of this file.
2 
3 // Muon primitive digi types
12 
13 // Muon detector ID types
19 
20 #include <iostream>
21 
22 using namespace L1TMuon;
23 
24 namespace {
25  const char subsystem_names[][4] = {"DT", "CSC", "RPC", "GEM", "ME0"};
26 }
27 
28 // _____________________________________________________________________________
29 // Constructors from DT data
31  const L1MuDTChambPhDigi& digi_phi,
32  const int segment_number)
33  : _id(detid), _subsystem(L1TMuon::kDT) {
35  _eta = 0.;
36  _phi = 0.;
37  _rho = 0.;
38  _theta = 0.;
39  // fill in information from theta trigger
40  _dt.theta_bti_group = -1;
41  _dt.segment_number = segment_number;
42  _dt.theta_code = -1;
43  _dt.theta_quality = -1;
44  // now phi trigger
45  _dt.bx = digi_phi.bxNum();
46  _dt.wheel = digi_phi.whNum();
47  _dt.sector = digi_phi.scNum();
48  _dt.station = digi_phi.stNum();
49  _dt.radialAngle = digi_phi.phi();
50  _dt.bendingAngle = digi_phi.phiB();
51  _dt.qualityCode = digi_phi.code();
52  _dt.Ts2TagCode = digi_phi.Ts2Tag();
53  _dt.BxCntCode = digi_phi.BxCnt();
54  _dt.RpcBit = digi_phi.RpcBit();
55 }
56 
58  const L1MuDTChambThDigi& digi_th,
59  const int theta_bti_group)
60  : _id(detid), _subsystem(L1TMuon::kDT) {
62  _eta = 0.;
63  _phi = 0.;
64  _rho = 0.;
65  _theta = 0.;
66  // fill in information from theta trigger
67  _dt.theta_bti_group = theta_bti_group;
68  _dt.segment_number = digi_th.position(theta_bti_group);
69  _dt.theta_code = digi_th.code(theta_bti_group);
70  _dt.theta_quality = digi_th.quality(theta_bti_group);
71  // now phi trigger
72  _dt.bx = digi_th.bxNum();
73  _dt.wheel = digi_th.whNum();
74  _dt.sector = digi_th.scNum();
75  _dt.station = digi_th.stNum();
76  _dt.radialAngle = -1;
77  _dt.bendingAngle = -1;
78  _dt.qualityCode = -1;
79  _dt.Ts2TagCode = -1;
80  _dt.BxCntCode = -1;
81  _dt.RpcBit = -10;
82 }
83 
85  const L1MuDTChambPhDigi& digi_phi,
86  const L1MuDTChambThDigi& digi_th,
87  const int theta_bti_group)
88  : _id(detid), _subsystem(L1TMuon::kDT) {
90  _eta = 0.;
91  _phi = 0.;
92  _rho = 0.;
93  _theta = 0.;
94  // fill in information from theta trigger
95  _dt.theta_bti_group = theta_bti_group;
96  _dt.segment_number = digi_th.position(theta_bti_group);
97  _dt.theta_code = digi_th.code(theta_bti_group);
98  _dt.theta_quality = digi_th.quality(theta_bti_group);
99  // now phi trigger
100  _dt.bx = digi_phi.bxNum();
101  _dt.wheel = digi_phi.whNum();
102  _dt.sector = digi_phi.scNum();
103  _dt.station = digi_phi.stNum();
104  _dt.radialAngle = digi_phi.phi();
105  _dt.bendingAngle = digi_phi.phiB();
106  _dt.qualityCode = digi_phi.code();
107  _dt.Ts2TagCode = digi_phi.Ts2Tag();
108  _dt.BxCntCode = digi_phi.BxCnt();
109  _dt.RpcBit = digi_phi.RpcBit();
110 }
111 
112 // _____________________________________________________________________________
113 // Constructor from CSC data
115  : _id(detid), _subsystem(L1TMuon::kCSC) {
117  _eta = 0.;
118  _phi = 0.;
119  _rho = 0.;
120  _theta = 0.;
121  _csc.trknmb = digi.getTrknmb();
122  _csc.valid = digi.isValid();
123  _csc.quality = digi.getQuality();
124  _csc.keywire = digi.getKeyWG();
125  _csc.strip = digi.getStrip();
126  _csc.pattern = digi.getPattern();
127  _csc.bend = digi.getBend();
128  _csc.bx = digi.getBX();
129  _csc.mpclink = digi.getMPCLink();
130  _csc.bx0 = digi.getBX0();
131  _csc.syncErr = digi.getSyncErr();
132  _csc.cscID = digi.getCSCID();
133  _csc.alct_quality = digi.getALCT().getQuality();
134  _csc.clct_quality = digi.getCLCT().getQuality();
135 
136  // Use ME1/1a --> ring 4 convention
137  const bool is_me11a = (detid.station() == 1 && detid.ring() == 1 && digi.getStrip() >= 128);
138  if (is_me11a) {
139  _id = CSCDetId(detid.endcap(), detid.station(), 4, detid.chamber(), detid.layer());
140  _csc.strip = digi.getStrip() - 128;
141  }
142 }
143 
144 // _____________________________________________________________________________
145 // Constructors from RPC data
146 TriggerPrimitive::TriggerPrimitive(const RPCDetId& detid, const RPCDigi& digi) : _id(detid), _subsystem(L1TMuon::kRPC) {
148  _eta = 0.;
149  _phi = 0.;
150  _rho = 0.;
151  _theta = 0.;
152  _rpc.strip = digi.strip();
153  _rpc.strip_low = digi.strip();
154  _rpc.strip_hi = digi.strip();
155  _rpc.phi_int = 0;
156  _rpc.theta_int = 0;
157  _rpc.emtf_sector = 0;
158  _rpc.emtf_link = 0;
159  _rpc.bx = digi.bx();
160  _rpc.valid = 1;
161  _rpc.x = digi.hasX() ? digi.coordinateX() : -999999.;
162  _rpc.y = digi.hasY() ? digi.coordinateY() : -999999.;
163  _rpc.time = digi.hasTime() ? digi.time() : -999999.;
164  _rpc.isCPPF = false;
165 }
166 
168  : _id(detid), _subsystem(L1TMuon::kRPC) {
170  _eta = 0.;
171  _phi = 0.;
172  _rho = 0.;
173  _theta = 0.;
174  _rpc.strip = rechit.firstClusterStrip() + (rechit.clusterSize() - 1) / 2;
175  _rpc.strip_low = rechit.firstClusterStrip();
176  _rpc.strip_hi = rechit.firstClusterStrip() + rechit.clusterSize() - 1;
177  _rpc.phi_int = 0;
178  _rpc.theta_int = 0;
179  _rpc.emtf_sector = 0;
180  _rpc.emtf_link = 0;
181  _rpc.bx = rechit.BunchX();
182  _rpc.valid = 1;
183  _rpc.x = rechit.localPosition().x();
184  _rpc.y = rechit.localPosition().y();
185  _rpc.time = rechit.time();
186  _rpc.isCPPF = false;
187 }
188 
189 // _____________________________________________________________________________
190 // Constructor from CPPF data
192  : _id(detid), _subsystem(L1TMuon::kRPC) {
194  _eta = 0.;
195  _phi = 0.;
196  _rho = 0.;
197  _theta = 0.;
198  // In unpacked CPPF digis, the strip number and cluster size are not available, and are set to -99
199  _rpc.strip = (digi.first_strip() < 0 ? 0 : digi.first_strip() + ((digi.cluster_size() - 1) / 2));
200  _rpc.strip_low = (digi.first_strip() < 0 ? 0 : digi.first_strip());
201  _rpc.strip_hi = (digi.first_strip() < 0 ? 0 : digi.first_strip() + digi.cluster_size() - 1);
202  _rpc.phi_int = digi.phi_int();
203  _rpc.theta_int = digi.theta_int();
204  _rpc.emtf_sector = digi.emtf_sector();
205  _rpc.emtf_link = digi.emtf_link();
206  _rpc.bx = digi.bx();
207  _rpc.valid = digi.valid();
208  _rpc.x = -999999.;
209  _rpc.y = -999999.;
210  _rpc.time = -999999.;
211  _rpc.isCPPF = true;
212 }
213 
214 // _____________________________________________________________________________
215 // Constructor from GEM data
217  : _id(detid), _subsystem(L1TMuon::kGEM) {
219  _eta = 0.;
220  _phi = 0.;
221  _rho = 0.;
222  _theta = 0.;
223  _gem.pad = digi.pads().front() + ((digi.pads().size() - 1) / 2);
224  _gem.pad_low = digi.pads().front();
225  _gem.pad_hi = digi.pads().front() + digi.pads().size() - 1;
226  _gem.bx = digi.bx();
227 }
228 
229 // _____________________________________________________________________________
230 // Constructor from ME0 data
232  : _id(detid), _subsystem(L1TMuon::kME0) {
234  _eta = 0.;
235  _phi = 0.;
236  _rho = 0.;
237  _theta = 0.;
238  _me0.chamberid = digi.getChamberid();
239  _me0.quality = digi.getQuality();
241  _me0.partition = digi.getPartition();
242  _me0.deltaphi = digi.getDeltaphi();
243  _me0.bend = digi.getBend();
244  _me0.bx = digi.getBX();
245 }
246 
247 // _____________________________________________________________________________
248 // Copy constructor
250  : _dt(tp._dt),
251  _csc(tp._csc),
252  _rpc(tp._rpc),
253  _gem(tp._gem),
254  _me0(tp._me0),
255  _id(tp._id),
256  _subsystem(tp._subsystem),
257  _globalsector(tp._globalsector),
258  _subsector(tp._subsector),
259  _eta(tp._eta),
260  _phi(tp._phi),
261  _rho(tp._rho),
262  _theta(tp._theta) {}
263 
265  this->_dt = tp._dt;
266  this->_csc = tp._csc;
267  this->_rpc = tp._rpc;
268  this->_gem = tp._gem;
269  this->_me0 = tp._me0;
270  this->_id = tp._id;
271  this->_subsystem = tp._subsystem;
272  this->_globalsector = tp._globalsector;
273  this->_subsector = tp._subsector;
274  this->_eta = tp._eta;
275  this->_phi = tp._phi;
276  this->_rho = tp._rho;
277  this->_theta = tp._theta;
278  return *this;
279 }
280 
282  // Copied from Numpy
283  // https://github.com/numpy/numpy/blob/v1.14.0/numpy/core/numeric.py#L2260-L2355
284  auto isclose = [](float a, float b, float rtol = 1.e-5, float atol = 1.e-8) {
285  return std::abs(a - b) <= (atol + rtol * std::abs(b));
286  };
287 
288  switch (_subsystem) {
289  case kDT:
290  return (this->_dt.bx == tp._dt.bx && this->_dt.wheel == tp._dt.wheel && this->_dt.sector == tp._dt.sector &&
291  this->_dt.station == tp._dt.station && this->_dt.radialAngle == tp._dt.radialAngle &&
292  this->_dt.bendingAngle == tp._dt.bendingAngle && this->_dt.qualityCode == tp._dt.qualityCode &&
293  this->_dt.Ts2TagCode == tp._dt.Ts2TagCode && this->_dt.BxCntCode == tp._dt.BxCntCode &&
294  this->_dt.RpcBit == tp._dt.RpcBit && this->_dt.theta_bti_group == tp._dt.theta_bti_group &&
295  this->_dt.segment_number == tp._dt.segment_number && this->_dt.theta_code == tp._dt.theta_code &&
296  this->_dt.theta_quality == tp._dt.theta_quality && this->_id == tp._id &&
297  this->_subsystem == tp._subsystem && this->_globalsector == tp._globalsector &&
298  this->_subsector == tp._subsector);
299  case kCSC:
300  return (this->_csc.trknmb == tp._csc.trknmb && this->_csc.valid == tp._csc.valid &&
301  this->_csc.quality == tp._csc.quality && this->_csc.keywire == tp._csc.keywire &&
302  this->_csc.strip == tp._csc.strip && this->_csc.pattern == tp._csc.pattern &&
303  this->_csc.bend == tp._csc.bend && this->_csc.bx == tp._csc.bx && this->_csc.mpclink == tp._csc.mpclink &&
304  this->_csc.bx0 == tp._csc.bx0 && this->_csc.syncErr == tp._csc.syncErr &&
305  this->_csc.cscID == tp._csc.cscID && this->_csc.alct_quality == tp._csc.alct_quality &&
306  this->_csc.clct_quality == tp._csc.clct_quality && this->_id == tp._id &&
307  this->_subsystem == tp._subsystem && this->_globalsector == tp._globalsector &&
308  this->_subsector == tp._subsector);
309  case kRPC:
310  return (this->_rpc.strip == tp._rpc.strip && this->_rpc.strip_low == tp._rpc.strip_low &&
311  this->_rpc.strip_hi == tp._rpc.strip_hi && this->_rpc.phi_int == tp._rpc.phi_int &&
312  this->_rpc.theta_int == tp._rpc.theta_int && this->_rpc.emtf_sector == tp._rpc.emtf_sector &&
313  this->_rpc.emtf_link == tp._rpc.emtf_link && this->_rpc.bx == tp._rpc.bx &&
314  this->_rpc.valid == tp._rpc.valid && isclose(this->_rpc.x, tp._rpc.x) && // floating-point
315  isclose(this->_rpc.y, tp._rpc.y) && // floating-point
316  isclose(this->_rpc.time, tp._rpc.time) && // floating-point
317  this->_rpc.isCPPF == tp._rpc.isCPPF && this->_id == tp._id && this->_subsystem == tp._subsystem &&
318  this->_globalsector == tp._globalsector && this->_subsector == tp._subsector);
319  case kGEM:
320  return (this->_gem.pad == tp._gem.pad && this->_gem.pad_low == tp._gem.pad_low &&
321  this->_gem.pad_hi == tp._gem.pad_hi && this->_gem.bx == tp._gem.bx && this->_id == tp._id &&
322  this->_subsystem == tp._subsystem && this->_globalsector == tp._globalsector &&
323  this->_subsector == tp._subsector);
324  case kME0:
325  return (this->_me0.chamberid == tp._me0.chamberid && this->_me0.quality == tp._me0.quality &&
326  this->_me0.phiposition == tp._me0.phiposition && this->_me0.partition == tp._me0.partition &&
327  this->_me0.deltaphi == tp._me0.deltaphi && this->_me0.bend == tp._me0.bend &&
328  this->_me0.bx == tp._me0.bx && this->_id == tp._id && this->_subsystem == tp._subsystem &&
329  this->_globalsector == tp._globalsector && this->_subsector == tp._subsector);
330  default:
331  throw cms::Exception("Invalid Subsystem")
332  << "The specified subsystem for this track stub is out of range" << std::endl;
333  }
334  return false;
335 }
336 
337 // _____________________________________________________________________________
339  switch (_subsystem) {
340  case kDT:
341  return _dt.bx;
342  case kCSC:
343  return _csc.bx;
344  case kRPC:
345  return _rpc.bx;
346  case kGEM:
347  return _gem.bx;
348  case kME0:
349  return _me0.bx;
350  default:
351  throw cms::Exception("Invalid Subsystem")
352  << "The specified subsystem for this track stub is out of range" << std::endl;
353  }
354  return -1;
355 }
356 
358  switch (_subsystem) {
359  case kDT:
360  return _dt.radialAngle;
361  case kCSC:
362  return _csc.strip;
363  case kRPC:
364  return _rpc.strip;
365  case kGEM:
366  return _gem.pad;
367  case kME0:
368  return _me0.phiposition;
369  default:
370  throw cms::Exception("Invalid Subsystem")
371  << "The specified subsystem for this track stub is out of range" << std::endl;
372  }
373  return -1;
374 }
375 
377  switch (_subsystem) {
378  case kDT:
379  return _dt.theta_bti_group;
380  case kCSC:
381  return _csc.keywire;
382  case kRPC:
383  return -1;
384  case kGEM:
385  return -1;
386  case kME0:
387  return -1;
388  default:
389  throw cms::Exception("Invalid Subsystem")
390  << "The specified subsystem for this track stub is out of range" << std::endl;
391  }
392  return -1;
393 }
394 
396  switch (_subsystem) {
397  case kDT:
398  return -1;
399  case kCSC:
400  return _csc.pattern;
401  case kRPC:
402  return -1;
403  case kGEM:
404  return -1;
405  case kME0:
406  return -1;
407  default:
408  throw cms::Exception("Invalid Subsystem")
409  << "The specified subsystem for this track stub is out of range" << std::endl;
410  }
411  return -1;
412 }
413 
414 void TriggerPrimitive::print(std::ostream& out) const {
415  unsigned idx = (unsigned)_subsystem;
416  out << subsystem_names[idx] << " Trigger Primitive" << std::endl;
417  out << "eta: " << _eta << " phi: " << _phi << " rho: " << _rho << " theta: " << _theta << std::endl;
418  switch (_subsystem) {
419  case kDT:
420  out << detId<DTChamberId>() << std::endl;
421  out << "Local BX : " << _dt.bx << std::endl;
422  out << "Segment Nmb : " << _dt.segment_number << std::endl;
423  out << "Packed Phi : " << _dt.radialAngle << std::endl;
424  out << "Packed Bend : " << _dt.bendingAngle << std::endl;
425  out << "Quality Code : " << _dt.qualityCode << std::endl;
426  out << "Ts2Tag Code : " << _dt.Ts2TagCode << std::endl;
427  out << "BxCnt Code : " << _dt.BxCntCode << std::endl;
428  out << "RPC Bit : " << _dt.RpcBit << std::endl;
429  out << "Theta BTI Grp : " << _dt.theta_bti_group << std::endl;
430  out << "Theta Code : " << _dt.theta_code << std::endl;
431  out << "Theta Quality : " << _dt.theta_quality << std::endl;
432  break;
433  case kCSC:
434  out << detId<CSCDetId>() << std::endl;
435  out << "Local BX : " << _csc.bx << std::endl;
436  out << "Segment Nmb : " << _csc.trknmb << std::endl;
437  out << "Segment Valid : " << _csc.valid << std::endl;
438  out << "Quality Code : " << _csc.quality << std::endl;
439  out << "Key Wire Grp : " << _csc.keywire << std::endl;
440  out << "Half-Strip : " << _csc.strip << std::endl;
441  out << "CLCT Pattern : " << _csc.pattern << std::endl;
442  out << "Packed Bend : " << _csc.bend << std::endl;
443  out << "MPC Link : " << _csc.mpclink << std::endl;
444  out << "BX0 : " << _csc.bx0 << std::endl;
445  out << "Sync Error : " << _csc.syncErr << std::endl;
446  out << "CSCID : " << _csc.cscID << std::endl;
447  out << "ALCT Quality : " << _csc.alct_quality << std::endl;
448  out << "CLCT Quality : " << _csc.clct_quality << std::endl;
449  break;
450  case kRPC:
451  out << detId<RPCDetId>() << std::endl;
452  out << "Local BX : " << _rpc.bx << std::endl;
453  out << "Strip : " << _rpc.strip << std::endl;
454  out << "Strip low : " << _rpc.strip_low << std::endl;
455  out << "Strip high : " << _rpc.strip_hi << std::endl;
456  out << "Integer phi : " << _rpc.phi_int << std::endl;
457  out << "Integer theta : " << _rpc.theta_int << std::endl;
458  out << "EMTF sector : " << _rpc.emtf_sector << std::endl;
459  out << "EMTF link : " << _rpc.emtf_link << std::endl;
460  out << "Valid : " << _rpc.valid << std::endl;
461  out << "Local x : " << _rpc.x << std::endl;
462  out << "Local y : " << _rpc.y << std::endl;
463  out << "Time : " << _rpc.time << std::endl;
464  out << "IsCPPF : " << _rpc.isCPPF << std::endl;
465  break;
466  case kGEM:
467  out << detId<GEMDetId>() << std::endl;
468  out << "Local BX : " << _gem.bx << std::endl;
469  out << "Pad : " << _gem.pad << std::endl;
470  out << "Pad low : " << _gem.pad_low << std::endl;
471  out << "Pad high : " << _gem.pad_hi << std::endl;
472  break;
473  case kME0:
474  out << detId<ME0DetId>() << std::endl;
475  out << "Local BX : " << _me0.bx << std::endl;
476  out << "Chamber id : " << _me0.chamberid << std::endl;
477  out << "Quality : " << _me0.quality << std::endl;
478  out << "Phiposition : " << _me0.phiposition << std::endl;
479  out << "Partition : " << _me0.partition << std::endl;
480  out << "Deltaphi : " << _me0.deltaphi << std::endl;
481  out << "Bend : " << _me0.bend << std::endl;
482  break;
483  default:
484  throw cms::Exception("Invalid Subsystem")
485  << "The specified subsystem for this track stub is out of range" << std::endl;
486  }
487 }
L1TMuon::TriggerPrimitive::DTData::segment_number
int segment_number
Definition: MuonTriggerPrimitive.h:159
L1TMuon::TriggerPrimitive::getWire
int getWire() const
Definition: MuonTriggerPrimitive.cc:376
L1TMuon::TriggerPrimitive::CSCData::bx
uint16_t bx
Definition: MuonTriggerPrimitive.h:116
ME0TriggerDigi.h
l1t::CPPFDigi::theta_int
int theta_int() const
Definition: CPPFDigi.h:54
L1MuDTChambThDigi::position
int position(const int i) const
Definition: L1MuDTChambThDigi.cc:90
L1MuDTChambThDigi.h
ME0TriggerDigi::getDeltaphi
int getDeltaphi() const
return bending angle
Definition: ME0TriggerDigi.h:65
L1TMuon::TriggerPrimitive::_id
DetId _id
Definition: MuonTriggerPrimitive.h:291
L1MuDTChambPhDigi.h
L1MuDTChambPhDigi::stNum
int stNum() const
Definition: L1MuDTChambPhDigi.cc:72
l1t::CPPFDigi::first_strip
int first_strip() const
Definition: CPPFDigi.h:60
CSCCorrelatedLCTDigi::getTrknmb
uint16_t getTrknmb() const
return track number
Definition: CSCCorrelatedLCTDigi.h:52
L1TMuon::TriggerPrimitive::_rpc
RPCData _rpc
Definition: MuonTriggerPrimitive.h:287
l1t::CPPFDigi::cluster_size
int cluster_size() const
Definition: CPPFDigi.h:61
L1MuDTChambPhDigi::RpcBit
int RpcBit() const
Definition: L1MuDTChambPhDigi.cc:84
CSCDetId::ring
int ring() const
Definition: CSCDetId.h:68
L1TMuon::TriggerPrimitive::DTData::bx
int bx
Definition: MuonTriggerPrimitive.h:143
CSCCorrelatedLCTDigi::getStrip
uint16_t getStrip(uint16_t n=2) const
return the key halfstrip from 0,159
Definition: CSCCorrelatedLCTDigi.cc:72
CSCCorrelatedLCTDigi::getCLCT
const CSCCLCTDigi & getCLCT() const
Definition: CSCCorrelatedLCTDigi.h:221
ME0DetId.h
RPCDetId
Definition: RPCDetId.h:16
RPCRecHit::BunchX
int BunchX() const
Definition: RPCRecHit.h:73
CSCCorrelatedLCTDigi::getKeyWG
uint16_t getKeyWG() const
return the key wire group. counts from 0.
Definition: CSCCorrelatedLCTDigi.h:61
L1TMuon::TriggerPrimitive::TriggerPrimitive
TriggerPrimitive()
Definition: MuonTriggerPrimitive.h:186
GEMPadDigiCluster
Definition: GEMPadDigiCluster.h:19
L1MuDTChambPhDigi::whNum
int whNum() const
Definition: L1MuDTChambPhDigi.cc:70
L1TMuon::TriggerPrimitive::DTData::Ts2TagCode
int Ts2TagCode
Definition: MuonTriggerPrimitive.h:150
L1TMuon::TriggerPrimitive::DTData::wheel
int wheel
Definition: MuonTriggerPrimitive.h:144
L1TMuon::TriggerPrimitive::RPCData::isCPPF
bool isCPPF
Definition: MuonTriggerPrimitive.h:90
L1TMuon::TriggerPrimitive::print
void print(std::ostream &) const
Definition: MuonTriggerPrimitive.cc:414
GEMPadDigiCluster::pads
const std::vector< uint16_t > & pads() const
Definition: GEMPadDigiCluster.h:39
RPCDigi::time
double time() const
Definition: RPCDigi.h:29
RPCDigi::coordinateX
double coordinateX() const
Definition: RPCDigi.h:30
CSCCorrelatedLCTDigi.h
L1MuDTChambThDigi::whNum
int whNum() const
Definition: L1MuDTChambThDigi.cc:79
L1TMuon::TriggerPrimitive::DTData::station
int station
Definition: MuonTriggerPrimitive.h:146
L1TMuon::TriggerPrimitive::CSCData::bx0
uint16_t bx0
Definition: MuonTriggerPrimitive.h:118
L1TMuon::TriggerPrimitive::DTData::bendingAngle
int bendingAngle
Definition: MuonTriggerPrimitive.h:148
L1TMuon::TriggerPrimitive::CSCData::valid
uint16_t valid
Definition: MuonTriggerPrimitive.h:110
L1TMuon::TriggerPrimitive::_me0
ME0Data _me0
Definition: MuonTriggerPrimitive.h:289
L1MuDTChambPhDigi::phiB
int phiB() const
Definition: L1MuDTChambPhDigi.cc:76
CPPFDigi.h
L1TMuon::TriggerPrimitive::CSCData::strip
uint16_t strip
Definition: MuonTriggerPrimitive.h:113
L1TMuon::TriggerPrimitive::RPCData::strip
uint16_t strip
Definition: MuonTriggerPrimitive.h:78
L1TMuon::TriggerPrimitive::_csc
CSCData _csc
Definition: MuonTriggerPrimitive.h:286
L1TMuon::TriggerPrimitive::CSCData::pattern
uint16_t pattern
Definition: MuonTriggerPrimitive.h:114
L1TMuon::TriggerPrimitive::_subsector
unsigned _subsector
Definition: MuonTriggerPrimitive.h:296
GEMPadDigiCluster::bx
int bx() const
Definition: GEMPadDigiCluster.h:40
CSCDetId.h
L1MuDTChambThDigi::code
int code(const int i) const
Definition: L1MuDTChambThDigi.cc:83
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
RPCDigi::bx
int bx() const
Definition: RPCDigi.h:28
RPCDigi::hasX
bool hasX() const
Definition: RPCDigi.h:33
ME0TriggerDigi::getPhiposition
int getPhiposition() const
return the phi position, resolution: half strip level
Definition: ME0TriggerDigi.h:59
CSCCLCTDigi::getQuality
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
L1TMuon::TriggerPrimitive::RPCData::phi_int
uint16_t phi_int
Definition: MuonTriggerPrimitive.h:81
L1TMuon::kRPC
Definition: L1TMuonSubsystems.h:5
L1TMuon::TriggerPrimitive::RPCData::strip_hi
uint16_t strip_hi
Definition: MuonTriggerPrimitive.h:80
RPCRecHit::time
float time() const
Definition: RPCRecHit.h:79
L1TMuon::TriggerPrimitive::RPCData::y
float y
Definition: MuonTriggerPrimitive.h:88
L1TMuon::kME0
Definition: L1TMuonSubsystems.h:5
ME0TriggerDigi::getQuality
int getQuality() const
return the Quality
Definition: ME0TriggerDigi.h:53
L1MuDTChambPhDigi::BxCnt
int BxCnt() const
Definition: L1MuDTChambPhDigi.cc:82
L1TMuon::TriggerPrimitive::GEMData::pad_hi
uint16_t pad_hi
Definition: MuonTriggerPrimitive.h:169
L1TMuon::TriggerPrimitive::ME0Data::quality
uint16_t quality
Definition: MuonTriggerPrimitive.h:177
L1TMuon::TriggerPrimitive::DTData::radialAngle
int radialAngle
Definition: MuonTriggerPrimitive.h:147
L1MuDTChambPhDigi::phi
int phi() const
Definition: L1MuDTChambPhDigi.cc:74
RPCRecHit
Definition: RPCRecHit.h:14
ME0TriggerDigi::getChamberid
int getChamberid() const
return chamber number in one CTP7
Definition: ME0TriggerDigi.h:50
RPCDigi::hasTime
bool hasTime() const
Definition: RPCDigi.h:32
L1TMuon::TriggerPrimitive::DTData::theta_bti_group
int theta_bti_group
Definition: MuonTriggerPrimitive.h:158
L1TMuon::TriggerPrimitive::calculateGlobalSector
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
Definition: MuonTriggerPrimitive.h:279
CSCDetId::layer
int layer() const
Definition: CSCDetId.h:56
L1TMuon::TriggerPrimitive::GEMData::pad
uint16_t pad
Definition: MuonTriggerPrimitive.h:167
L1TMuon::TriggerPrimitive::CSCData::bend
uint16_t bend
Definition: MuonTriggerPrimitive.h:115
L1TMuon::TriggerPrimitive::_theta
double _theta
Definition: MuonTriggerPrimitive.h:298
L1MuDTChambThDigi::scNum
int scNum() const
Definition: L1MuDTChambThDigi.cc:80
L1TMuon::TriggerPrimitive::RPCData::theta_int
uint16_t theta_int
Definition: MuonTriggerPrimitive.h:82
CSCCorrelatedLCTDigi::getBX0
uint16_t getBX0() const
Definition: CSCCorrelatedLCTDigi.h:134
GEMPadDigiCluster.h
L1TMuon::TriggerPrimitive
Definition: MuonTriggerPrimitive.h:57
CSCCorrelatedLCTDigi::getBend
uint16_t getBend() const
Definition: CSCCorrelatedLCTDigi.h:115
RPCDigi.h
L1TMuon::TriggerPrimitive::CSCData::alct_quality
uint16_t alct_quality
Definition: MuonTriggerPrimitive.h:121
L1TMuon::TriggerPrimitive::RPCData::emtf_sector
uint16_t emtf_sector
Definition: MuonTriggerPrimitive.h:83
b
double b
Definition: hdecay.h:118
DTChamberId.h
CSCALCTDigi::getQuality
uint16_t getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:46
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
ME0TriggerDigi::getPartition
int getPartition() const
return the key "partition"
Definition: ME0TriggerDigi.h:62
L1TMuon::TriggerPrimitive::_phi
double _phi
Definition: MuonTriggerPrimitive.h:297
L1TMuon::TriggerPrimitive::RPCData::x
float x
Definition: MuonTriggerPrimitive.h:87
RPCDetId.h
l1t::CPPFDigi::valid
int valid() const
Definition: CPPFDigi.h:55
ME0TriggerDigi::getBX
int getBX() const
return BX
Definition: ME0TriggerDigi.h:71
L1TMuon::TriggerPrimitive::CSCData::syncErr
uint16_t syncErr
Definition: MuonTriggerPrimitive.h:119
L1TMuon::kCSC
Definition: L1TMuonSubsystems.h:5
L1TMuon::kDT
Definition: L1TMuonSubsystems.h:5
L1MuDTChambPhDigi::bxNum
int bxNum() const
Definition: L1MuDTChambPhDigi.cc:68
L1TMuon::TriggerPrimitive::CSCData::quality
uint16_t quality
Definition: MuonTriggerPrimitive.h:111
a
double a
Definition: hdecay.h:119
L1TMuon::TriggerPrimitive::ME0Data::phiposition
uint16_t phiposition
Definition: MuonTriggerPrimitive.h:178
l1t::CPPFDigi::bx
int bx() const
Definition: CPPFDigi.h:52
L1TMuon::TriggerPrimitive::DTData::BxCntCode
int BxCntCode
Definition: MuonTriggerPrimitive.h:151
ME0TriggerDigi::getBend
int getBend() const
return bend
Definition: ME0TriggerDigi.h:68
RPCRecHit::localPosition
LocalPoint localPosition() const override
Return the 3-dimensional local position.
Definition: RPCRecHit.h:37
L1TMuon::TriggerPrimitive::_dt
DTData _dt
Definition: MuonTriggerPrimitive.h:285
GEMDetId
Definition: GEMDetId.h:18
RPCRecHit::clusterSize
int clusterSize() const
Definition: RPCRecHit.h:77
L1TMuon::TriggerPrimitive::DTData::qualityCode
int qualityCode
Definition: MuonTriggerPrimitive.h:149
CSCDetId
Definition: CSCDetId.h:26
L1TMuon::kGEM
Definition: L1TMuonSubsystems.h:5
L1TMuon::TriggerPrimitive::operator=
TriggerPrimitive & operator=(const TriggerPrimitive &tp)
Definition: MuonTriggerPrimitive.cc:264
L1TMuon::TriggerPrimitive::ME0Data::chamberid
uint16_t chamberid
Definition: MuonTriggerPrimitive.h:176
CSCCorrelatedLCTDigi::getCSCID
uint16_t getCSCID() const
Definition: CSCCorrelatedLCTDigi.h:133
CSCCorrelatedLCTDigi::getALCT
const CSCALCTDigi & getALCT() const
Definition: CSCCorrelatedLCTDigi.h:220
l1t::CPPFDigi::emtf_link
int emtf_link() const
Definition: CPPFDigi.h:59
RPCDigi::hasY
bool hasY() const
Definition: RPCDigi.h:34
CSCDetId::chamber
int chamber() const
Definition: CSCDetId.h:62
ME0DetId
Definition: ME0DetId.h:16
L1MuDTChambThDigi::quality
int quality(const int i) const
Definition: L1MuDTChambThDigi.cc:97
L1MuDTChambPhDigi::scNum
int scNum() const
Definition: L1MuDTChambPhDigi.cc:71
L1TMuon::TriggerPrimitive::DTData::theta_quality
int theta_quality
Definition: MuonTriggerPrimitive.h:161
L1TMuon
Definition: L1TMuonSubsystems.h:4
MuonTriggerPrimitive.h
RPCDigi::strip
int strip() const
Definition: RPCDigi.h:27
L1TMuon::TriggerPrimitive::GEMData::bx
int16_t bx
Definition: MuonTriggerPrimitive.h:170
L1TMuon::TriggerPrimitive::CSCData::keywire
uint16_t keywire
Definition: MuonTriggerPrimitive.h:112
L1TMuon::TriggerPrimitive::_eta
double _eta
Definition: MuonTriggerPrimitive.h:297
L1MuDTChambThDigi::stNum
int stNum() const
Definition: L1MuDTChambThDigi.cc:81
L1TMuon::TriggerPrimitive::CSCData::trknmb
uint16_t trknmb
Definition: MuonTriggerPrimitive.h:109
ME0TriggerDigi
Definition: ME0TriggerDigi.h:28
L1TMuon::TriggerPrimitive::ME0Data::bend
uint16_t bend
Definition: MuonTriggerPrimitive.h:181
L1TMuon::TriggerPrimitive::ME0Data::partition
uint16_t partition
Definition: MuonTriggerPrimitive.h:179
GEMDetId.h
CSCCorrelatedLCTDigi::getSyncErr
uint16_t getSyncErr() const
Definition: CSCCorrelatedLCTDigi.h:135
L1TMuon::TriggerPrimitive::CSCData::cscID
uint16_t cscID
Definition: MuonTriggerPrimitive.h:120
L1TMuon::TriggerPrimitive::operator==
bool operator==(const TriggerPrimitive &tp) const
Definition: MuonTriggerPrimitive.cc:281
L1MuDTChambThDigi
Definition: L1MuDTChambThDigi.h:33
L1TMuon::TriggerPrimitive::RPCData::time
float time
Definition: MuonTriggerPrimitive.h:89
RPCDigi
Definition: RPCDigi.h:19
L1TMuon::TriggerPrimitive::CSCData::clct_quality
uint16_t clct_quality
Definition: MuonTriggerPrimitive.h:122
l1t::CPPFDigi
Definition: CPPFDigi.h:12
CSCDetId::endcap
int endcap() const
Definition: CSCDetId.h:85
CSCCorrelatedLCTDigi::getPattern
uint16_t getPattern() const
Definition: CSCCorrelatedLCTDigi.cc:151
L1TMuon::TriggerPrimitive::RPCData::bx
int16_t bx
Definition: MuonTriggerPrimitive.h:85
L1TMuon::TriggerPrimitive::RPCData::strip_low
uint16_t strip_low
Definition: MuonTriggerPrimitive.h:79
Exception
Definition: hltDiff.cc:245
l1t::CPPFDigi::emtf_sector
int emtf_sector() const
Definition: CPPFDigi.h:58
L1TMuon::TriggerPrimitive::DTData::RpcBit
int RpcBit
Definition: MuonTriggerPrimitive.h:152
RPCDigi::coordinateY
double coordinateY() const
Definition: RPCDigi.h:31
CSCCorrelatedLCTDigi::getMPCLink
uint16_t getMPCLink() const
return MPC link number, 0 means not sorted, 1-3 give MPC sorting rank
Definition: CSCCorrelatedLCTDigi.h:131
RPCRecHit.h
L1TMuon::TriggerPrimitive::ME0Data::deltaphi
uint16_t deltaphi
Definition: MuonTriggerPrimitive.h:180
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
L1TMuon::TriggerPrimitive::CSCData::mpclink
uint16_t mpclink
Definition: MuonTriggerPrimitive.h:117
L1MuDTChambPhDigi::Ts2Tag
int Ts2Tag() const
Definition: L1MuDTChambPhDigi.cc:80
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
DTChamberId
Definition: DTChamberId.h:14
L1MuDTChambThDigi::bxNum
int bxNum() const
Definition: L1MuDTChambThDigi.cc:77
L1TMuon::TriggerPrimitive::RPCData::emtf_link
uint16_t emtf_link
Definition: MuonTriggerPrimitive.h:84
L1TMuon::TriggerPrimitive::getStrip
int getStrip() const
Definition: MuonTriggerPrimitive.cc:357
CSCDetId::station
int station() const
Definition: CSCDetId.h:79
L1TMuon::TriggerPrimitive::GEMData::pad_low
uint16_t pad_low
Definition: MuonTriggerPrimitive.h:168
L1TMuon::TriggerPrimitive::_subsystem
subsystem_type _subsystem
Definition: MuonTriggerPrimitive.h:293
L1TMuon::TriggerPrimitive::getBX
int getBX() const
Definition: MuonTriggerPrimitive.cc:338
CSCCorrelatedLCTDigi::getBX
uint16_t getBX() const
return BX
Definition: CSCCorrelatedLCTDigi.h:118
L1TMuon::TriggerPrimitive::DTData::sector
int sector
Definition: MuonTriggerPrimitive.h:145
RPCRecHit::firstClusterStrip
int firstClusterStrip() const
Definition: RPCRecHit.h:75
L1MuDTChambPhDigi::code
int code() const
Definition: L1MuDTChambPhDigi.cc:78
L1TMuon::TriggerPrimitive::ME0Data::bx
uint16_t bx
Definition: MuonTriggerPrimitive.h:182
CSCCorrelatedLCTDigi::isValid
bool isValid() const
return valid pattern bit
Definition: CSCCorrelatedLCTDigi.h:55
CSCCorrelatedLCTDigi::getQuality
uint16_t getQuality() const
return the Quality
Definition: CSCCorrelatedLCTDigi.h:58
L1TMuon::TriggerPrimitive::_gem
GEMData _gem
Definition: MuonTriggerPrimitive.h:288
L1TMuon::TriggerPrimitive::_globalsector
unsigned _globalsector
Definition: MuonTriggerPrimitive.h:295
L1TMuon::TriggerPrimitive::_rho
double _rho
Definition: MuonTriggerPrimitive.h:297
L1TMuon::TriggerPrimitive::getPattern
int getPattern() const
Definition: MuonTriggerPrimitive.cc:395
L1TMuon::TriggerPrimitive::DTData::theta_code
int theta_code
Definition: MuonTriggerPrimitive.h:160
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19
L1MuDTChambPhDigi
Definition: L1MuDTChambPhDigi.h:31
L1TMuon::TriggerPrimitive::RPCData::valid
int16_t valid
Definition: MuonTriggerPrimitive.h:86
l1t::CPPFDigi::phi_int
int phi_int() const
Definition: CPPFDigi.h:53