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