CMS 3D CMS Logo

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

#include <MuonTriggerPrimitive.h>

Classes

struct  CSCData
 
struct  DTData
 
struct  GEMData
 
struct  RPCData
 

Public Types

enum  subsystem_type {
  kDT, kCSC, kRPC, kGEM,
  kNSubsystems
}
 

Public Member Functions

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

Private Member Functions

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

Private Attributes

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

Detailed Description

Definition at line 53 of file MuonTriggerPrimitive.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

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

Definition at line 25 of file MuonTriggerPrimitive.cc.

References _dt, _globalsector, _subsector, 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::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().

27  :
28  _id(detid),
31  // fill in information from theta trigger
32  _dt.theta_bti_group = -1;
33  _dt.segment_number = segment_number;
34  _dt.theta_code = -1;
35  _dt.theta_quality = -1;
36  // now phi trigger
37  _dt.bx = digi_phi.bxNum();
38  _dt.wheel = digi_phi.whNum();
39  _dt.sector = digi_phi.scNum();
40  _dt.station = digi_phi.stNum();
41  _dt.radialAngle = digi_phi.phi();
42  _dt.bendingAngle = digi_phi.phiB();
43  _dt.qualityCode = digi_phi.code();
44  _dt.Ts2TagCode = digi_phi.Ts2Tag();
45  _dt.BxCntCode = digi_phi.BxCnt();
46 }
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector)
TriggerPrimitive::TriggerPrimitive ( const DTChamberId detid,
const L1MuDTChambThDigi digi_th,
const int  segment_number 
)

Definition at line 48 of file MuonTriggerPrimitive.cc.

References _dt, _globalsector, _subsector, 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, 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().

50  :
51  _id(detid),
54  // fill in information from theta trigger
55  _dt.theta_bti_group = theta_bti_group;
56  _dt.segment_number = digi_th.position(theta_bti_group);
57  _dt.theta_code = digi_th.code(theta_bti_group);
58  _dt.theta_quality = digi_th.quality(theta_bti_group);
59  // now phi trigger
60  _dt.bx = digi_th.bxNum();
61  _dt.wheel = digi_th.whNum();
62  _dt.sector = digi_th.scNum();
63  _dt.station = digi_th.stNum();
64  _dt.radialAngle = -1;
65  _dt.bendingAngle = -1;
66  _dt.qualityCode = -1;
67  _dt.Ts2TagCode = -1;
68  _dt.BxCntCode = -1;
69 }
int quality(const int i) const
int position(const int i) const
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector)
int code(const int i) const
TriggerPrimitive::TriggerPrimitive ( const DTChamberId detid,
const L1MuDTChambPhDigi digi_phi,
const L1MuDTChambThDigi digi_th,
const int  theta_bti_group 
)

Definition at line 71 of file MuonTriggerPrimitive.cc.

References _dt, _globalsector, _subsector, 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::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().

74  :
75  _id(detid),
78  // fill in information from theta trigger
79  _dt.theta_bti_group = theta_bti_group;
80  _dt.segment_number = digi_th.position(theta_bti_group);
81  _dt.theta_code = digi_th.code(theta_bti_group);
82  _dt.theta_quality = digi_th.quality(theta_bti_group);
83  // now phi trigger
84  _dt.bx = digi_phi.bxNum();
85  _dt.wheel = digi_phi.whNum();
86  _dt.sector = digi_phi.scNum();
87  _dt.station = digi_phi.stNum();
88  _dt.radialAngle = digi_phi.phi();
89  _dt.bendingAngle = digi_phi.phiB();
90  _dt.qualityCode = digi_phi.code();
91  _dt.Ts2TagCode = digi_phi.Ts2Tag();
92  _dt.BxCntCode = digi_phi.BxCnt();
93 }
int quality(const int i) const
int position(const int i) const
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector)
int code(const int i) const
TriggerPrimitive::TriggerPrimitive ( const CSCDetId detid,
const CSCCorrelatedLCTDigi digi 
)

Definition at line 96 of file MuonTriggerPrimitive.cc.

References _csc, _globalsector, _id, _subsector, 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::getKeyWG(), CSCCorrelatedLCTDigi::getMPCLink(), CSCCorrelatedLCTDigi::getPattern(), CSCCLCTDigi::getQuality(), CSCALCTDigi::getQuality(), CSCCorrelatedLCTDigi::getQuality(), 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::quality, CSCDetId::ring(), CSCDetId::station(), L1TMuon::TriggerPrimitive::CSCData::strip, L1TMuon::TriggerPrimitive::CSCData::syncErr, L1TMuon::TriggerPrimitive::CSCData::trknmb, and L1TMuon::TriggerPrimitive::CSCData::valid.

97  :
98  _id(detid),
101  _csc.trknmb = digi.getTrknmb();
102  _csc.valid = digi.isValid();
103  _csc.quality = digi.getQuality();
104  _csc.keywire = digi.getKeyWG();
105  _csc.strip = digi.getStrip();
106  _csc.pattern = digi.getPattern();
107  _csc.bend = digi.getBend();
108  _csc.bx = digi.getBX();
109  _csc.mpclink = digi.getMPCLink();
110  _csc.bx0 = digi.getBX0();
111  _csc.syncErr = digi.getSyncErr();
112  _csc.cscID = digi.getCSCID();
113 
114  // Use ME1/1a --> ring 4 convention
115  if (detid.station() == 1 && detid.ring() == 1 && digi.getStrip() >= 128) {
116  _id = CSCDetId(detid.endcap(), detid.station(), 4, detid.chamber(), detid.layer());
117  _csc.strip = digi.getStrip() - 128;
118  }
119 
120  CSCCorrelatedLCTDigi digi_clone = digi; // Necessary to get around const qualifier
121  CSCALCTDigi alct = digi_clone.getALCT();
122  CSCCLCTDigi clct = digi_clone.getCLCT();
123  _csc.alct_quality = alct.getQuality();
124  _csc.clct_quality = clct.getQuality();
125 }
int getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:36
const CSCALCTDigi & getALCT() const
int chamber() const
Definition: CSCDetId.h:68
int getStrip() const
return the key halfstrip from 0,159
uint16_t getSyncErr() const
int getQuality() const
return the 4 bit Correlated LCT Quality
int getBend() const
return bend
int layer() const
Definition: CSCDetId.h:61
const CSCCLCTDigi & getCLCT() const
int endcap() const
Definition: CSCDetId.h:93
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector)
uint16_t getCSCID() const
int getTrknmb() const
return track number
int getBX() const
return BX
uint16_t getBX0() const
int ring() const
Definition: CSCDetId.h:75
int getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:36
int getMPCLink() const
return MPC link number, 0 means not sorted, 1-3 give MPC sorting rank
bool isValid() const
return valid pattern bit
int getPattern() const
return pattern
int station() const
Definition: CSCDetId.h:86
int getKeyWG() const
return the key wire group. counts from 0.
TriggerPrimitive::TriggerPrimitive ( const RPCDetId detid,
const RPCDigi digi 
)

Definition at line 128 of file MuonTriggerPrimitive.cc.

References _globalsector, _rpc, _subsector, RPCDigi::bx(), L1TMuon::TriggerPrimitive::RPCData::bx, calculateGlobalSector(), L1TMuon::TriggerPrimitive::RPCData::layer, RPCDetId::layer(), RPCDigi::strip(), L1TMuon::TriggerPrimitive::RPCData::strip, L1TMuon::TriggerPrimitive::RPCData::strip_hi, L1TMuon::TriggerPrimitive::RPCData::strip_low, RPCDigi::time(), L1TMuon::TriggerPrimitive::RPCData::time, and L1TMuon::TriggerPrimitive::RPCData::valid.

129  :
130  _id(detid),
133  _rpc.strip = digi.strip();
134  _rpc.strip_low = digi.strip();
135  _rpc.strip_hi = digi.strip();
136  _rpc.layer = detid.layer();
137  _rpc.bx = digi.bx();
138  _rpc.valid = 1;
139  _rpc.time = digi.time();
140 }
int bx() const
Definition: RPCDigi.h:29
double time() const
Definition: RPCDigi.h:30
int strip() const
Definition: RPCDigi.h:28
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector)
int layer() const
Definition: RPCDetId.h:108
TriggerPrimitive::TriggerPrimitive ( const RPCDetId detid,
const unsigned  strip,
const unsigned  layer,
const int  bx 
)

Definition at line 142 of file MuonTriggerPrimitive.cc.

References _globalsector, _rpc, _subsector, L1TMuon::TriggerPrimitive::RPCData::bx, calculateGlobalSector(), L1TMuon::TriggerPrimitive::RPCData::layer, digitizers_cfi::strip, L1TMuon::TriggerPrimitive::RPCData::strip, L1TMuon::TriggerPrimitive::RPCData::strip_hi, L1TMuon::TriggerPrimitive::RPCData::strip_low, L1TMuon::TriggerPrimitive::RPCData::time, and L1TMuon::TriggerPrimitive::RPCData::valid.

145  :
146  _id(detid),
149  _rpc.strip = strip;
150  _rpc.strip_low = strip;
151  _rpc.strip_hi = strip;
152  _rpc.layer = layer;
153  _rpc.bx = bx;
154  _rpc.valid = 1;
155  _rpc.time = -999999.;
156 }
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector)
TriggerPrimitive::TriggerPrimitive ( const GEMDetId detid,
const GEMPadDigi digi 
)

Definition at line 160 of file MuonTriggerPrimitive.cc.

References _gem, _globalsector, _subsector, L1TMuon::TriggerPrimitive::GEMData::bend, GEMPadDigi::bx(), L1TMuon::TriggerPrimitive::GEMData::bx, calculateGlobalSector(), L1TMuon::TriggerPrimitive::GEMData::isME0, GEMPadDigi::pad(), L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::GEMData::pad_hi, and L1TMuon::TriggerPrimitive::GEMData::pad_low.

161  :
162  _id(detid),
165  _gem.pad = digi.pad();
166  _gem.pad_low = digi.pad();
167  _gem.pad_hi = digi.pad();
168  _gem.bx = digi.bx();
169  _gem.bend = 0;
170  _gem.isME0 = false;
171 }
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector)
int pad() const
Definition: GEMPadDigi.h:27
int bx() const
Definition: GEMPadDigi.h:28
TriggerPrimitive::TriggerPrimitive ( const ME0DetId detid,
const ME0PadDigi digi 
)

Definition at line 173 of file MuonTriggerPrimitive.cc.

References _gem, _globalsector, _subsector, L1TMuon::TriggerPrimitive::GEMData::bend, ME0PadDigi::bx(), L1TMuon::TriggerPrimitive::GEMData::bx, calculateGlobalSector(), L1TMuon::TriggerPrimitive::GEMData::isME0, ME0PadDigi::pad(), L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::GEMData::pad_hi, and L1TMuon::TriggerPrimitive::GEMData::pad_low.

174  :
175  _id(detid),
178  _gem.pad = digi.pad();
179  _gem.pad_low = digi.pad();
180  _gem.pad_hi = digi.pad();
181  _gem.bx = digi.bx();
182  _gem.bend = 0;
183  _gem.isME0 = true;
184 }
int pad() const
Definition: ME0PadDigi.h:26
int bx() const
Definition: ME0PadDigi.h:27
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector)
TriggerPrimitive::TriggerPrimitive ( const TriggerPrimitive tp)

Member Function Documentation

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

Definition at line 204 of file MuonTriggerPrimitive.h.

References _csc.

Referenced by PrimitiveSelection::process().

204 { return _csc; }
DTData& L1TMuon::TriggerPrimitive::accessDTData ( )
inline

Definition at line 203 of file MuonTriggerPrimitive.h.

References _dt.

203 { return _dt; }
GEMData& L1TMuon::TriggerPrimitive::accessGEMData ( )
inline

Definition at line 206 of file MuonTriggerPrimitive.h.

References _gem, getBX(), getPattern(), getStrip(), and getWire().

206 { return _gem; }
RPCData& L1TMuon::TriggerPrimitive::accessRPCData ( )
inline

Definition at line 205 of file MuonTriggerPrimitive.h.

References _rpc.

205 { return _rpc; }
template<typename IDType >
void L1TMuon::TriggerPrimitive::calculateGlobalSector ( const IDType &  chid,
unsigned &  globalsector,
unsigned &  subsector 
)
inlineprivate

Definition at line 224 of file MuonTriggerPrimitive.h.

Referenced by TriggerPrimitive().

226  {
227  // Not sure if this is ever going to get implemented
228  globalsector = 0;
229  subsector = 0;
230  }
template<typename IDType >
IDType L1TMuon::TriggerPrimitive::detId ( ) const
inline
const int TriggerPrimitive::getBX ( ) const

Definition at line 262 of file MuonTriggerPrimitive.cc.

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

Referenced by accessGEMData(), and PrimitiveSelection::process().

262  {
263  switch(_subsystem) {
264  case kDT:
265  return _dt.bx;
266  case kCSC:
267  return _csc.bx;
268  case kRPC:
269  return _rpc.bx;
270  case kGEM:
271  return _gem.bx;
272  default:
273  throw cms::Exception("Invalid Subsytem")
274  << "The specified subsystem for this track stub is out of range"
275  << std::endl;
276  }
277  return -1;
278 }
const double L1TMuon::TriggerPrimitive::getCMSGlobalEta ( ) const
inline

Definition at line 172 of file MuonTriggerPrimitive.h.

References _eta.

172 { return _eta; }
const double L1TMuon::TriggerPrimitive::getCMSGlobalPhi ( ) const
inline

Definition at line 174 of file MuonTriggerPrimitive.h.

References _phi.

174 { return _phi; }
const GlobalPoint L1TMuon::TriggerPrimitive::getCMSGlobalPoint ( ) const
inline

Definition at line 179 of file MuonTriggerPrimitive.h.

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

179  { double theta = 2. * atan( exp(-_eta) );
180  return GlobalPoint( GlobalPoint::Cylindrical( _rho, _phi, _rho/tan(theta)) ); };
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Geom::Theta< T > theta() const
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
const double L1TMuon::TriggerPrimitive::getCMSGlobalRho ( ) const
inline

Definition at line 176 of file MuonTriggerPrimitive.h.

References _rho.

176 { return _rho; }
const CSCData L1TMuon::TriggerPrimitive::getCSCData ( ) const
inline
const DTData L1TMuon::TriggerPrimitive::getDTData ( ) const
inline
const GEMData L1TMuon::TriggerPrimitive::getGEMData ( ) const
inline
const unsigned L1TMuon::TriggerPrimitive::getGlobalSector ( ) const
inline

Definition at line 215 of file MuonTriggerPrimitive.h.

References _globalsector.

215 { return _globalsector; }
const int TriggerPrimitive::getPattern ( ) const

Definition at line 316 of file MuonTriggerPrimitive.cc.

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

Referenced by accessGEMData().

316  {
317  switch(_subsystem) {
318  case kDT:
319  return -1;
320  case kCSC:
321  return _csc.pattern;
322  case kRPC:
323  return -1;
324  case kGEM:
325  return -1;
326  default:
327  throw cms::Exception("Invalid Subsytem")
328  << "The specified subsystem for this track stub is out of range"
329  << std::endl;
330  }
331  return -1;
332 }
const RPCData L1TMuon::TriggerPrimitive::getRPCData ( ) const
inline
const int TriggerPrimitive::getStrip ( ) const

Definition at line 280 of file MuonTriggerPrimitive.cc.

References _csc, _gem, _rpc, _subsystem, Exception, kCSC, kDT, kGEM, kRPC, L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::RPCData::strip, and L1TMuon::TriggerPrimitive::CSCData::strip.

Referenced by accessGEMData(), and PrimitiveSelection::process().

280  {
281  switch(_subsystem) {
282  case kDT:
283  return -1;
284  case kCSC:
285  return _csc.strip;
286  case kRPC:
287  return _rpc.strip;
288  case kGEM:
289  return _gem.pad;
290  default:
291  throw cms::Exception("Invalid Subsytem")
292  << "The specified subsystem for this track stub is out of range"
293  << std::endl;
294  }
295  return -1;
296 }
const unsigned L1TMuon::TriggerPrimitive::getSubSector ( ) const
inline

Definition at line 216 of file MuonTriggerPrimitive.h.

References _subsector, and print().

216 { return _subsector; }
double L1TMuon::TriggerPrimitive::getThetaBend ( ) const
inline

Definition at line 187 of file MuonTriggerPrimitive.h.

References _theta.

187 { return _theta; }
const int TriggerPrimitive::getWire ( ) const

Definition at line 298 of file MuonTriggerPrimitive.cc.

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

Referenced by accessGEMData(), and PrimitiveSelection::process().

298  {
299  switch(_subsystem) {
300  case kDT:
301  return -1;
302  case kCSC:
303  return _csc.keywire;
304  case kRPC:
305  return -1;
306  case kGEM:
307  return -1;
308  default:
309  throw cms::Exception("Invalid Subsytem")
310  << "The specified subsystem for this track stub is out of range"
311  << std::endl;
312  }
313  return -1;
314 }
TriggerPrimitive & TriggerPrimitive::operator= ( const TriggerPrimitive tp)

Definition at line 201 of file MuonTriggerPrimitive.cc.

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

Referenced by TriggerPrimitive().

201  {
202  this->_dt = tp._dt;
203  this->_csc = tp._csc;
204  this->_rpc = tp._rpc;
205  this->_gem = tp._gem;
206  this->_id = tp._id;
207  this->_subsystem = tp._subsystem;
208  this->_globalsector = tp._globalsector;
209  this->_subsector = tp._subsector;
210  this->_eta = tp._eta;
211  this->_phi = tp._phi;
212  this->_rho = tp._rho;
213  this->_theta = tp._theta;
214  return *this;
215 }
bool TriggerPrimitive::operator== ( const TriggerPrimitive tp) const

Definition at line 217 of file MuonTriggerPrimitive.cc.

References _csc, _dt, _gem, _globalsector, _id, _rpc, _subsector, _subsystem, L1TMuon::TriggerPrimitive::CSCData::bend, L1TMuon::TriggerPrimitive::GEMData::bend, L1TMuon::TriggerPrimitive::DTData::bendingAngle, L1TMuon::TriggerPrimitive::RPCData::bx, L1TMuon::TriggerPrimitive::CSCData::bx, L1TMuon::TriggerPrimitive::DTData::bx, L1TMuon::TriggerPrimitive::GEMData::bx, L1TMuon::TriggerPrimitive::CSCData::bx0, L1TMuon::TriggerPrimitive::DTData::BxCntCode, L1TMuon::TriggerPrimitive::CSCData::cscID, L1TMuon::TriggerPrimitive::GEMData::isME0, L1TMuon::TriggerPrimitive::CSCData::keywire, L1TMuon::TriggerPrimitive::RPCData::layer, L1TMuon::TriggerPrimitive::CSCData::mpclink, L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::GEMData::pad_hi, L1TMuon::TriggerPrimitive::GEMData::pad_low, L1TMuon::TriggerPrimitive::CSCData::pattern, L1TMuon::TriggerPrimitive::CSCData::quality, L1TMuon::TriggerPrimitive::DTData::qualityCode, L1TMuon::TriggerPrimitive::DTData::radialAngle, L1TMuon::TriggerPrimitive::DTData::sector, L1TMuon::TriggerPrimitive::DTData::segment_number, L1TMuon::TriggerPrimitive::DTData::station, 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::DTData::theta_quality, L1TMuon::TriggerPrimitive::CSCData::trknmb, L1TMuon::TriggerPrimitive::DTData::Ts2TagCode, L1TMuon::TriggerPrimitive::RPCData::valid, L1TMuon::TriggerPrimitive::CSCData::valid, and L1TMuon::TriggerPrimitive::DTData::wheel.

Referenced by TriggerPrimitive().

217  {
218  return ( this->_dt.bx == tp._dt.bx &&
219  this->_dt.wheel == tp._dt.wheel &&
220  this->_dt.sector == tp._dt.sector &&
221  this->_dt.station == tp._dt.station &&
222  this->_dt.radialAngle == tp._dt.radialAngle &&
223  this->_dt.bendingAngle == tp._dt.bendingAngle &&
224  this->_dt.qualityCode == tp._dt.qualityCode &&
225  this->_dt.Ts2TagCode == tp._dt.Ts2TagCode &&
226  this->_dt.BxCntCode == tp._dt.BxCntCode &&
227  this->_dt.theta_bti_group == tp._dt.theta_bti_group &&
228  this->_dt.segment_number == tp._dt.segment_number &&
229  this->_dt.theta_code == tp._dt.theta_code &&
230  this->_dt.theta_quality == tp._dt.theta_quality &&
231  this->_csc.trknmb == tp._csc.trknmb &&
232  this->_csc.valid == tp._csc.valid &&
233  this->_csc.quality == tp._csc.quality &&
234  this->_csc.keywire == tp._csc.keywire &&
235  this->_csc.strip == tp._csc.strip &&
236  this->_csc.pattern == tp._csc.pattern &&
237  this->_csc.bend == tp._csc.bend &&
238  this->_csc.bx == tp._csc.bx &&
239  this->_csc.mpclink == tp._csc.mpclink &&
240  this->_csc.bx0 == tp._csc.bx0 &&
241  this->_csc.syncErr == tp._csc.syncErr &&
242  this->_csc.cscID == tp._csc.cscID &&
243  this->_rpc.strip == tp._rpc.strip &&
244  this->_rpc.strip_low == tp._rpc.strip_low &&
245  this->_rpc.strip_hi == tp._rpc.strip_hi &&
246  this->_rpc.layer == tp._rpc.layer &&
247  this->_rpc.bx == tp._rpc.bx &&
248  this->_rpc.valid == tp._rpc.valid &&
249  //this->_rpc.time == tp._rpc.time &&
250  this->_gem.pad == tp._gem.pad &&
251  this->_gem.pad_low == tp._gem.pad_low &&
252  this->_gem.pad_hi == tp._gem.pad_hi &&
253  this->_gem.bx == tp._gem.bx &&
254  this->_gem.bend == tp._gem.bend &&
255  this->_gem.isME0 == tp._gem.isME0 &&
256  this->_id == tp._id &&
257  this->_subsystem == tp._subsystem &&
258  this->_globalsector == tp._globalsector &&
259  this->_subsector == tp._subsector );
260 }
void TriggerPrimitive::print ( std::ostream &  out) const

Definition at line 334 of file MuonTriggerPrimitive.cc.

References _csc, _dt, _eta, _gem, _phi, _rho, _rpc, _subsystem, _theta, L1TMuon::TriggerPrimitive::CSCData::bend, L1TMuon::TriggerPrimitive::GEMData::bend, L1TMuon::TriggerPrimitive::DTData::bendingAngle, L1TMuon::TriggerPrimitive::RPCData::bx, L1TMuon::TriggerPrimitive::CSCData::bx, L1TMuon::TriggerPrimitive::DTData::bx, L1TMuon::TriggerPrimitive::GEMData::bx, L1TMuon::TriggerPrimitive::CSCData::bx0, L1TMuon::TriggerPrimitive::DTData::BxCntCode, L1TMuon::TriggerPrimitive::CSCData::cscID, Exception, training_settings::idx, L1TMuon::TriggerPrimitive::GEMData::isME0, kCSC, kDT, L1TMuon::TriggerPrimitive::CSCData::keywire, kGEM, kRPC, L1TMuon::TriggerPrimitive::RPCData::layer, L1TMuon::TriggerPrimitive::CSCData::mpclink, L1TMuon::TriggerPrimitive::GEMData::pad, L1TMuon::TriggerPrimitive::GEMData::pad_hi, L1TMuon::TriggerPrimitive::GEMData::pad_low, L1TMuon::TriggerPrimitive::CSCData::pattern, L1TMuon::TriggerPrimitive::CSCData::quality, L1TMuon::TriggerPrimitive::DTData::qualityCode, L1TMuon::TriggerPrimitive::DTData::radialAngle, 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::DTData::theta_quality, L1TMuon::TriggerPrimitive::RPCData::time, L1TMuon::TriggerPrimitive::CSCData::trknmb, L1TMuon::TriggerPrimitive::DTData::Ts2TagCode, L1TMuon::TriggerPrimitive::RPCData::valid, and L1TMuon::TriggerPrimitive::CSCData::valid.

Referenced by getSubSector().

334  {
335  unsigned idx = (unsigned) _subsystem;
336  out << subsystem_names[idx] << " Trigger Primitive" << std::endl;
337  out << "eta: " << _eta << " phi: " << _phi << " rho: " << _rho
338  << " theta: " << _theta << std::endl;
339  switch(_subsystem) {
340  case kDT:
341  out << detId<DTChamberId>() << std::endl;
342  out << "Local BX : " << _dt.bx << std::endl;
343  out << "Segment Nmb : " << _dt.segment_number << std::endl;
344  out << "Packed Phi : " << _dt.radialAngle << std::endl;
345  out << "Packed Bend : " << _dt.bendingAngle << std::endl;
346  out << "Quality Code : " << _dt.qualityCode << std::endl;
347  out << "Ts2Tag Code : " << _dt.Ts2TagCode << std::endl;
348  out << "BXCnt Code : " << _dt.BxCntCode << std::endl;
349  out << "Theta BTI Grp : " << _dt.theta_bti_group << std::endl;
350  out << "Theta Code : " << _dt.theta_code << std::endl;
351  out << "Theta Quality : " << _dt.theta_quality << std::endl;
352  break;
353  case kCSC:
354  out << detId<CSCDetId>() << std::endl;
355  out << "Local BX : " << _csc.bx << std::endl;
356  out << "Segment Nmb : " << _csc.trknmb << std::endl;
357  out << "Segment Valid : " << _csc.valid << std::endl;
358  out << "Quality Code : " << _csc.quality << std::endl;
359  out << "Key Wire Grp : " << _csc.keywire << std::endl;
360  out << "Half-Strip : " << _csc.strip << std::endl;
361  out << "CLCT Pattern : " << _csc.pattern << std::endl;
362  out << "Packed Bend : " << _csc.bend << std::endl;
363  out << "MPC Link : " << _csc.mpclink << std::endl;
364  out << "BX0 : " << _csc.bx0 << std::endl;
365  out << "Sync Error : " << _csc.syncErr << std::endl;
366  out << "CSCID : " << _csc.cscID << std::endl;
367  break;
368  case kRPC:
369  out << detId<RPCDetId>() << std::endl;
370  out << "Local BX : " << _rpc.bx << std::endl;
371  out << "Strip : " << _rpc.strip << std::endl;
372  out << "Strip Low : " << _rpc.strip_low << std::endl;
373  out << "Strip High : " << _rpc.strip_hi << std::endl;
374  out << "Layer : " << _rpc.layer << std::endl;
375  out << "Valid : " << _rpc.valid << std::endl;
376  out << "Time : " << _rpc.time << std::endl;
377  break;
378  case kGEM:
379  if (!_gem.isME0)
380  out << detId<GEMDetId>() << std::endl;
381  else
382  out << detId<ME0DetId>() << std::endl;
383  out << "Local BX : " << _gem.bx << std::endl;
384  out << "Pad : " << _gem.pad << std::endl;
385  out << "Pad Low : " << _gem.pad_low << std::endl;
386  out << "Pad High : " << _gem.pad_hi << std::endl;
387  out << "Packed Bend : " << _gem.bend << std::endl;
388  out << "Is ME0 : " << _gem.isME0 << std::endl;
389  break;
390  default:
391  throw cms::Exception("Invalid Subsytem")
392  << "The specified subsystem for this track stub is out of range"
393  << std::endl;
394  }
395 }
const DetId L1TMuon::TriggerPrimitive::rawId ( ) const
inline

Definition at line 213 of file MuonTriggerPrimitive.h.

References _id.

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

Definition at line 173 of file MuonTriggerPrimitive.h.

References _eta, and PVValHelper::eta.

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

Definition at line 175 of file MuonTriggerPrimitive.h.

References _phi.

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

Definition at line 177 of file MuonTriggerPrimitive.h.

References _rho.

void L1TMuon::TriggerPrimitive::setCSCData ( const CSCData csc)
inline
void L1TMuon::TriggerPrimitive::setDTData ( const DTData dt)
inline

Definition at line 193 of file MuonTriggerPrimitive.h.

References _dt, and dt.

193 { _dt = dt; }
float dt
Definition: AMPTWrapper.h:126
void L1TMuon::TriggerPrimitive::setGEMData ( const GEMData gem)
inline

Definition at line 196 of file MuonTriggerPrimitive.h.

References _gem.

196 { _gem = gem; }
void L1TMuon::TriggerPrimitive::setRPCData ( const RPCData rpc)
inline
void L1TMuon::TriggerPrimitive::setThetaBend ( const double  theta)
inline

Definition at line 186 of file MuonTriggerPrimitive.h.

References _theta, and theta().

186 { _theta = theta; }
Geom::Theta< T > theta() const
const subsystem_type L1TMuon::TriggerPrimitive::subsystem ( ) const
inline

Member Data Documentation

CSCData L1TMuon::TriggerPrimitive::_csc
private
DTData L1TMuon::TriggerPrimitive::_dt
private
double L1TMuon::TriggerPrimitive::_eta
private
GEMData L1TMuon::TriggerPrimitive::_gem
private
unsigned L1TMuon::TriggerPrimitive::_globalsector
private

Definition at line 241 of file MuonTriggerPrimitive.h.

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

DetId L1TMuon::TriggerPrimitive::_id
private

Definition at line 237 of file MuonTriggerPrimitive.h.

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

double L1TMuon::TriggerPrimitive::_phi
private
double L1TMuon::TriggerPrimitive::_rho
private
RPCData L1TMuon::TriggerPrimitive::_rpc
private
unsigned L1TMuon::TriggerPrimitive::_subsector
private

Definition at line 242 of file MuonTriggerPrimitive.h.

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

subsystem_type L1TMuon::TriggerPrimitive::_subsystem
private
double L1TMuon::TriggerPrimitive::_theta
private

Definition at line 244 of file MuonTriggerPrimitive.h.

Referenced by getThetaBend(), operator=(), print(), and setThetaBend().