25 const char subsystem_names[][4] = {
"DT",
"CSC",
"RPC",
"GEM",
"ME0"};
32 const int segment_number)
59 const int theta_bti_group)
87 const int theta_bti_group)
144 const bool is_me11a = (
detid.station() == 1 &&
detid.ring() == 1 && digi.
getStrip() >= 128);
280 _subsystem(
tp._subsystem),
281 _globalsector(
tp._globalsector),
282 _subsector(
tp._subsector),
308 auto isclose = [](
float a,
float b,
float rtol = 1.e-5,
float atol = 1.e-8) {
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);
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);
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) &&
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);
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);
356 <<
"The specified subsystem for this track stub is out of range" << std::endl;
376 <<
"The specified subsystem for this track stub is out of range" << std::endl;
395 <<
"The specified subsystem for this track stub is out of range" << std::endl;
414 <<
"The specified subsystem for this track stub is out of range" << std::endl;
433 <<
"The specified subsystem for this track stub is out of range" << std::endl;
440 out << subsystem_names[
idx] <<
" Trigger Primitive" << std::endl;
444 out << detId<DTChamberId>() << std::endl;
445 out <<
"Local BX : " <<
_dt.
bx << std::endl;
458 out << detId<CSCDetId>() << std::endl;
459 out <<
"Local BX : " <<
_csc.
bx << std::endl;
475 out << detId<RPCDetId>() << std::endl;
476 out <<
"Local BX : " <<
_rpc.
bx << std::endl;
485 out <<
"Local x : " <<
_rpc.
x << std::endl;
486 out <<
"Local y : " <<
_rpc.
y << std::endl;
491 out << detId<GEMDetId>() << std::endl;
492 out <<
"Local BX : " <<
_gem.
bx << std::endl;
499 out << detId<ME0DetId>() << std::endl;
501 out << detId<GEMDetId>() << std::endl;
504 out <<
"Local BX : " <<
_me0.
bx << std::endl;
514 <<
"The specified subsystem for this track stub is out of range" << std::endl;
double coordinateY() const
void print(std::ostream &) const
const std::vector< uint16_t > & pads() const
LocalPoint localPosition() const override
Return the 3-dimensional local position.
bool operator==(const TriggerPrimitive &tp) const
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
int getQuality() const
return the Quality
TriggerPrimitive & operator=(const TriggerPrimitive &tp)
int position(const int i) const
int getChamberid() const
return chamber number in one CTP7
double coordinateX() const
subsystem_type _subsystem
uint16_t getQuality() const
return quality of a pattern
int getBend() const
return bend
void calculateGlobalSector(const IDType &chid, unsigned &globalsector, unsigned &subsector) const
int getDeltaphi() const
return bending angle
int code(const int i) const
Abs< T >::type abs(const T &t)
int getPhiposition() const
return the phi position, resolution: half strip level
int getBX() const
return BX
int firstClusterStrip() const
uint16_t strip_eighth_bit
int quality(const int i) const
int getPartition() const
return the key "partition"