CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
L1TMuon::TriggerPrimitive Class Reference

#include <MuonTriggerPrimitive.h>

Classes

struct  CSCData
 
struct  DTData
 
struct  GEMData
 
struct  ME0Data
 
struct  RPCData
 

Public Member Functions

CSCDataaccessCSCData ()
 
DTDataaccessDTData ()
 
GEMDataaccessGEMData ()
 
ME0DataaccessME0Data ()
 
RPCDataaccessRPCData ()
 
template<typename IDType >
IDType detId () const
 
int getBX () const
 
double getCMSGlobalEta () const
 
double getCMSGlobalPhi () const
 
GlobalPoint getCMSGlobalPoint () const
 
double getCMSGlobalRho () const
 
CSCData getCSCData () const
 
DTData getDTData () const
 
GEMData getGEMData () const
 
unsigned getGlobalSector () const
 
ME0Data getME0Data () const
 
int getPattern () const
 
RPCData getRPCData () const
 
int getStrip () const
 
unsigned getSubSector () const
 
double getThetaBend () const
 
int getWire () const
 
TriggerPrimitiveoperator= (const TriggerPrimitive &tp)
 
bool operator== (const TriggerPrimitive &tp) const
 
void print (std::ostream &) const
 
DetId rawId () const
 
void setCMSGlobalEta (double eta)
 
void setCMSGlobalPhi (double phi)
 
void setCMSGlobalRho (double rho)
 
void setCSCData (const CSCData &csc)
 
void setDTData (const DTData &dt)
 
void setGEMData (const GEMData &gem)
 
void setME0Data (const ME0Data &me0)
 
void setRPCData (const RPCData &rpc)
 
void setThetaBend (double theta)
 
subsystem_type subsystem () const
 
 TriggerPrimitive ()
 
 TriggerPrimitive (const DTChamberId &detid, const L1MuDTChambPhDigi &digi_phi, const int segment_number)
 
 TriggerPrimitive (const DTChamberId &detid, const L1MuDTChambThDigi &digi_th, const int theta_bti_group)
 
 TriggerPrimitive (const DTChamberId &detid, const L1MuDTChambPhDigi &digi_phi, const L1MuDTChambThDigi &digi_th, const int theta_bti_group)
 
 TriggerPrimitive (const CSCDetId &detid, const CSCCorrelatedLCTDigi &digi)
 
 TriggerPrimitive (const RPCDetId &detid, const RPCDigi &digi)
 
 TriggerPrimitive (const RPCDetId &detid, const RPCRecHit &rechit)
 
 TriggerPrimitive (const RPCDetId &detid, const l1t::CPPFDigi &digi)
 
 TriggerPrimitive (const GEMDetId &detid, const GEMPadDigiCluster &digi)
 
 TriggerPrimitive (const ME0DetId &detid, const ME0TriggerDigi &digi)
 
 TriggerPrimitive (const GEMDetId &detid, const ME0TriggerDigi &digi)
 
 TriggerPrimitive (const TriggerPrimitive &tp)
 

Private Member Functions

template<typename IDType >
void calculateGlobalSector (const IDType &chid, unsigned &globalsector, unsigned &subsector) const
 

Private Attributes

CSCData _csc
 
DTData _dt
 
double _eta
 
GEMData _gem
 
unsigned _globalsector
 
DetId _id
 
ME0Data _me0
 
double _phi
 
double _rho
 
RPCData _rpc
 
unsigned _subsector
 
subsystem_type _subsystem
 
double _theta
 

Detailed Description

Definition at line 57 of file MuonTriggerPrimitive.h.

Constructor & Destructor Documentation

◆ TriggerPrimitive() [1/12]

L1TMuon::TriggerPrimitive::TriggerPrimitive ( )
inline

◆ TriggerPrimitive() [2/12]

TriggerPrimitive::TriggerPrimitive ( const DTChamberId detid,
const L1MuDTChambPhDigi digi_phi,
const int  segment_number 
)

Definition at line 30 of file MuonTriggerPrimitive.cc.

References _dt, _eta, _globalsector, _phi, _rho, _subsector, _theta, L1TMuon::TriggerPrimitive::DTData::bendingAngle, L1TMuon::TriggerPrimitive::DTData::bx, L1MuDTChambPhDigi::BxCnt(), L1TMuon::TriggerPrimitive::DTData::BxCntCode, L1MuDTChambPhDigi::bxNum(), calculateGlobalSector(), L1MuDTChambPhDigi::code(), L1MuDTChambPhDigi::phi(), L1MuDTChambPhDigi::phiB(), L1TMuon::TriggerPrimitive::DTData::qualityCode, L1TMuon::TriggerPrimitive::DTData::radialAngle, L1MuDTChambPhDigi::RpcBit(), L1TMuon::TriggerPrimitive::DTData::RpcBit, L1MuDTChambPhDigi::scNum(), L1TMuon::TriggerPrimitive::DTData::sector, L1TMuon::TriggerPrimitive::DTData::segment_number, L1TMuon::TriggerPrimitive::DTData::station, L1MuDTChambPhDigi::stNum(), L1TMuon::TriggerPrimitive::DTData::theta_bti_group, L1TMuon::TriggerPrimitive::DTData::theta_code, L1TMuon::TriggerPrimitive::DTData::theta_quality, L1MuDTChambPhDigi::Ts2Tag(), L1TMuon::TriggerPrimitive::DTData::Ts2TagCode, L1TMuon::TriggerPrimitive::DTData::wheel, and L1MuDTChambPhDigi::whNum().

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 }
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const

◆ TriggerPrimitive() [3/12]

TriggerPrimitive::TriggerPrimitive ( const DTChamberId detid,
const L1MuDTChambThDigi digi_th,
const int  theta_bti_group 
)

Definition at line 57 of file MuonTriggerPrimitive.cc.

References _dt, _eta, _globalsector, _phi, _rho, _subsector, _theta, L1TMuon::TriggerPrimitive::DTData::bendingAngle, L1TMuon::TriggerPrimitive::DTData::bx, L1TMuon::TriggerPrimitive::DTData::BxCntCode, L1MuDTChambThDigi::bxNum(), calculateGlobalSector(), L1MuDTChambThDigi::code(), L1MuDTChambThDigi::position(), L1MuDTChambThDigi::quality(), L1TMuon::TriggerPrimitive::DTData::qualityCode, L1TMuon::TriggerPrimitive::DTData::radialAngle, L1TMuon::TriggerPrimitive::DTData::RpcBit, L1MuDTChambThDigi::scNum(), L1TMuon::TriggerPrimitive::DTData::sector, L1TMuon::TriggerPrimitive::DTData::segment_number, L1TMuon::TriggerPrimitive::DTData::station, L1MuDTChambThDigi::stNum(), L1TMuon::TriggerPrimitive::DTData::theta_bti_group, L1TMuon::TriggerPrimitive::DTData::theta_code, L1TMuon::TriggerPrimitive::DTData::theta_quality, L1TMuon::TriggerPrimitive::DTData::Ts2TagCode, L1TMuon::TriggerPrimitive::DTData::wheel, and L1MuDTChambThDigi::whNum().

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 }
int position(const int i) const
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
int code(const int i) const
int quality(const int i) const

◆ TriggerPrimitive() [4/12]

TriggerPrimitive::TriggerPrimitive ( const DTChamberId detid,
const L1MuDTChambPhDigi digi_phi,
const L1MuDTChambThDigi digi_th,
const int  theta_bti_group 
)

Definition at line 84 of file MuonTriggerPrimitive.cc.

References _dt, _eta, _globalsector, _phi, _rho, _subsector, _theta, L1TMuon::TriggerPrimitive::DTData::bendingAngle, L1TMuon::TriggerPrimitive::DTData::bx, L1MuDTChambPhDigi::BxCnt(), L1TMuon::TriggerPrimitive::DTData::BxCntCode, L1MuDTChambPhDigi::bxNum(), calculateGlobalSector(), L1MuDTChambPhDigi::code(), L1MuDTChambThDigi::code(), L1MuDTChambPhDigi::phi(), L1MuDTChambPhDigi::phiB(), L1MuDTChambThDigi::position(), L1MuDTChambThDigi::quality(), L1TMuon::TriggerPrimitive::DTData::qualityCode, L1TMuon::TriggerPrimitive::DTData::radialAngle, L1MuDTChambPhDigi::RpcBit(), L1TMuon::TriggerPrimitive::DTData::RpcBit, L1MuDTChambPhDigi::scNum(), L1TMuon::TriggerPrimitive::DTData::sector, L1TMuon::TriggerPrimitive::DTData::segment_number, L1TMuon::TriggerPrimitive::DTData::station, L1MuDTChambPhDigi::stNum(), L1TMuon::TriggerPrimitive::DTData::theta_bti_group, L1TMuon::TriggerPrimitive::DTData::theta_code, L1TMuon::TriggerPrimitive::DTData::theta_quality, L1MuDTChambPhDigi::Ts2Tag(), L1TMuon::TriggerPrimitive::DTData::Ts2TagCode, L1TMuon::TriggerPrimitive::DTData::wheel, and L1MuDTChambPhDigi::whNum().

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 }
int position(const int i) const
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
int code(const int i) const
int quality(const int i) const

◆ TriggerPrimitive() [5/12]

TriggerPrimitive::TriggerPrimitive ( const CSCDetId detid,
const CSCCorrelatedLCTDigi digi 
)

Definition at line 114 of file MuonTriggerPrimitive.cc.

References _csc, _eta, _globalsector, _id, _phi, _rho, _subsector, _theta, L1TMuon::TriggerPrimitive::CSCData::alct_quality, L1TMuon::TriggerPrimitive::CSCData::bend, L1TMuon::TriggerPrimitive::CSCData::bx, L1TMuon::TriggerPrimitive::CSCData::bx0, calculateGlobalSector(), CSCDetId::chamber(), L1TMuon::TriggerPrimitive::CSCData::clct_quality, L1TMuon::TriggerPrimitive::CSCData::cscID, CSCDetId::endcap(), CSCCorrelatedLCTDigi::getALCT(), CSCCorrelatedLCTDigi::getBend(), CSCCorrelatedLCTDigi::getBX(), CSCCorrelatedLCTDigi::getBX0(), CSCCorrelatedLCTDigi::getCLCT(), CSCCorrelatedLCTDigi::getCSCID(), CSCCorrelatedLCTDigi::getEighthStripBit(), CSCCorrelatedLCTDigi::getKeyWG(), CSCCorrelatedLCTDigi::getMPCLink(), CSCCorrelatedLCTDigi::getPattern(), CSCALCTDigi::getQuality(), CSCCLCTDigi::getQuality(), CSCCorrelatedLCTDigi::getQuality(), CSCCorrelatedLCTDigi::getQuartStripBit(), CSCCorrelatedLCTDigi::getRun3Pattern(), CSCCorrelatedLCTDigi::getSlope(), CSCCorrelatedLCTDigi::getStrip(), CSCCorrelatedLCTDigi::getSyncErr(), CSCCorrelatedLCTDigi::getTrknmb(), CSCCorrelatedLCTDigi::isValid(), L1TMuon::TriggerPrimitive::CSCData::keywire, CSCDetId::layer(), L1TMuon::TriggerPrimitive::CSCData::mpclink, L1TMuon::TriggerPrimitive::CSCData::pattern, L1TMuon::TriggerPrimitive::CSCData::pattern_run3, L1TMuon::TriggerPrimitive::CSCData::quality, CSCDetId::ring(), L1TMuon::TriggerPrimitive::CSCData::slope, CSCDetId::station(), L1TMuon::TriggerPrimitive::CSCData::strip, L1TMuon::TriggerPrimitive::CSCData::strip_eighth, L1TMuon::TriggerPrimitive::CSCData::strip_eighth_bit, L1TMuon::TriggerPrimitive::CSCData::strip_quart, L1TMuon::TriggerPrimitive::CSCData::strip_quart_bit, L1TMuon::TriggerPrimitive::CSCData::syncErr, L1TMuon::TriggerPrimitive::CSCData::trknmb, and L1TMuon::TriggerPrimitive::CSCData::valid.

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  // run-3
137  _csc.slope = digi.getSlope();
140  _csc.strip_quart = digi.getStrip(4);
141  _csc.strip_eighth = digi.getStrip(8);
142 
143  // Use ME1/1a --> ring 4 convention
144  const bool is_me11a = (detid.station() == 1 && detid.ring() == 1 && digi.getStrip() >= 128);
145  if (is_me11a) {
146  _id = CSCDetId(detid.endcap(), detid.station(), 4, detid.chamber(), detid.layer());
147  _csc.strip = digi.getStrip() - 128;
148  }
149 }
uint16_t getSlope() const
return the slope
uint16_t getPattern() const
return the Run-2 pattern ID
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
int layer() const
Definition: CSCDetId.h:56
uint16_t getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:46
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
uint16_t getMPCLink() const
return MPC link number, 0 means not sorted, 1-3 give MPC sorting rank
uint16_t getBX() const
return BX
bool isValid() const
return valid pattern bit
int chamber() const
Definition: CSCDetId.h:62
bool getEighthStripBit() const
get single eighth strip bit
uint16_t getSyncErr() const
uint16_t getTrknmb() const
return track number
uint16_t getQuality() const
return the Quality
uint16_t getStrip(uint16_t n=2) const
return the key halfstrip from 0,159
const CSCCLCTDigi & getCLCT() const
int station() const
Definition: CSCDetId.h:79
bool getQuartStripBit() const
get single quart strip bit
int endcap() const
Definition: CSCDetId.h:85
uint16_t getKeyWG() const
return the key wire group. counts from 0.
int ring() const
Definition: CSCDetId.h:68
uint16_t getRun3Pattern() const
return the Run-3 pattern ID
const CSCALCTDigi & getALCT() const

◆ TriggerPrimitive() [6/12]

TriggerPrimitive::TriggerPrimitive ( const RPCDetId detid,
const RPCDigi digi 
)

Definition at line 153 of file MuonTriggerPrimitive.cc.

References _eta, _globalsector, _phi, _rho, _rpc, _subsector, _theta, RPCDigi::bx(), L1TMuon::TriggerPrimitive::RPCData::bx, calculateGlobalSector(), RPCDigi::coordinateX(), RPCDigi::coordinateY(), L1TMuon::TriggerPrimitive::RPCData::emtf_link, L1TMuon::TriggerPrimitive::RPCData::emtf_sector, RPCDigi::hasTime(), RPCDigi::hasX(), RPCDigi::hasY(), L1TMuon::TriggerPrimitive::RPCData::isCPPF, L1TMuon::TriggerPrimitive::RPCData::phi_int, RPCDigi::strip(), L1TMuon::TriggerPrimitive::RPCData::strip, L1TMuon::TriggerPrimitive::RPCData::strip_hi, L1TMuon::TriggerPrimitive::RPCData::strip_low, L1TMuon::TriggerPrimitive::RPCData::theta_int, RPCDigi::time(), L1TMuon::TriggerPrimitive::RPCData::time, L1TMuon::TriggerPrimitive::RPCData::valid, L1TMuon::TriggerPrimitive::RPCData::x, and L1TMuon::TriggerPrimitive::RPCData::y.

153  : _id(detid), _subsystem(L1TMuon::kRPC) {
155  _eta = 0.;
156  _phi = 0.;
157  _rho = 0.;
158  _theta = 0.;
159  _rpc.strip = digi.strip();
160  _rpc.strip_low = digi.strip();
161  _rpc.strip_hi = digi.strip();
162  _rpc.phi_int = 0;
163  _rpc.theta_int = 0;
164  _rpc.emtf_sector = 0;
165  _rpc.emtf_link = 0;
166  _rpc.bx = digi.bx();
167  _rpc.valid = 1;
168  _rpc.x = digi.hasX() ? digi.coordinateX() : -999999.;
169  _rpc.y = digi.hasY() ? digi.coordinateY() : -999999.;
170  _rpc.time = digi.hasTime() ? digi.time() : -999999.;
171  _rpc.isCPPF = false;
172 }
double coordinateY() const
Definition: RPCDigi.h:31
int bx() const
Definition: RPCDigi.h:28
bool hasY() const
Definition: RPCDigi.h:34
double coordinateX() const
Definition: RPCDigi.h:30
bool hasX() const
Definition: RPCDigi.h:33
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
bool hasTime() const
Definition: RPCDigi.h:32
double time() const
Definition: RPCDigi.h:29
int strip() const
Definition: RPCDigi.h:27

◆ TriggerPrimitive() [7/12]

TriggerPrimitive::TriggerPrimitive ( const RPCDetId detid,
const RPCRecHit rechit 
)

Definition at line 174 of file MuonTriggerPrimitive.cc.

References _eta, _globalsector, _phi, _rho, _rpc, _subsector, _theta, RPCRecHit::BunchX(), L1TMuon::TriggerPrimitive::RPCData::bx, calculateGlobalSector(), RPCRecHit::clusterSize(), L1TMuon::TriggerPrimitive::RPCData::emtf_link, L1TMuon::TriggerPrimitive::RPCData::emtf_sector, RPCRecHit::firstClusterStrip(), L1TMuon::TriggerPrimitive::RPCData::isCPPF, RPCRecHit::localPosition(), L1TMuon::TriggerPrimitive::RPCData::phi_int, L1TMuon::TriggerPrimitive::RPCData::strip, L1TMuon::TriggerPrimitive::RPCData::strip_hi, L1TMuon::TriggerPrimitive::RPCData::strip_low, L1TMuon::TriggerPrimitive::RPCData::theta_int, RPCRecHit::time(), L1TMuon::TriggerPrimitive::RPCData::time, L1TMuon::TriggerPrimitive::RPCData::valid, L1TMuon::TriggerPrimitive::RPCData::x, and L1TMuon::TriggerPrimitive::RPCData::y.

175  : _id(detid), _subsystem(L1TMuon::kRPC) {
177  _eta = 0.;
178  _phi = 0.;
179  _rho = 0.;
180  _theta = 0.;
181  _rpc.strip = rechit.firstClusterStrip() + (rechit.clusterSize() - 1) / 2;
182  _rpc.strip_low = rechit.firstClusterStrip();
183  _rpc.strip_hi = rechit.firstClusterStrip() + rechit.clusterSize() - 1;
184  _rpc.phi_int = 0;
185  _rpc.theta_int = 0;
186  _rpc.emtf_sector = 0;
187  _rpc.emtf_link = 0;
188  _rpc.bx = rechit.BunchX();
189  _rpc.valid = 1;
190  _rpc.x = rechit.localPosition().x();
191  _rpc.y = rechit.localPosition().y();
192  _rpc.time = rechit.time();
193  _rpc.isCPPF = false;
194 }
LocalPoint localPosition() const override
Return the 3-dimensional local position.
Definition: RPCRecHit.h:37
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
int BunchX() const
Definition: RPCRecHit.h:73
float time() const
Definition: RPCRecHit.h:79
int clusterSize() const
Definition: RPCRecHit.h:77
int firstClusterStrip() const
Definition: RPCRecHit.h:75

◆ TriggerPrimitive() [8/12]

TriggerPrimitive::TriggerPrimitive ( const RPCDetId detid,
const l1t::CPPFDigi digi 
)

Definition at line 198 of file MuonTriggerPrimitive.cc.

References _eta, _globalsector, _phi, _rho, _rpc, _subsector, _theta, l1t::CPPFDigi::bx(), L1TMuon::TriggerPrimitive::RPCData::bx, calculateGlobalSector(), l1t::CPPFDigi::cluster_size(), l1t::CPPFDigi::emtf_link(), L1TMuon::TriggerPrimitive::RPCData::emtf_link, l1t::CPPFDigi::emtf_sector(), L1TMuon::TriggerPrimitive::RPCData::emtf_sector, l1t::CPPFDigi::first_strip(), L1TMuon::TriggerPrimitive::RPCData::isCPPF, l1t::CPPFDigi::phi_int(), L1TMuon::TriggerPrimitive::RPCData::phi_int, L1TMuon::TriggerPrimitive::RPCData::strip, L1TMuon::TriggerPrimitive::RPCData::strip_hi, L1TMuon::TriggerPrimitive::RPCData::strip_low, l1t::CPPFDigi::theta_int(), L1TMuon::TriggerPrimitive::RPCData::theta_int, L1TMuon::TriggerPrimitive::RPCData::time, l1t::CPPFDigi::valid(), L1TMuon::TriggerPrimitive::RPCData::valid, L1TMuon::TriggerPrimitive::RPCData::x, and L1TMuon::TriggerPrimitive::RPCData::y.

199  : _id(detid), _subsystem(L1TMuon::kRPC) {
201  _eta = 0.;
202  _phi = 0.;
203  _rho = 0.;
204  _theta = 0.;
205  // In unpacked CPPF digis, the strip number and cluster size are not available, and are set to -99
206  _rpc.strip = (digi.first_strip() < 0 ? 0 : digi.first_strip() + ((digi.cluster_size() - 1) / 2));
207  _rpc.strip_low = (digi.first_strip() < 0 ? 0 : digi.first_strip());
208  _rpc.strip_hi = (digi.first_strip() < 0 ? 0 : digi.first_strip() + digi.cluster_size() - 1);
209  _rpc.phi_int = digi.phi_int();
210  _rpc.theta_int = digi.theta_int();
211  _rpc.emtf_sector = digi.emtf_sector();
212  _rpc.emtf_link = digi.emtf_link();
213  _rpc.bx = digi.bx();
214  _rpc.valid = digi.valid();
215  _rpc.x = -999999.;
216  _rpc.y = -999999.;
217  _rpc.time = -999999.;
218  _rpc.isCPPF = true;
219 }
int bx() const
Definition: CPPFDigi.h:52
int theta_int() const
Definition: CPPFDigi.h:54
int emtf_sector() const
Definition: CPPFDigi.h:58
int phi_int() const
Definition: CPPFDigi.h:53
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
int emtf_link() const
Definition: CPPFDigi.h:59
int first_strip() const
Definition: CPPFDigi.h:60
int valid() const
Definition: CPPFDigi.h:55
int cluster_size() const
Definition: CPPFDigi.h:61

◆ TriggerPrimitive() [9/12]

TriggerPrimitive::TriggerPrimitive ( const GEMDetId detid,
const GEMPadDigiCluster digi 
)

Definition at line 223 of file MuonTriggerPrimitive.cc.

References _eta, _gem, _globalsector, _phi, _rho, _subsector, _theta, GEMPadDigiCluster::bx(), L1TMuon::TriggerPrimitive::GEMData::bx, calculateGlobalSector(), L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::GEMData::pad_hi, L1TMuon::TriggerPrimitive::GEMData::pad_low, and GEMPadDigiCluster::pads().

224  : _id(detid), _subsystem(L1TMuon::kGEM) {
226  _eta = 0.;
227  _phi = 0.;
228  _rho = 0.;
229  _theta = 0.;
230  _gem.pad = digi.pads().front() + ((digi.pads().size() - 1) / 2);
231  _gem.pad_low = digi.pads().front();
232  _gem.pad_hi = digi.pads().front() + digi.pads().size() - 1;
233  _gem.bx = digi.bx();
234 }
const std::vector< uint16_t > & pads() const
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const

◆ TriggerPrimitive() [10/12]

TriggerPrimitive::TriggerPrimitive ( const ME0DetId detid,
const ME0TriggerDigi digi 
)

Definition at line 238 of file MuonTriggerPrimitive.cc.

References _eta, _globalsector, _me0, _phi, _rho, _subsector, _theta, L1TMuon::TriggerPrimitive::ME0Data::bend, L1TMuon::TriggerPrimitive::ME0Data::bx, calculateGlobalSector(), L1TMuon::TriggerPrimitive::ME0Data::chamberid, L1TMuon::TriggerPrimitive::ME0Data::deltaphi, ME0TriggerDigi::getBend(), ME0TriggerDigi::getBX(), ME0TriggerDigi::getChamberid(), ME0TriggerDigi::getDeltaphi(), ME0TriggerDigi::getPartition(), ME0TriggerDigi::getPhiposition(), ME0TriggerDigi::getQuality(), L1TMuon::TriggerPrimitive::ME0Data::partition, L1TMuon::TriggerPrimitive::ME0Data::phiposition, and L1TMuon::TriggerPrimitive::ME0Data::quality.

239  : _id(detid), _subsystem(L1TMuon::kME0) {
241  _eta = 0.;
242  _phi = 0.;
243  _rho = 0.;
244  _theta = 0.;
245  _me0.chamberid = digi.getChamberid();
246  _me0.quality = digi.getQuality();
248  _me0.partition = digi.getPartition();
249  _me0.deltaphi = digi.getDeltaphi();
250  _me0.bend = digi.getBend();
251  _me0.bx = digi.getBX();
252 }
int getQuality() const
return the Quality
int getChamberid() const
return chamber number in one CTP7
int getBend() const
return bend
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
int getDeltaphi() const
return bending angle
int getPhiposition() const
return the phi position, resolution: half strip level
int getBX() const
return BX
int getPartition() const
return the key "partition"

◆ TriggerPrimitive() [11/12]

TriggerPrimitive::TriggerPrimitive ( const GEMDetId detid,
const ME0TriggerDigi digi 
)

Definition at line 255 of file MuonTriggerPrimitive.cc.

References _eta, _globalsector, _me0, _phi, _rho, _subsector, _theta, L1TMuon::TriggerPrimitive::ME0Data::bend, L1TMuon::TriggerPrimitive::ME0Data::bx, calculateGlobalSector(), L1TMuon::TriggerPrimitive::ME0Data::chamberid, L1TMuon::TriggerPrimitive::ME0Data::deltaphi, ME0TriggerDigi::getBend(), ME0TriggerDigi::getBX(), ME0TriggerDigi::getChamberid(), ME0TriggerDigi::getDeltaphi(), ME0TriggerDigi::getPartition(), ME0TriggerDigi::getPhiposition(), ME0TriggerDigi::getQuality(), L1TMuon::TriggerPrimitive::ME0Data::partition, L1TMuon::TriggerPrimitive::ME0Data::phiposition, and L1TMuon::TriggerPrimitive::ME0Data::quality.

256  : _id(detid), _subsystem(L1TMuon::kME0) {
258  _eta = 0.;
259  _phi = 0.;
260  _rho = 0.;
261  _theta = 0.;
262  _me0.chamberid = digi.getChamberid();
263  _me0.quality = digi.getQuality();
265  _me0.partition = digi.getPartition();
266  _me0.deltaphi = digi.getDeltaphi();
267  _me0.bend = digi.getBend();
268  _me0.bx = digi.getBX();
269 }
int getQuality() const
return the Quality
int getChamberid() const
return chamber number in one CTP7
int getBend() const
return bend
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
int getDeltaphi() const
return bending angle
int getPhiposition() const
return the phi position, resolution: half strip level
int getBX() const
return BX
int getPartition() const
return the key "partition"

◆ TriggerPrimitive() [12/12]

TriggerPrimitive::TriggerPrimitive ( const TriggerPrimitive tp)

Definition at line 273 of file MuonTriggerPrimitive.cc.

Member Function Documentation

◆ accessCSCData()

CSCData& L1TMuon::TriggerPrimitive::accessCSCData ( )
inline

Definition at line 274 of file MuonTriggerPrimitive.h.

References _csc.

Referenced by PrimitiveSelection::process().

274 { return _csc; }

◆ accessDTData()

DTData& L1TMuon::TriggerPrimitive::accessDTData ( )
inline

Definition at line 273 of file MuonTriggerPrimitive.h.

References _dt.

Referenced by PrimitiveSelection::process().

273 { return _dt; }

◆ accessGEMData()

GEMData& L1TMuon::TriggerPrimitive::accessGEMData ( )
inline

Definition at line 276 of file MuonTriggerPrimitive.h.

References _gem.

276 { return _gem; }

◆ accessME0Data()

ME0Data& L1TMuon::TriggerPrimitive::accessME0Data ( )
inline

Definition at line 277 of file MuonTriggerPrimitive.h.

References _me0.

277 { return _me0; }

◆ accessRPCData()

RPCData& L1TMuon::TriggerPrimitive::accessRPCData ( )
inline

Definition at line 275 of file MuonTriggerPrimitive.h.

References _rpc.

275 { return _rpc; }

◆ calculateGlobalSector()

template<typename IDType >
void L1TMuon::TriggerPrimitive::calculateGlobalSector ( const IDType &  chid,
unsigned &  globalsector,
unsigned &  subsector 
) const
inlineprivate

Definition at line 295 of file MuonTriggerPrimitive.h.

References nano_mu_digi_cff::subsector.

Referenced by TriggerPrimitive().

295  {
296  // Not sure if this is ever going to get implemented
297  globalsector = 0;
298  subsector = 0;
299  }

◆ detId()

template<typename IDType >
IDType L1TMuon::TriggerPrimitive::detId ( ) const
inline

◆ getBX()

int TriggerPrimitive::getBX ( ) const

Definition at line 362 of file MuonTriggerPrimitive.cc.

References _csc, _dt, _gem, _me0, _rpc, _subsystem, L1TMuon::TriggerPrimitive::RPCData::bx, L1TMuon::TriggerPrimitive::CSCData::bx, L1TMuon::TriggerPrimitive::DTData::bx, L1TMuon::TriggerPrimitive::GEMData::bx, L1TMuon::TriggerPrimitive::ME0Data::bx, Exception, L1TMuon::kCSC, L1TMuon::kDT, L1TMuon::kGEM, L1TMuon::kME0, and L1TMuon::kRPC.

Referenced by PrimitiveSelection::process().

362  {
363  switch (_subsystem) {
364  case kDT:
365  return _dt.bx;
366  case kCSC:
367  return _csc.bx;
368  case kRPC:
369  return _rpc.bx;
370  case kGEM:
371  return _gem.bx;
372  case kME0:
373  return _me0.bx;
374  default:
375  throw cms::Exception("Invalid Subsystem")
376  << "The specified subsystem for this track stub is out of range" << std::endl;
377  }
378  return -1;
379 }

◆ getCMSGlobalEta()

double L1TMuon::TriggerPrimitive::getCMSGlobalEta ( ) const
inline

Definition at line 240 of file MuonTriggerPrimitive.h.

References _eta.

240 { return _eta; }

◆ getCMSGlobalPhi()

double L1TMuon::TriggerPrimitive::getCMSGlobalPhi ( ) const
inline

Definition at line 241 of file MuonTriggerPrimitive.h.

References _phi.

241 { return _phi; }

◆ getCMSGlobalPoint()

GlobalPoint L1TMuon::TriggerPrimitive::getCMSGlobalPoint ( ) const
inline

Definition at line 244 of file MuonTriggerPrimitive.h.

References _eta, _phi, _rho, JetChargeProducer_cfi::exp, funct::tan(), and theta().

244  {
245  double theta = 2. * std::atan(std::exp(-_eta));
247  }
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
Geom::Theta< T > theta() const

◆ getCMSGlobalRho()

double L1TMuon::TriggerPrimitive::getCMSGlobalRho ( ) const
inline

Definition at line 242 of file MuonTriggerPrimitive.h.

References _rho.

242 { return _rho; }

◆ getCSCData()

CSCData L1TMuon::TriggerPrimitive::getCSCData ( ) const
inline

◆ getDTData()

DTData L1TMuon::TriggerPrimitive::getDTData ( ) const
inline

Definition at line 267 of file MuonTriggerPrimitive.h.

References _dt.

Referenced by PrimitiveConversion::convert_dt(), and PrimitiveSelection::select_dt().

267 { return _dt; }

◆ getGEMData()

GEMData L1TMuon::TriggerPrimitive::getGEMData ( ) const
inline

Definition at line 270 of file MuonTriggerPrimitive.h.

References _gem.

Referenced by PrimitiveConversion::convert_gem(), and PrimitiveSelection::select_gem().

270 { return _gem; }

◆ getGlobalSector()

unsigned L1TMuon::TriggerPrimitive::getGlobalSector ( ) const
inline

Definition at line 286 of file MuonTriggerPrimitive.h.

References _globalsector.

286 { return _globalsector; }

◆ getME0Data()

ME0Data L1TMuon::TriggerPrimitive::getME0Data ( ) const
inline

Definition at line 271 of file MuonTriggerPrimitive.h.

References _me0.

Referenced by PrimitiveConversion::convert_me0(), and PrimitiveSelection::select_me0().

271 { return _me0; }

◆ getPattern()

int TriggerPrimitive::getPattern ( ) const

Definition at line 419 of file MuonTriggerPrimitive.cc.

References _csc, _subsystem, Exception, L1TMuon::kCSC, L1TMuon::kDT, L1TMuon::kGEM, L1TMuon::kME0, L1TMuon::kRPC, and L1TMuon::TriggerPrimitive::CSCData::pattern.

419  {
420  switch (_subsystem) {
421  case kDT:
422  return -1;
423  case kCSC:
424  return _csc.pattern;
425  case kRPC:
426  return -1;
427  case kGEM:
428  return -1;
429  case kME0:
430  return -1;
431  default:
432  throw cms::Exception("Invalid Subsystem")
433  << "The specified subsystem for this track stub is out of range" << std::endl;
434  }
435  return -1;
436 }

◆ getRPCData()

RPCData L1TMuon::TriggerPrimitive::getRPCData ( ) const
inline

Definition at line 269 of file MuonTriggerPrimitive.h.

References _rpc.

Referenced by PrimitiveConversion::convert_rpc(), and PrimitiveSelection::select_rpc().

269 { return _rpc; }

◆ getStrip()

int TriggerPrimitive::getStrip ( ) const

Definition at line 381 of file MuonTriggerPrimitive.cc.

References _csc, _dt, _gem, _me0, _rpc, _subsystem, Exception, L1TMuon::kCSC, L1TMuon::kDT, L1TMuon::kGEM, L1TMuon::kME0, L1TMuon::kRPC, L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::ME0Data::phiposition, L1TMuon::TriggerPrimitive::DTData::radialAngle, L1TMuon::TriggerPrimitive::RPCData::strip, and L1TMuon::TriggerPrimitive::CSCData::strip.

Referenced by PrimitiveSelection::process().

381  {
382  switch (_subsystem) {
383  case kDT:
384  return _dt.radialAngle;
385  case kCSC:
386  return _csc.strip;
387  case kRPC:
388  return _rpc.strip;
389  case kGEM:
390  return _gem.pad;
391  case kME0:
392  return _me0.phiposition;
393  default:
394  throw cms::Exception("Invalid Subsystem")
395  << "The specified subsystem for this track stub is out of range" << std::endl;
396  }
397  return -1;
398 }

◆ getSubSector()

unsigned L1TMuon::TriggerPrimitive::getSubSector ( ) const
inline

Definition at line 287 of file MuonTriggerPrimitive.h.

References _subsector.

287 { return _subsector; }

◆ getThetaBend()

double L1TMuon::TriggerPrimitive::getThetaBend ( ) const
inline

Definition at line 253 of file MuonTriggerPrimitive.h.

References _theta.

253 { return _theta; }

◆ getWire()

int TriggerPrimitive::getWire ( ) const

Definition at line 400 of file MuonTriggerPrimitive.cc.

References _csc, _dt, _subsystem, Exception, L1TMuon::kCSC, L1TMuon::kDT, L1TMuon::TriggerPrimitive::CSCData::keywire, L1TMuon::kGEM, L1TMuon::kME0, L1TMuon::kRPC, and L1TMuon::TriggerPrimitive::DTData::theta_bti_group.

Referenced by PrimitiveSelection::process().

400  {
401  switch (_subsystem) {
402  case kDT:
403  return _dt.theta_bti_group;
404  case kCSC:
405  return _csc.keywire;
406  case kRPC:
407  return -1;
408  case kGEM:
409  return -1;
410  case kME0:
411  return -1;
412  default:
413  throw cms::Exception("Invalid Subsystem")
414  << "The specified subsystem for this track stub is out of range" << std::endl;
415  }
416  return -1;
417 }

◆ operator=()

TriggerPrimitive & TriggerPrimitive::operator= ( const TriggerPrimitive tp)

Definition at line 288 of file MuonTriggerPrimitive.cc.

References _csc, _dt, _eta, _gem, _globalsector, _id, _me0, _phi, _rho, _rpc, _subsector, _subsystem, and _theta.

288  {
289  this->_dt = tp._dt;
290  this->_csc = tp._csc;
291  this->_rpc = tp._rpc;
292  this->_gem = tp._gem;
293  this->_me0 = tp._me0;
294  this->_id = tp._id;
295  this->_subsystem = tp._subsystem;
296  this->_globalsector = tp._globalsector;
297  this->_subsector = tp._subsector;
298  this->_eta = tp._eta;
299  this->_phi = tp._phi;
300  this->_rho = tp._rho;
301  this->_theta = tp._theta;
302  return *this;
303 }

◆ operator==()

bool TriggerPrimitive::operator== ( const TriggerPrimitive tp) const

Definition at line 305 of file MuonTriggerPrimitive.cc.

References _csc, _dt, _gem, _globalsector, _id, _me0, _rpc, _subsector, _subsystem, a, funct::abs(), b, L1TMuon::TriggerPrimitive::DTData::bx, L1TMuon::TriggerPrimitive::ME0Data::chamberid, Exception, L1TMuon::TriggerPrimitive::RPCData::isCPPF, L1TMuon::kCSC, L1TMuon::kDT, L1TMuon::kGEM, L1TMuon::kME0, L1TMuon::kRPC, L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::RPCData::strip, L1TMuon::TriggerPrimitive::RPCData::time, cmsswSequenceInfo::tp, L1TMuon::TriggerPrimitive::CSCData::trknmb, L1TMuon::TriggerPrimitive::RPCData::x, and L1TMuon::TriggerPrimitive::RPCData::y.

305  {
306  // Copied from Numpy
307  // https://github.com/numpy/numpy/blob/v1.14.0/numpy/core/numeric.py#L2260-L2355
308  auto isclose = [](float a, float b, float rtol = 1.e-5, float atol = 1.e-8) {
309  return std::abs(a - b) <= (atol + rtol * std::abs(b));
310  };
311 
312  switch (_subsystem) {
313  case kDT:
314  return (this->_dt.bx == tp._dt.bx && this->_dt.wheel == tp._dt.wheel && this->_dt.sector == tp._dt.sector &&
315  this->_dt.station == tp._dt.station && this->_dt.radialAngle == tp._dt.radialAngle &&
316  this->_dt.bendingAngle == tp._dt.bendingAngle && this->_dt.qualityCode == tp._dt.qualityCode &&
317  this->_dt.Ts2TagCode == tp._dt.Ts2TagCode && this->_dt.BxCntCode == tp._dt.BxCntCode &&
318  this->_dt.RpcBit == tp._dt.RpcBit && this->_dt.theta_bti_group == tp._dt.theta_bti_group &&
319  this->_dt.segment_number == tp._dt.segment_number && this->_dt.theta_code == tp._dt.theta_code &&
320  this->_dt.theta_quality == tp._dt.theta_quality && this->_id == tp._id &&
321  this->_subsystem == tp._subsystem && this->_globalsector == tp._globalsector &&
322  this->_subsector == tp._subsector);
323  case kCSC:
324  return (this->_csc.trknmb == tp._csc.trknmb && this->_csc.valid == tp._csc.valid &&
325  this->_csc.quality == tp._csc.quality && this->_csc.keywire == tp._csc.keywire &&
326  this->_csc.strip == tp._csc.strip && this->_csc.pattern == tp._csc.pattern &&
327  this->_csc.bend == tp._csc.bend && this->_csc.bx == tp._csc.bx && this->_csc.mpclink == tp._csc.mpclink &&
328  this->_csc.bx0 == tp._csc.bx0 && this->_csc.syncErr == tp._csc.syncErr &&
329  this->_csc.cscID == tp._csc.cscID && this->_csc.alct_quality == tp._csc.alct_quality &&
330  this->_csc.clct_quality == tp._csc.clct_quality && this->_id == tp._id &&
331  this->_subsystem == tp._subsystem && this->_globalsector == tp._globalsector &&
332  this->_subsector == tp._subsector);
333  case kRPC:
334  return (this->_rpc.strip == tp._rpc.strip && this->_rpc.strip_low == tp._rpc.strip_low &&
335  this->_rpc.strip_hi == tp._rpc.strip_hi && this->_rpc.phi_int == tp._rpc.phi_int &&
336  this->_rpc.theta_int == tp._rpc.theta_int && this->_rpc.emtf_sector == tp._rpc.emtf_sector &&
337  this->_rpc.emtf_link == tp._rpc.emtf_link && this->_rpc.bx == tp._rpc.bx &&
338  this->_rpc.valid == tp._rpc.valid && isclose(this->_rpc.x, tp._rpc.x) && // floating-point
339  isclose(this->_rpc.y, tp._rpc.y) && // floating-point
340  isclose(this->_rpc.time, tp._rpc.time) && // floating-point
341  this->_rpc.isCPPF == tp._rpc.isCPPF && this->_id == tp._id && this->_subsystem == tp._subsystem &&
342  this->_globalsector == tp._globalsector && this->_subsector == tp._subsector);
343  case kGEM:
344  return (this->_gem.pad == tp._gem.pad && this->_gem.pad_low == tp._gem.pad_low &&
345  this->_gem.pad_hi == tp._gem.pad_hi && this->_gem.bx == tp._gem.bx && this->_id == tp._id &&
346  this->_subsystem == tp._subsystem && this->_globalsector == tp._globalsector &&
347  this->_subsector == tp._subsector);
348  case kME0:
349  return (this->_me0.chamberid == tp._me0.chamberid && this->_me0.quality == tp._me0.quality &&
350  this->_me0.phiposition == tp._me0.phiposition && this->_me0.partition == tp._me0.partition &&
351  this->_me0.deltaphi == tp._me0.deltaphi && this->_me0.bend == tp._me0.bend &&
352  this->_me0.bx == tp._me0.bx && this->_id == tp._id && this->_subsystem == tp._subsystem &&
353  this->_globalsector == tp._globalsector && this->_subsector == tp._subsector);
354  default:
355  throw cms::Exception("Invalid Subsystem")
356  << "The specified subsystem for this track stub is out of range" << std::endl;
357  }
358  return false;
359 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121

◆ print()

void TriggerPrimitive::print ( std::ostream &  out) const

Definition at line 438 of file MuonTriggerPrimitive.cc.

References _csc, _dt, _eta, _gem, _me0, _phi, _rho, _rpc, _subsystem, _theta, L1TMuon::TriggerPrimitive::CSCData::alct_quality, L1TMuon::TriggerPrimitive::CSCData::bend, L1TMuon::TriggerPrimitive::ME0Data::bend, L1TMuon::TriggerPrimitive::DTData::bendingAngle, L1TMuon::TriggerPrimitive::RPCData::bx, L1TMuon::TriggerPrimitive::CSCData::bx, L1TMuon::TriggerPrimitive::DTData::bx, L1TMuon::TriggerPrimitive::GEMData::bx, L1TMuon::TriggerPrimitive::ME0Data::bx, L1TMuon::TriggerPrimitive::CSCData::bx0, L1TMuon::TriggerPrimitive::DTData::BxCntCode, L1TMuon::TriggerPrimitive::ME0Data::chamberid, L1TMuon::TriggerPrimitive::CSCData::clct_quality, L1TMuon::TriggerPrimitive::CSCData::cscID, L1TMuon::TriggerPrimitive::ME0Data::deltaphi, L1TMuon::TriggerPrimitive::RPCData::emtf_link, L1TMuon::TriggerPrimitive::RPCData::emtf_sector, Exception, heavyIonCSV_trainingSettings::idx, L1TMuon::TriggerPrimitive::RPCData::isCPPF, L1TMuon::kCSC, L1TMuon::kDT, L1TMuon::TriggerPrimitive::CSCData::keywire, L1TMuon::kGEM, L1TMuon::kME0, L1TMuon::kRPC, MuonSubdetId::ME0, L1TMuon::TriggerPrimitive::CSCData::mpclink, MillePedeFileConverter_cfg::out, L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::GEMData::pad_hi, L1TMuon::TriggerPrimitive::GEMData::pad_low, L1TMuon::TriggerPrimitive::ME0Data::partition, L1TMuon::TriggerPrimitive::CSCData::pattern, L1TMuon::TriggerPrimitive::RPCData::phi_int, L1TMuon::TriggerPrimitive::ME0Data::phiposition, L1TMuon::TriggerPrimitive::CSCData::quality, L1TMuon::TriggerPrimitive::ME0Data::quality, L1TMuon::TriggerPrimitive::DTData::qualityCode, L1TMuon::TriggerPrimitive::DTData::radialAngle, L1TMuon::TriggerPrimitive::DTData::RpcBit, L1TMuon::TriggerPrimitive::DTData::segment_number, L1TMuon::TriggerPrimitive::RPCData::strip, L1TMuon::TriggerPrimitive::CSCData::strip, L1TMuon::TriggerPrimitive::RPCData::strip_hi, L1TMuon::TriggerPrimitive::RPCData::strip_low, L1TMuon::TriggerPrimitive::CSCData::syncErr, L1TMuon::TriggerPrimitive::DTData::theta_bti_group, L1TMuon::TriggerPrimitive::DTData::theta_code, L1TMuon::TriggerPrimitive::RPCData::theta_int, L1TMuon::TriggerPrimitive::DTData::theta_quality, L1TMuon::TriggerPrimitive::RPCData::time, L1TMuon::TriggerPrimitive::CSCData::trknmb, L1TMuon::TriggerPrimitive::DTData::Ts2TagCode, L1TMuon::TriggerPrimitive::RPCData::valid, L1TMuon::TriggerPrimitive::CSCData::valid, L1TMuon::TriggerPrimitive::RPCData::x, and L1TMuon::TriggerPrimitive::RPCData::y.

438  {
439  unsigned idx = (unsigned)_subsystem;
440  out << subsystem_names[idx] << " Trigger Primitive" << std::endl;
441  out << "eta: " << _eta << " phi: " << _phi << " rho: " << _rho << " theta: " << _theta << std::endl;
442  switch (_subsystem) {
443  case kDT:
444  out << detId<DTChamberId>() << std::endl;
445  out << "Local BX : " << _dt.bx << std::endl;
446  out << "Segment Nmb : " << _dt.segment_number << std::endl;
447  out << "Packed Phi : " << _dt.radialAngle << std::endl;
448  out << "Packed Bend : " << _dt.bendingAngle << std::endl;
449  out << "Quality Code : " << _dt.qualityCode << std::endl;
450  out << "Ts2Tag Code : " << _dt.Ts2TagCode << std::endl;
451  out << "BxCnt Code : " << _dt.BxCntCode << std::endl;
452  out << "RPC Bit : " << _dt.RpcBit << std::endl;
453  out << "Theta BTI Grp : " << _dt.theta_bti_group << std::endl;
454  out << "Theta Code : " << _dt.theta_code << std::endl;
455  out << "Theta Quality : " << _dt.theta_quality << std::endl;
456  break;
457  case kCSC:
458  out << detId<CSCDetId>() << std::endl;
459  out << "Local BX : " << _csc.bx << std::endl;
460  out << "Segment Nmb : " << _csc.trknmb << std::endl;
461  out << "Segment Valid : " << _csc.valid << std::endl;
462  out << "Quality Code : " << _csc.quality << std::endl;
463  out << "Key Wire Grp : " << _csc.keywire << std::endl;
464  out << "Half-Strip : " << _csc.strip << std::endl;
465  out << "CLCT Pattern : " << _csc.pattern << std::endl;
466  out << "Packed Bend : " << _csc.bend << std::endl;
467  out << "MPC Link : " << _csc.mpclink << std::endl;
468  out << "BX0 : " << _csc.bx0 << std::endl;
469  out << "Sync Error : " << _csc.syncErr << std::endl;
470  out << "CSCID : " << _csc.cscID << std::endl;
471  out << "ALCT Quality : " << _csc.alct_quality << std::endl;
472  out << "CLCT Quality : " << _csc.clct_quality << std::endl;
473  break;
474  case kRPC:
475  out << detId<RPCDetId>() << std::endl;
476  out << "Local BX : " << _rpc.bx << std::endl;
477  out << "Strip : " << _rpc.strip << std::endl;
478  out << "Strip low : " << _rpc.strip_low << std::endl;
479  out << "Strip high : " << _rpc.strip_hi << std::endl;
480  out << "Integer phi : " << _rpc.phi_int << std::endl;
481  out << "Integer theta : " << _rpc.theta_int << std::endl;
482  out << "EMTF sector : " << _rpc.emtf_sector << std::endl;
483  out << "EMTF link : " << _rpc.emtf_link << std::endl;
484  out << "Valid : " << _rpc.valid << std::endl;
485  out << "Local x : " << _rpc.x << std::endl;
486  out << "Local y : " << _rpc.y << std::endl;
487  out << "Time : " << _rpc.time << std::endl;
488  out << "IsCPPF : " << _rpc.isCPPF << std::endl;
489  break;
490  case kGEM:
491  out << detId<GEMDetId>() << std::endl;
492  out << "Local BX : " << _gem.bx << std::endl;
493  out << "Pad : " << _gem.pad << std::endl;
494  out << "Pad low : " << _gem.pad_low << std::endl;
495  out << "Pad high : " << _gem.pad_hi << std::endl;
496  break;
497  case kME0:
498  if (detId<DetId>().subdetId() == MuonSubdetId::ME0) {
499  out << detId<ME0DetId>() << std::endl;
500  } else {
501  out << detId<GEMDetId>() << std::endl;
502  }
503 
504  out << "Local BX : " << _me0.bx << std::endl;
505  out << "Chamber id : " << _me0.chamberid << std::endl;
506  out << "Quality : " << _me0.quality << std::endl;
507  out << "Phiposition : " << _me0.phiposition << std::endl;
508  out << "Partition : " << _me0.partition << std::endl;
509  out << "Deltaphi : " << _me0.deltaphi << std::endl;
510  out << "Bend : " << _me0.bend << std::endl;
511  break;
512  default:
513  throw cms::Exception("Invalid Subsystem")
514  << "The specified subsystem for this track stub is out of range" << std::endl;
515  }
516 }
static constexpr int ME0
Definition: MuonSubdetId.h:15

◆ rawId()

DetId L1TMuon::TriggerPrimitive::rawId ( ) const
inline

Definition at line 284 of file MuonTriggerPrimitive.h.

References _id.

284 { return _id; }

◆ setCMSGlobalEta()

void L1TMuon::TriggerPrimitive::setCMSGlobalEta ( double  eta)
inline

Definition at line 236 of file MuonTriggerPrimitive.h.

References _eta, and PVValHelper::eta.

◆ setCMSGlobalPhi()

void L1TMuon::TriggerPrimitive::setCMSGlobalPhi ( double  phi)
inline

Definition at line 237 of file MuonTriggerPrimitive.h.

References _phi.

◆ setCMSGlobalRho()

void L1TMuon::TriggerPrimitive::setCMSGlobalRho ( double  rho)
inline

Definition at line 238 of file MuonTriggerPrimitive.h.

References _rho.

◆ setCSCData()

void L1TMuon::TriggerPrimitive::setCSCData ( const CSCData csc)
inline

◆ setDTData()

void L1TMuon::TriggerPrimitive::setDTData ( const DTData dt)
inline

Definition at line 261 of file MuonTriggerPrimitive.h.

References _dt, and dt.

261 { _dt = dt; }
float dt
Definition: AMPTWrapper.h:136

◆ setGEMData()

void L1TMuon::TriggerPrimitive::setGEMData ( const GEMData gem)
inline

◆ setME0Data()

void L1TMuon::TriggerPrimitive::setME0Data ( const ME0Data me0)
inline

◆ setRPCData()

void L1TMuon::TriggerPrimitive::setRPCData ( const RPCData rpc)
inline

◆ setThetaBend()

void L1TMuon::TriggerPrimitive::setThetaBend ( double  theta)
inline

Definition at line 252 of file MuonTriggerPrimitive.h.

References _theta, and theta().

252 { _theta = theta; }
Geom::Theta< T > theta() const

◆ subsystem()

subsystem_type L1TMuon::TriggerPrimitive::subsystem ( ) const
inline

Member Data Documentation

◆ _csc

CSCData L1TMuon::TriggerPrimitive::_csc
private

◆ _dt

DTData L1TMuon::TriggerPrimitive::_dt
private

◆ _eta

double L1TMuon::TriggerPrimitive::_eta
private

◆ _gem

GEMData L1TMuon::TriggerPrimitive::_gem
private

◆ _globalsector

unsigned L1TMuon::TriggerPrimitive::_globalsector
private

Definition at line 311 of file MuonTriggerPrimitive.h.

Referenced by getGlobalSector(), operator=(), operator==(), and TriggerPrimitive().

◆ _id

DetId L1TMuon::TriggerPrimitive::_id
private

Definition at line 307 of file MuonTriggerPrimitive.h.

Referenced by detId(), operator=(), operator==(), rawId(), and TriggerPrimitive().

◆ _me0

ME0Data L1TMuon::TriggerPrimitive::_me0
private

◆ _phi

double L1TMuon::TriggerPrimitive::_phi
private

◆ _rho

double L1TMuon::TriggerPrimitive::_rho
private

◆ _rpc

RPCData L1TMuon::TriggerPrimitive::_rpc
private

◆ _subsector

unsigned L1TMuon::TriggerPrimitive::_subsector
private

Definition at line 312 of file MuonTriggerPrimitive.h.

Referenced by getSubSector(), operator=(), operator==(), and TriggerPrimitive().

◆ _subsystem

subsystem_type L1TMuon::TriggerPrimitive::_subsystem
private

◆ _theta

double L1TMuon::TriggerPrimitive::_theta
private