#include <CSCCLCTDigi.h>
Public Member Functions | |
void | clear () |
clear this CLCT | |
CSCCLCTDigi () | |
default | |
CSCCLCTDigi (const int valid, const int quality, const int pattern, const int striptype, const int bend, const int strip, const int cfeb, const int bx, const int trknmb=0, const int fullbx=0) | |
Constructors. | |
int | getBend () const |
return bend | |
int | getBX () const |
return BX | |
int | getCFEB () const |
return Key CFEB ID | |
int | getFullBX () const |
return 12-bit full BX. | |
int | getKeyStrip () const |
int | getPattern () const |
return pattern | |
int | getQuality () const |
return quality of a pattern (number of layers hit!) | |
int | getStrip () const |
return halfstrip that goes from 0 to 31 | |
int | getStripType () const |
return striptype | |
int | getTrknmb () const |
return track number (1,2) | |
bool | isValid () const |
check CLCT validity (1 - valid CLCT) | |
bool | operator!= (const CSCCLCTDigi &) const |
True if the preceding one is false. | |
bool | operator== (const CSCCLCTDigi &) const |
True if the two LCTs have exactly the same members (except the number). | |
bool | operator> (const CSCCLCTDigi &) const |
void | print () const |
Print content of digi. | |
void | setFullBX (const uint16_t fullbx) |
Set 12-bit full BX. | |
void | setTrknmb (const uint16_t number) |
Set track number (1,2) after sorting CLCTs. | |
Private Attributes | |
uint16_t | bend_ |
uint16_t | bx_ |
uint16_t | cfeb_ |
uint16_t | fullbx_ |
uint16_t | pattern_ |
uint16_t | quality_ |
uint16_t | strip_ |
uint16_t | striptype_ |
uint16_t | trknmb_ |
uint16_t | valid_ |
Digi for CLCT trigger primitives.
Digi for CLCT trigger primitives.
Definition at line 17 of file CSCCLCTDigi.h.
CSCCLCTDigi::CSCCLCTDigi | ( | const int | valid, |
const int | quality, | ||
const int | pattern, | ||
const int | striptype, | ||
const int | bend, | ||
const int | strip, | ||
const int | cfeb, | ||
const int | bx, | ||
const int | trknmb = 0 , |
||
const int | fullbx = 0 |
||
) |
Constructors.
Definition at line 17 of file CSCCLCTDigi.cc.
: valid_(valid), quality_(quality), pattern_(pattern), striptype_(striptype), bend_(bend), strip_(strip), cfeb_(cfeb), bx_(bx), trknmb_(trknmb), //fullbx_(0) fullbx_(fullbx) { //valid_ = valid; //quality_ = quality; //pattern_ = pattern; //striptype_ = striptype; //bend_ = bend; //strip_ = strip; //cfeb_ = cfeb; //bx_ = bx; //trknmb_ = trknmb; }
CSCCLCTDigi::CSCCLCTDigi | ( | ) |
void CSCCLCTDigi::clear | ( | void | ) |
clear this CLCT
Clears this CLCT.
Definition at line 60 of file CSCCLCTDigi.cc.
References bend_, bx_, cfeb_, fullbx_, pattern_, quality_, strip_, striptype_, trknmb_, and valid_.
Referenced by CSCCathodeLCTProcessor::clear(), and L1Comparator::produce().
int CSCCLCTDigi::getBend | ( | ) | const [inline] |
return bend
Definition at line 44 of file CSCCLCTDigi.h.
References bend_.
Referenced by CSCTMBHeader2007::addCLCT0(), CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2007::addCLCT1(), CSCTMBHeader2006::addCLCT1(), CSCMotherboard::constructLCTs(), operator<<(), operator==(), print(), CSCMotherboard::testLCT(), and CSCCathodeLCTProcessor::testLCTs().
{return bend_ ;}
int CSCCLCTDigi::getBX | ( | ) | const [inline] |
return BX
Definition at line 53 of file CSCCLCTDigi.h.
References bx_.
Referenced by CSCTMBHeader2007::addCLCT0(), CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2007_rev0x50c3::addCLCT0(), CSCTMBHeader2007::addCLCT1(), CSCTMBHeader2006::addCLCT1(), CSCMotherboard::constructLCTs(), operator<<(), operator==(), print(), and CSCCathodeLCTProcessor::testLCTs().
{return bx_ ;}
int CSCCLCTDigi::getCFEB | ( | ) | const [inline] |
return Key CFEB ID
Definition at line 50 of file CSCCLCTDigi.h.
References cfeb_.
Referenced by CSCTMBHeader2007::addCLCT0(), CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2007::addCLCT1(), CSCTMBHeader2006::addCLCT1(), operator<<(), print(), and CSCCathodeLCTProcessor::testLCTs().
{return cfeb_ ;}
int CSCCLCTDigi::getFullBX | ( | ) | const [inline] |
return 12-bit full BX.
Definition at line 76 of file CSCCLCTDigi.h.
References fullbx_.
Referenced by CSCTMBHeader2007::addCLCT0(), CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2007_rev0x50c3::addCLCT0(), CSCTMBHeader2007::addCLCT1(), CSCTMBHeader2006::addCLCT1(), CSCTMBHeader2007_rev0x50c3::addCLCT1(), and print().
{return fullbx_ ;}
int CSCCLCTDigi::getKeyStrip | ( | ) | const [inline] |
Convert strip_ and cfeb_ to keyStrip. Each CFEB has up to 16 strips (32 halfstrips). There are 5 cfebs. The "strip_" variable is one of 32 halfstrips on the keylayer of a single CFEB, so that Distrip = (cfeb*32 + strip)/4. Halfstrip = (cfeb*32 + strip). Always return halfstrip number since this is what is stored in the correlated LCT digi. For distrip patterns, the convention is the same as for persistent strip numbers: low halfstrip of a distrip. SV, June 15th, 2006.
Definition at line 67 of file CSCCLCTDigi.h.
Referenced by CSCTMBHeader2007_rev0x50c3::addCLCT0(), CSCTMBHeader2007_rev0x50c3::addCLCT1(), CSCMotherboard::constructLCTs(), operator<<(), operator==(), operator>(), print(), CSCMotherboard::testLCT(), and CSCCathodeLCTProcessor::testLCTs().
int CSCCLCTDigi::getPattern | ( | ) | const [inline] |
return pattern
Definition at line 38 of file CSCCLCTDigi.h.
References pattern_.
Referenced by CSCTMBHeader2007::addCLCT0(), CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2007_rev0x50c3::addCLCT0(), CSCTMBHeader2007::addCLCT1(), CSCTMBHeader2006::addCLCT1(), CSCTMBHeader2007_rev0x50c3::addCLCT1(), CSCMotherboard::constructLCTs(), CSCMotherboard::findQuality(), operator<<(), operator==(), operator>(), print(), CSCMotherboard::testLCT(), and CSCCathodeLCTProcessor::testLCTs().
{return pattern_ ;}
int CSCCLCTDigi::getQuality | ( | ) | const [inline] |
return quality of a pattern (number of layers hit!)
Definition at line 35 of file CSCCLCTDigi.h.
References quality_.
Referenced by CSCTMBHeader2007::addCLCT0(), CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2007_rev0x50c3::addCLCT0(), CSCTMBHeader2007::addCLCT1(), CSCTMBHeader2006::addCLCT1(), CSCTMBHeader2007_rev0x50c3::addCLCT1(), CSCMotherboard::findQuality(), operator<<(), operator==(), operator>(), print(), and CSCCathodeLCTProcessor::testLCTs().
{return quality_ ;}
int CSCCLCTDigi::getStrip | ( | ) | const [inline] |
return halfstrip that goes from 0 to 31
Definition at line 47 of file CSCCLCTDigi.h.
References strip_.
Referenced by CSCTMBHeader2007::addCLCT0(), CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2007::addCLCT1(), CSCTMBHeader2006::addCLCT1(), operator<<(), and print().
{return strip_ ;}
int CSCCLCTDigi::getStripType | ( | ) | const [inline] |
return striptype
Definition at line 41 of file CSCCLCTDigi.h.
References striptype_.
Referenced by CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2006::addCLCT1(), CSCMotherboard::constructLCTs(), CSCMotherboard::findQuality(), operator<<(), operator==(), print(), CSCMotherboard::testLCT(), and CSCCathodeLCTProcessor::testLCTs().
{return striptype_ ;}
int CSCCLCTDigi::getTrknmb | ( | ) | const [inline] |
return track number (1,2)
Definition at line 56 of file CSCCLCTDigi.h.
References trknmb_.
Referenced by operator<<(), and print().
{return trknmb_ ;}
bool CSCCLCTDigi::isValid | ( | void | ) | const [inline] |
check CLCT validity (1 - valid CLCT)
Definition at line 32 of file CSCCLCTDigi.h.
References valid_.
Referenced by CSCTMBHeader2007::addCLCT0(), CSCTMBHeader2006::addCLCT0(), CSCTMBHeader2007_rev0x50c3::addCLCT0(), CSCTMBHeader2007::addCLCT1(), CSCTMBHeader2006::addCLCT1(), CSCTMBHeader2007_rev0x50c3::addCLCT1(), CSCMotherboard::correlateLCTs(), CSCMotherboard::findQuality(), operator<<(), operator==(), print(), and CSCMotherboard::run().
{return valid_ ;}
bool CSCCLCTDigi::operator!= | ( | const CSCCLCTDigi & | rhs | ) | const |
True if the preceding one is false.
Definition at line 112 of file CSCCLCTDigi.cc.
{ // True if == is false. bool returnValue = true; if ((*this) == rhs) returnValue = false; return returnValue; }
bool CSCCLCTDigi::operator== | ( | const CSCCLCTDigi & | rhs | ) | const |
True if the two LCTs have exactly the same members (except the number).
Definition at line 100 of file CSCCLCTDigi.cc.
References getBend(), getBX(), getKeyStrip(), getPattern(), getQuality(), getStripType(), and isValid().
{ // Exact equality. bool returnValue = false; if (isValid() == rhs.isValid() && getQuality() == rhs.getQuality() && getPattern() == rhs.getPattern() && getKeyStrip()== rhs.getKeyStrip()&& getStripType() == rhs.getStripType() && getBend() == getBend() && getBX() == rhs.getBX()) { returnValue = true; } return returnValue; }
bool CSCCLCTDigi::operator> | ( | const CSCCLCTDigi & | rhs | ) | const |
True if the left-hand side has a larger "quality". Full definition of "quality" depends on quality word itself, pattern type, and strip number.
Definition at line 73 of file CSCCLCTDigi.cc.
References getKeyStrip(), getPattern(), and getQuality().
{ // Several versions of CLCT sorting criteria were used before 2008. // They are available in CMSSW versions prior to 3_1_0; here we only keep // the latest one, used in TMB-07 firmware (w/o distrips). bool returnValue = false; int quality1 = getQuality(); int quality2 = rhs.getQuality(); // The bend-direction bit pid[0] is ignored (left and right bends have // equal quality). int pattern1 = getPattern() & 14; int pattern2 = rhs.getPattern() & 14; // Better-quality CLCTs are preferred. // If two qualities are equal, larger pattern id (i.e., straighter pattern) // is preferred; left- and right-bend patterns are considered to be of // the same quality. // If both qualities and pattern id's are the same, lower keystrip // is preferred. if ((quality1 > quality2) || (quality1 == quality2 && pattern1 > pattern2) || (quality1 == quality2 && pattern1 == pattern2 && getKeyStrip() < rhs.getKeyStrip())) {returnValue = true;} return returnValue; }
void CSCCLCTDigi::print | ( | void | ) | const |
Print content of digi.
Debug.
Definition at line 120 of file CSCCLCTDigi.cc.
References gather_cfg::cout, getBend(), getBX(), getCFEB(), getFullBX(), getKeyStrip(), getPattern(), getQuality(), getStrip(), getStripType(), getTrknmb(), and isValid().
{ if (isValid()) { char stripType = (getStripType() == 0) ? 'D' : 'H'; char bend = (getBend() == 0) ? 'L' : 'R'; std::cout << " CSC CLCT #" << std::setw(1) << getTrknmb() << ": Valid = " << std::setw(1) << isValid() << " Key Strip = " << std::setw(3) << getKeyStrip() << " Strip = " << std::setw(2) << getStrip() << " Quality = " << std::setw(1) << getQuality() << " Pattern = " << std::setw(1) << getPattern() << " Bend = " << std::setw(1) << bend << " Strip type = " << std::setw(1) << stripType << " CFEB ID = " << std::setw(1) << getCFEB() << " BX = " << std::setw(1) << getBX() << " Full BX= " << std::setw(1) << getFullBX() << std::endl; } else { std::cout << "Not a valid Cathode LCT." << std::endl; } }
void CSCCLCTDigi::setFullBX | ( | const uint16_t | fullbx | ) | [inline] |
Set 12-bit full BX.
Definition at line 79 of file CSCCLCTDigi.h.
References fullbx_.
{fullbx_ = fullbx;}
void CSCCLCTDigi::setTrknmb | ( | const uint16_t | number | ) | [inline] |
Set track number (1,2) after sorting CLCTs.
Definition at line 73 of file CSCCLCTDigi.h.
References trknmb_.
Referenced by CSCCathodeLCTProcessor::run().
{trknmb_ = number;}
uint16_t CSCCLCTDigi::bend_ [private] |
Definition at line 102 of file CSCCLCTDigi.h.
uint16_t CSCCLCTDigi::bx_ [private] |
Definition at line 105 of file CSCCLCTDigi.h.
uint16_t CSCCLCTDigi::cfeb_ [private] |
Definition at line 104 of file CSCCLCTDigi.h.
Referenced by clear(), getCFEB(), and getKeyStrip().
uint16_t CSCCLCTDigi::fullbx_ [private] |
Definition at line 107 of file CSCCLCTDigi.h.
Referenced by clear(), getFullBX(), and setFullBX().
uint16_t CSCCLCTDigi::pattern_ [private] |
Definition at line 100 of file CSCCLCTDigi.h.
Referenced by clear(), and getPattern().
uint16_t CSCCLCTDigi::quality_ [private] |
Definition at line 99 of file CSCCLCTDigi.h.
Referenced by clear(), and getQuality().
uint16_t CSCCLCTDigi::strip_ [private] |
Definition at line 103 of file CSCCLCTDigi.h.
Referenced by clear(), getKeyStrip(), and getStrip().
uint16_t CSCCLCTDigi::striptype_ [private] |
Definition at line 101 of file CSCCLCTDigi.h.
Referenced by clear(), and getStripType().
uint16_t CSCCLCTDigi::trknmb_ [private] |
Definition at line 106 of file CSCCLCTDigi.h.
Referenced by clear(), getTrknmb(), and setTrknmb().
uint16_t CSCCLCTDigi::valid_ [private] |
Definition at line 98 of file CSCCLCTDigi.h.