#include <CSCMotherboard.h>
Public Member Functions | |
void | clear () |
CSCMotherboard () | |
CSCMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) | |
std::vector< CSCCorrelatedLCTDigi > | getLCTs () const |
virtual std::vector< CSCCorrelatedLCTDigi > | readoutLCTs () const |
virtual void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) |
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
~CSCMotherboard () override=default | |
Public Member Functions inherited from CSCBaseboard | |
CSCBaseboard () | |
CSCBaseboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) | |
std::string | getCSCName () const |
void | setCSCGeometry (const CSCGeometry *g) |
virtual | ~CSCBaseboard ()=default |
Public Attributes | |
std::unique_ptr< CSCAnodeLCTProcessor > | alctProc |
std::unique_ptr< CSCCathodeLCTProcessor > | clctProc |
Protected Types | |
enum | LCT_Quality : unsigned int { LCT_Quality::INVALID = 0, LCT_Quality::NO_CLCT = 1, LCT_Quality::NO_ALCT = 2, LCT_Quality::CLCT_LAYER_TRIGGER = 3, LCT_Quality::LOW_QUALITY = 4, LCT_Quality::MARGINAL_ANODE_CATHODE = 5, LCT_Quality::HQ_ANODE_MARGINAL_CATHODE = 6, LCT_Quality::HQ_CATHODE_MARGINAL_ANODE = 7, LCT_Quality::HQ_ACCEL_ALCT = 8, LCT_Quality::HQ_RESERVED_1 = 9, LCT_Quality::HQ_RESERVED_2 = 10, LCT_Quality::HQ_PATTERN_2_3 = 11, LCT_Quality::HQ_PATTERN_4_5 = 12, LCT_Quality::HQ_PATTERN_6_7 = 13, LCT_Quality::HQ_PATTERN_8_9 = 14, LCT_Quality::HQ_PATTERN_10 = 15 } |
enum | LCT_QualityRun3 : unsigned int { LCT_QualityRun3::INVALID = 0, LCT_QualityRun3::LowQ = 1, LCT_QualityRun3::MedQ = 2, LCT_QualityRun3::HighQ = 3 } |
Protected Member Functions | |
void | checkConfigParameters () |
CSCCorrelatedLCTDigi | constructLCTs (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const |
void | correlateLCTs (const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, int type) |
void | dumpConfigParams () const |
void | encodeHighMultiplicityBits (unsigned alctBits) |
unsigned int | encodePattern (const int clctPattern) const |
LCT_Quality | findQuality (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const |
LCT_QualityRun3 | findQualityRun3 (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const |
CSCALCTDigi | getBXShiftedALCT (const CSCALCTDigi &) const |
CSCCLCTDigi | getBXShiftedCLCT (const CSCCLCTDigi &) const |
Protected Member Functions inherited from CSCBaseboard | |
void | checkConfigParameters (unsigned int &var, const unsigned int var_max, const unsigned int var_def, const std::string &var_str) |
Static Protected Attributes | |
static const unsigned int | def_alct_trig_enable = 0 |
static const unsigned int | def_clct_trig_enable = 0 |
static const unsigned int | def_match_trig_enable = 1 |
static const unsigned int | def_match_trig_window_size = 7 |
static const unsigned int | def_mpc_block_me1a = 1 |
static const unsigned int | def_tmb_l1a_window_size = 7 |
Correlates anode and cathode LCTs from the same chamber.
When the Trigger MotherBoard (TMB) is instantiated it instantiates an ALCT and CLCT board. The MotherBoard takes up to two LCTs from each anode and cathode LCT card and combines them into a single Correlated LCT. The output is up to two Correlated LCTs.
It can be run in either a test mode, where the arguments are a collection of wire times and arrays of halfstrip times, or for general use, with wire digi and comparator digi collections as arguments. In the latter mode, the wire & strip info is passed on the LCTProcessors, where it is decoded and converted into a convenient form. After running the anode and cathode LCTProcessors, TMB correlates the anode and cathode LCTs. At present, it simply matches the best CLCT with the best ALCT; perhaps a better algorithm will be determined in the future. The MotherBoard then determines a few more numbers (such as quality and pattern) from the ALCT and CLCT information, and constructs two correlated LCT "digis".
Based on code by Nick Wisniewski (nw@it) and a framework by Darin Acosta ( s.ca ltech .eduacost). a@ph ys.uf l.ed u
Numerous later improvements by Jason Mumford and Slava Valuev (see cvs in ORCA). Porting from ORCA by S. Valuev (Slava), May 2006. .Val uev@c ern. ch
Definition at line 41 of file CSCMotherboard.h.
|
strongprotected |
Definition at line 147 of file CSCMotherboard.h.
|
strongprotected |
Enumerator | |
---|---|
INVALID | |
LowQ | |
MedQ | |
HighQ |
Definition at line 166 of file CSCMotherboard.h.
CSCMotherboard::CSCMotherboard | ( | unsigned | endcap, |
unsigned | station, | ||
unsigned | sector, | ||
unsigned | subsector, | ||
unsigned | chamber, | ||
const edm::ParameterSet & | conf | ||
) |
Normal constructor.
Definition at line 13 of file CSCMotherboard.cc.
References alct_trig_enable, alctProc, relativeConstraints::chamber, checkConfigParameters(), clct_to_alct, clct_trig_enable, clctProc, drop_used_alcts, drop_used_clcts, dumpConfigParams(), early_tbins, makeMuonMisalignmentScenario::endcap, edm::ParameterSet::getParameter(), highMultiplicityBits_, CSCBaseboard::infoV, match_trig_enable, match_trig_window_size, mpc_block_me1a, qualityControl_, readout_earliest_2, relativeConstraints::station, tmb_l1a_window_size, CSCBaseboard::tmbParams_, and useHighMultiplicityBits_.
CSCMotherboard::CSCMotherboard | ( | ) |
Constructor for use during testing.
Definition at line 64 of file CSCMotherboard.cc.
References alct_trig_enable, alctProc, checkConfigParameters(), clct_trig_enable, clctProc, def_alct_trig_enable, def_clct_trig_enable, def_match_trig_enable, def_match_trig_window_size, def_mpc_block_me1a, def_tmb_l1a_window_size, dumpConfigParams(), early_tbins, CSCBaseboard::infoV, match_trig_enable, match_trig_window_size, mpc_block_me1a, and tmb_l1a_window_size.
|
overridedefault |
Default destructor.
|
protected |
Make sure that the parameter values are within the allowed range.
Definition at line 660 of file CSCMotherboard.cc.
References alct_trig_enable, CSCBaseboard::checkConfigParameters(), clct_trig_enable, def_alct_trig_enable, def_clct_trig_enable, def_match_trig_enable, def_match_trig_window_size, def_mpc_block_me1a, def_tmb_l1a_window_size, match_trig_enable, match_trig_window_size, mpc_block_me1a, and tmb_l1a_window_size.
Referenced by CSCMotherboard(), and setConfigParameters().
void CSCMotherboard::clear | ( | void | ) |
Clears correlated LCT and passes clear signal on to cathode and anode LCT processors.
Definition at line 89 of file CSCMotherboard.cc.
References alctProc, alctV, l1GtPatternGenerator_cfi::bx, clctProc, clctV, CSCCorrelatedLCTDigi::clear(), firstLCT, CSCConstants::MAX_LCT_TBINS, and secondLCT.
Referenced by CSCUpgradeMotherboard::clear(), and run().
|
protected |
Definition at line 486 of file CSCMotherboard.cc.
References l1GtPatternGenerator_cfi::bx, encodePattern(), findQuality(), findQualityRun3(), CSCCLCTDigi::getBend(), CSCALCTDigi::getBX(), CSCCLCTDigi::getBX(), getBXShiftedALCT(), getBXShiftedCLCT(), CSCCLCTDigi::getEighthStrip(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getQuartStrip(), CSCCLCTDigi::getRun3Pattern(), CSCCLCTDigi::getSlope(), highMultiplicityBits_, CSCALCTDigi::isValid(), topSingleLeptonDQM_PU_cfi::pattern, quality, CSCBaseboard::runCCLUT_, CSCCorrelatedLCTDigi::setType(), CSCBaseboard::theTrigChamber, and useHighMultiplicityBits_.
Referenced by CSCUpgradeMotherboard::correlateLCTs(), correlateLCTs(), CSCGEMMotherboardME21::correlateLCTsGEM(), CSCGEMMotherboardME11::correlateLCTsGEM(), and CSCMotherboardME11::correlateLCTsME11().
|
protected |
Definition at line 431 of file CSCMotherboard.cc.
References alct_trig_enable, l1GtPatternGenerator_cfi::bx, clct_trig_enable, constructLCTs(), firstLCT, CSCCorrelatedLCTDigi::getBX(), CSCBaseboard::infoV, CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), match_trig_enable, CSCConstants::MAX_LCT_TBINS, and secondLCT.
Referenced by run().
|
protected |
Dump TMB/MPC configuration parameters.
Definition at line 683 of file CSCMotherboard.cc.
References alct_trig_enable, clct_trig_enable, LogDebug, match_trig_enable, match_trig_window_size, mpc_block_me1a, and tmb_l1a_window_size.
Referenced by CSCMotherboard(), and setConfigParameters().
|
protected |
Definition at line 711 of file CSCMotherboard.cc.
References highMultiplicityBits_.
Referenced by CSCGEMMotherboardME11::run(), CSCGEMMotherboardME21::run(), CSCMotherboardME11::run(), run(), and CSCUpgradeMotherboard::run().
|
protected |
Definition at line 542 of file CSCMotherboard.cc.
References funct::abs(), and topSingleLeptonDQM_PU_cfi::pattern.
Referenced by constructLCTs(), and CSCGEMMotherboard::constructLCTsGEM().
|
protected |
Definition at line 552 of file CSCMotherboard.cc.
References CLCT_LAYER_TRIGGER, CSCALCTDigi::getAccelerator(), CSCCLCTDigi::getPattern(), CSCALCTDigi::getQuality(), CSCCLCTDigi::getQuality(), HQ_ACCEL_ALCT, HQ_ANODE_MARGINAL_CATHODE, HQ_CATHODE_MARGINAL_ANODE, HQ_PATTERN_10, HQ_PATTERN_2_3, HQ_PATTERN_4_5, HQ_PATTERN_6_7, HQ_PATTERN_8_9, INVALID, CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), MARGINAL_ANODE_CATHODE, NO_ALCT, NO_CLCT, topSingleLeptonDQM_PU_cfi::pattern, and CSCBaseboard::theCSCName_.
Referenced by constructLCTs().
|
protected |
Definition at line 635 of file CSCMotherboard.cc.
References CSCALCTDigi::getQuality(), CSCCLCTDigi::getQuality(), HighQ, INVALID, CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), LowQ, MedQ, and or.
Referenced by constructLCTs().
|
protected |
Definition at line 699 of file CSCMotherboard.cc.
References CSCALCTDigi::getBX(), CSCConstants::LCT_CENTRAL_BX, CSCALCTDigi::setBX(), and tmb_l1a_window_size.
Referenced by constructLCTs(), and CSCGEMMotherboard::constructLCTsGEM().
|
protected |
Definition at line 705 of file CSCMotherboard.cc.
References CSCConstants::ALCT_CLCT_OFFSET, CSCCLCTDigi::getBX(), and CSCCLCTDigi::setBX().
Referenced by constructLCTs(), and CSCGEMMotherboard::constructLCTsGEM().
std::vector< CSCCorrelatedLCTDigi > CSCMotherboard::getLCTs | ( | ) | const |
Returns vector of all found correlated LCTs, if any.
Definition at line 416 of file CSCMotherboard.cc.
References l1GtPatternGenerator_cfi::bx, firstLCT, CSCBaseboard::isME11_, sistrip::SpyUtilities::isValid(), CSCConstants::MAX_HALF_STRIP_ME1B, CSCConstants::MAX_LCT_TBINS, mpc_block_me1a, and secondLCT.
Referenced by readoutLCTs().
|
virtual |
Returns vector of correlated LCTs in the read-out time window, if any.
Reimplemented in CSCUpgradeMotherboard, and CSCGEMMotherboardME21.
Definition at line 332 of file CSCMotherboard.cc.
References l1GtPatternGenerator_cfi::bx, early_tbins, getLCTs(), CSCBaseboard::infoV, LogDebug, CSCConstants::MAX_LCT_TBINS, qualityControl_, readout_earliest_2, and tmb_l1a_window_size.
Referenced by CSCTriggerPrimitivesBuilder::build().
|
virtual |
Run function for normal usage. Runs cathode and anode LCT processors, takes results and correlates into CorrelatedLCT.
Reimplemented in CSCUpgradeMotherboard, and CSCMotherboardME11.
Definition at line 131 of file CSCMotherboard.cc.
References a, CSCConstants::ALCT_CLCT_OFFSET, alct_trig_enable, CSCCorrelatedLCTDigi::ALCTCLCT, CSCCorrelatedLCTDigi::ALCTONLY, alctProc, alctV, l1GtPatternGenerator_cfi::bx, clct_to_alct, clct_trig_enable, CSCCorrelatedLCTDigi::CLCTALCT, CSCCorrelatedLCTDigi::CLCTONLY, clctProc, clctV, clear(), correlateLCTs(), CSCBaseboard::cscGeometry_, drop_used_alcts, drop_used_clcts, encodeHighMultiplicityBits(), firstLCT, CSCBaseboard::infoV, sistrip::SpyUtilities::isValid(), LogDebug, LogTrace, match_trig_window_size, CSCConstants::MAX_ALCT_TBINS, CSCConstants::MAX_CLCT_TBINS, CSCConstants::MAX_LCT_TBINS, and secondLCT.
Referenced by CSCTriggerPrimitivesBuilder::build().
void CSCMotherboard::setConfigParameters | ( | const CSCDBL1TPParameters * | conf | ) |
Set configuration parameters obtained via EventSetup mechanism.
Definition at line 108 of file CSCMotherboard.cc.
References alct_trig_enable, alctProc, checkConfigParameters(), clct_trig_enable, clctProc, dumpConfigParams(), match_trig_enable, match_trig_window_size, mpc_block_me1a, tmb_l1a_window_size, CSCDBL1TPParameters::tmbAlctTrigEnable(), CSCDBL1TPParameters::tmbClctTrigEnable(), CSCDBL1TPParameters::tmbMatchTrigEnable(), CSCDBL1TPParameters::tmbMatchTrigWindowSize(), CSCDBL1TPParameters::tmbMpcBlockMe1a(), and CSCDBL1TPParameters::tmbTmbL1aWindowSize().
|
protected |
Definition at line 98 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCUpgradeMotherboard::correlateLCTs(), correlateLCTs(), CSCMotherboardME11::correlateLCTsME11(), CSCMotherboard(), dumpConfigParams(), CSCGEMMotherboard::getLctTrigEnable(), run(), and setConfigParameters().
std::unique_ptr<CSCAnodeLCTProcessor> CSCMotherboard::alctProc |
Anode LCT processor.
Definition at line 75 of file CSCMotherboard.h.
Referenced by CSCTriggerPrimitivesBuilder::build(), clear(), CSCMotherboard(), CSCUpgradeMotherboard::CSCUpgradeMotherboard(), CSCGEMMotherboardME21::run(), CSCGEMMotherboardME11::run(), CSCMotherboardME11::run(), run(), CSCUpgradeMotherboard::run(), CSCMotherboardME11::setConfigParameters(), and setConfigParameters().
|
protected |
Definition at line 83 of file CSCMotherboard.h.
Referenced by clear(), CSCGEMMotherboardME21::run(), CSCGEMMotherboardME11::run(), CSCMotherboardME11::run(), run(), and CSCUpgradeMotherboard::run().
|
protected |
if true: use regular CLCT-to-ALCT matching in TMB if false: do ALCT-to-CLCT matching
Definition at line 115 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCUpgradeMotherboard::CSCUpgradeMotherboard(), CSCMotherboardME11::run(), and run().
|
protected |
Definition at line 98 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCUpgradeMotherboard::correlateLCTs(), correlateLCTs(), CSCMotherboardME11::correlateLCTsME11(), CSCMotherboard(), dumpConfigParams(), CSCGEMMotherboard::getLctTrigEnable(), run(), and setConfigParameters().
std::unique_ptr<CSCCathodeLCTProcessor> CSCMotherboard::clctProc |
Cathode LCT processor.
Definition at line 78 of file CSCMotherboard.h.
Referenced by CSCTriggerPrimitivesBuilder::build(), clear(), CSCMotherboard(), CSCUpgradeMotherboard::CSCUpgradeMotherboard(), CSCGEMMotherboardME21::run(), CSCGEMMotherboardME11::run(), CSCMotherboardME11::run(), run(), CSCUpgradeMotherboard::run(), CSCMotherboardME11::setConfigParameters(), and setConfigParameters().
|
protected |
Definition at line 84 of file CSCMotherboard.h.
Referenced by clear(), CSCGEMMotherboardME21::run(), CSCMotherboardME11::run(), run(), and CSCUpgradeMotherboard::run().
|
staticprotected |
Definition at line 123 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
staticprotected |
Definition at line 123 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
staticprotected |
Definition at line 124 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
staticprotected |
Definition at line 124 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
staticprotected |
Default values of configuration parameters.
Definition at line 122 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
staticprotected |
Definition at line 125 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
protected |
Phase2: whether to not reuse ALCTs that were used by previous matching CLCTs
Definition at line 102 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCMotherboardME11::run(), and run().
|
protected |
Phase2: whether to not reuse CLCTs that were used by previous matching ALCTs
Definition at line 105 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCUpgradeMotherboard::CSCUpgradeMotherboard(), CSCGEMMotherboardME21::run(), CSCGEMMotherboardME11::run(), CSCMotherboardME11::run(), run(), and CSCUpgradeMotherboard::run().
|
protected |
Phase2: separate handle for early time bins
Definition at line 108 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCMotherboardME11::readoutLCTs(), readoutLCTs(), and CSCGEMMotherboardME11::readoutLCTsME11().
|
protected |
Container for first correlated LCT.
Definition at line 87 of file CSCMotherboard.h.
Referenced by clear(), correlateLCTs(), getLCTs(), and run().
|
protected |
Definition at line 118 of file CSCMotherboard.h.
Referenced by constructLCTs(), CSCGEMMotherboard::constructLCTsGEM(), CSCMotherboard(), and encodeHighMultiplicityBits().
|
protected |
Definition at line 98 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCUpgradeMotherboard::correlateLCTs(), correlateLCTs(), CSCGEMMotherboard::correlateLCTsGEM(), CSCMotherboardME11::correlateLCTsME11(), CSCMotherboard(), dumpConfigParams(), and setConfigParameters().
|
protected |
Definition at line 99 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboard(), dumpConfigParams(), CSCMotherboardME11::getLCTs1a(), CSCMotherboardME11::getLCTs1b(), CSCGEMMotherboardME21::run(), CSCGEMMotherboardME11::run(), CSCMotherboardME11::run(), run(), CSCUpgradeMotherboard::run(), setConfigParameters(), and CSCUpgradeMotherboard::setPrefIndex().
|
protected |
Configuration parameters.
Definition at line 97 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboard(), dumpConfigParams(), getLCTs(), CSCMotherboardME11::getLCTs1a(), and setConfigParameters().
|
protected |
Definition at line 128 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCGEMMotherboardME21::readoutLCTs(), CSCMotherboardME11::readoutLCTs(), readoutLCTs(), CSCUpgradeMotherboard::readoutLCTs(), and CSCGEMMotherboardME11::readoutLCTsME11().
|
protected |
Phase2: whether to readout only the earliest two LCTs in readout window
Definition at line 111 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCMotherboardME11::readoutLCTs(), readoutLCTs(), and CSCGEMMotherboardME11::readoutLCTsME11().
|
protected |
Container for second correlated LCT.
Definition at line 90 of file CSCMotherboard.h.
Referenced by clear(), correlateLCTs(), CSCGEMMotherboard::correlateLCTsGEM(), getLCTs(), and run().
|
protected |
Definition at line 99 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboard(), dumpConfigParams(), getBXShiftedALCT(), CSCMotherboardME11::readoutLCTs(), readoutLCTs(), CSCGEMMotherboardME11::readoutLCTsME11(), and setConfigParameters().
|
protected |
Definition at line 119 of file CSCMotherboard.h.
Referenced by constructLCTs(), CSCGEMMotherboard::constructLCTsGEM(), and CSCMotherboard().