#include <CSCMotherboard.h>
Public Member Functions | |
void | clear () |
CSCMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) | |
virtual std::vector< CSCCorrelatedLCTDigi > | readoutLCTs () const |
CSCShowerDigi | readoutShower () const |
void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) |
void | selectLCTs () |
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 Member Functions | |
void | checkConfigParameters () |
void | constructLCTs (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb, CSCCorrelatedLCTDigi &lct) const |
void | copyValidToInValid (CSCALCTDigi &, CSCALCTDigi &, CSCCLCTDigi &, CSCCLCTDigi &) const |
void | correlateLCTs (const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, CSCCorrelatedLCTDigi &bLCT, CSCCorrelatedLCTDigi &sLCT, int type) const |
void | dumpConfigParams () const |
void | encodeHighMultiplicityBits () |
unsigned int | encodePattern (const int clctPattern) 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
Extended for Run-3 and Phase-2 by Vadim Khotilovich, Tao Huang and Sven Dildick
Definition at line 47 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, allLCTs_, relativeConstraints::chamber, checkConfigParameters(), clct_trig_enable, clctProc, cscOverlap_, drop_used_clcts, dumpConfigParams(), early_tbins, CSCBaseboard::enableAlctPhase2_, makeMuonMisalignmentScenario::endcap, edm::ParameterSet::getParameter(), tmbParams::ignoreAlctCrossClct, CSCBaseboard::infoV, match_earliest_clct_only_, match_trig_enable, match_trig_window_size, mpc_block_me1a, preferred_bx_match_, qualityAssignment_, qualityControl_, readout_earliest_2, CSCBaseboard::runPhase2_, LCTContainer::setMatchTrigWindowSize(), CSCBaseboard::showerParams_, showerSource_, relativeConstraints::station, CSCBaseboard::theRing, tmb_l1a_window_size, and CSCBaseboard::tmbParams_.
|
overridedefault |
Default destructor.
|
protected |
Make sure that the parameter values are within the allowed range.
Definition at line 498 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 82 of file CSCMotherboard.cc.
References alctProc, alctV, allLCTs_, clctProc, clctV, CSCShowerDigi::clear(), LCTContainer::clear(), lctV, and shower_.
Referenced by CSCGEMMotherboard::clear(), and run().
|
protected |
Definition at line 428 of file CSCMotherboard.cc.
References l1GtPatternGenerator_cfi::bx, encodePattern(), CSCCLCTDigi::getBend(), CSCALCTDigi::getBX(), CSCCLCTDigi::getBX(), getBXShiftedALCT(), getBXShiftedCLCT(), CSCCLCTDigi::getEighthStripBit(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getQuartStripBit(), CSCCLCTDigi::getRun3Pattern(), CSCCLCTDigi::getSlope(), CSCALCTDigi::isValid(), qualityAssignment_, CSCBaseboard::runCCLUT_, CSCCorrelatedLCTDigi::setALCT(), CSCCorrelatedLCTDigi::setBend(), CSCCorrelatedLCTDigi::setBX(), CSCCorrelatedLCTDigi::setBX0(), CSCCorrelatedLCTDigi::setCLCT(), CSCCorrelatedLCTDigi::setCSCID(), CSCCorrelatedLCTDigi::setEighthStripBit(), CSCCorrelatedLCTDigi::setMPCLink(), CSCCorrelatedLCTDigi::setPattern(), CSCCorrelatedLCTDigi::setQuality(), CSCCorrelatedLCTDigi::setQuartStripBit(), CSCCorrelatedLCTDigi::setRun3(), CSCCorrelatedLCTDigi::setRun3Pattern(), CSCCorrelatedLCTDigi::setSlope(), CSCCorrelatedLCTDigi::setStrip(), CSCCorrelatedLCTDigi::setSyncErr(), CSCCorrelatedLCTDigi::setTrknmb(), CSCCorrelatedLCTDigi::setType(), CSCCorrelatedLCTDigi::setValid(), CSCCorrelatedLCTDigi::setWireGroup(), and CSCBaseboard::theTrigChamber.
Referenced by correlateLCTs().
|
protected |
Definition at line 405 of file CSCMotherboard.cc.
References CSCALCTDigi::isValid(), and CSCCLCTDigi::isValid().
Referenced by correlateLCTs(), and CSCGEMMotherboard::correlateLCTsGEM().
|
protected |
Definition at line 346 of file CSCMotherboard.cc.
References alct_trig_enable, clct_trig_enable, constructLCTs(), copyValidToInValid(), cscOverlap_, CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), match_trig_enable, and or.
Referenced by CSCGEMMotherboard::correlateLCTsGEM(), and run().
|
protected |
Dump TMB/MPC configuration parameters.
Definition at line 521 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 549 of file CSCMotherboard.cc.
References alctProc, clctProc, shower_, showerSource_, and CSCBaseboard::theTrigChamber.
Referenced by CSCGEMMotherboard::run(), and run().
|
protected |
Definition at line 459 of file CSCMotherboard.cc.
References funct::abs(), and topSingleLeptonDQM_PU_cfi::pattern.
Referenced by constructLCTs(), and CSCGEMMotherboard::constructLCTsGEM().
|
protected |
Definition at line 537 of file CSCMotherboard.cc.
References CSCConstants::ALCT_CENTRAL_BX, CSCALCTDigi::getBX(), CSCConstants::LCT_CENTRAL_BX, and CSCALCTDigi::setBX().
Referenced by constructLCTs(), and CSCGEMMotherboard::constructLCTsGEM().
|
protected |
Definition at line 543 of file CSCMotherboard.cc.
References CSCConstants::ALCT_CLCT_OFFSET, CSCCLCTDigi::getBX(), and CSCCLCTDigi::setBX().
Referenced by constructLCTs(), and CSCGEMMotherboard::constructLCTsGEM().
|
virtual |
Definition at line 247 of file CSCMotherboard.cc.
References l1GtPatternGenerator_cfi::bx, CSCBaseboard::infoV, CSCBaseboard::isME11_, CSCConstants::LCT_CENTRAL_BX, lctV, LogDebug, CSCConstants::MAX_HALF_STRIP_ME1B, CSCConstants::MAX_LCT_TBINS, mpc_block_me1a, qualityControl_, readout_earliest_2, and tmb_l1a_window_size.
Referenced by CSCTriggerPrimitivesBuilder::build().
CSCShowerDigi CSCMotherboard::readoutShower | ( | ) | const |
Returns shower bits
Definition at line 344 of file CSCMotherboard.cc.
References shower_.
Referenced by CSCTriggerPrimitivesBuilder::build().
void CSCMotherboard::run | ( | const CSCWireDigiCollection * | wiredc, |
const CSCComparatorDigiCollection * | compdc | ||
) |
Run function for normal usage. Runs cathode and anode LCT processors, takes results and correlates into CorrelatedLCT.
Definition at line 124 of file CSCMotherboard.cc.
References CSCConstants::ALCT_CLCT_OFFSET, alct_trig_enable, CSCCorrelatedLCTDigi::ALCTCLCT, CSCCorrelatedLCTDigi::ALCTONLY, alctProc, alctV, allLCTs_, clct_trig_enable, CSCCorrelatedLCTDigi::CLCTONLY, clctProc, clctV, clear(), correlateLCTs(), CSCBaseboard::cscGeometry_, drop_used_clcts, encodeHighMultiplicityBits(), CSCBaseboard::infoV, LogTrace, match_earliest_clct_only_, match_trig_window_size, CSCConstants::MAX_ALCT_TBINS, CSCConstants::MAX_CLCT_TBINS, preferred_bx_match_, and selectLCTs().
Referenced by CSCTriggerPrimitivesBuilder::build().
void CSCMotherboard::selectLCTs | ( | ) |
Definition at line 468 of file CSCMotherboard.cc.
References allLCTs_, l1GtPatternGenerator_cfi::bx, mps_fire::i, CSCBaseboard::infoV, sistrip::SpyUtilities::isValid(), lctV, LogDebug, match_trig_window_size, CSCConstants::MAX_LCT_TBINS, and CSCConstants::MAX_LCTS_PER_CSC.
Referenced by CSCGEMMotherboard::run(), and run().
void CSCMotherboard::setConfigParameters | ( | const CSCDBL1TPParameters * | conf | ) |
Set configuration parameters obtained via EventSetup mechanism.
Definition at line 101 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 123 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), correlateLCTs(), CSCMotherboard(), dumpConfigParams(), run(), and setConfigParameters().
std::unique_ptr<CSCAnodeLCTProcessor> CSCMotherboard::alctProc |
Anode LCT processor.
Definition at line 98 of file CSCMotherboard.h.
Referenced by CSCTriggerPrimitivesBuilder::build(), clear(), CSCMotherboard(), encodeHighMultiplicityBits(), CSCGEMMotherboard::matchALCT2GEM(), CSCGEMMotherboard::matchALCTCLCTGEM(), CSCGEMMotherboard::run(), run(), and setConfigParameters().
|
protected |
Definition at line 106 of file CSCMotherboard.h.
Referenced by clear(), CSCGEMMotherboard::run(), and run().
|
protected |
Container with all LCTs prior to sorting and selecting.
Definition at line 110 of file CSCMotherboard.h.
Referenced by clear(), CSCMotherboard(), CSCGEMMotherboard::matchALCT2GEM(), CSCGEMMotherboard::matchALCTCLCTGEM(), CSCGEMMotherboard::matchCLCT2GEM(), run(), and selectLCTs().
|
protected |
Definition at line 123 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), correlateLCTs(), CSCMotherboard(), dumpConfigParams(), run(), and setConfigParameters().
std::unique_ptr<CSCCathodeLCTProcessor> CSCMotherboard::clctProc |
Cathode LCT processor.
Definition at line 101 of file CSCMotherboard.h.
Referenced by CSCTriggerPrimitivesBuilder::build(), clear(), CSCMotherboard(), encodeHighMultiplicityBits(), CSCGEMMotherboard::matchALCTCLCTGEM(), CSCGEMMotherboard::matchCLCT2GEM(), CSCGEMMotherboard::run(), run(), and setConfigParameters().
|
protected |
Definition at line 107 of file CSCMotherboard.h.
Referenced by clear(), CSCGEMMotherboard::run(), and run().
|
protected |
Definition at line 166 of file CSCMotherboard.h.
Referenced by correlateLCTs(), and CSCMotherboard().
|
staticprotected |
Definition at line 150 of file CSCMotherboard.h.
Referenced by checkConfigParameters().
|
staticprotected |
Definition at line 150 of file CSCMotherboard.h.
Referenced by checkConfigParameters().
|
staticprotected |
Definition at line 151 of file CSCMotherboard.h.
Referenced by checkConfigParameters().
|
staticprotected |
Definition at line 151 of file CSCMotherboard.h.
Referenced by checkConfigParameters().
|
staticprotected |
Default values of configuration parameters.
Definition at line 149 of file CSCMotherboard.h.
Referenced by checkConfigParameters().
|
staticprotected |
Definition at line 152 of file CSCMotherboard.h.
Referenced by checkConfigParameters().
|
protected |
Phase2: whether to not reuse CLCTs that were used by previous matching ALCTs
Definition at line 127 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCGEMMotherboard::matchALCTCLCTGEM(), CSCGEMMotherboard::matchCLCT2GEM(), and run().
|
protected |
Phase2: separate handle for early time bins
Definition at line 130 of file CSCMotherboard.h.
Referenced by CSCMotherboard().
|
protected |
Definition at line 113 of file CSCMotherboard.h.
Referenced by clear(), readoutLCTs(), and selectLCTs().
|
protected |
Definition at line 136 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCGEMMotherboard::matchALCTCLCTGEM(), CSCGEMMotherboard::matchCLCT2GEM(), and run().
|
protected |
Definition at line 123 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), correlateLCTs(), CSCMotherboard(), dumpConfigParams(), and setConfigParameters().
|
protected |
Definition at line 124 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboard(), dumpConfigParams(), CSCGEMMotherboard::matchALCTCLCTGEM(), run(), selectLCTs(), and setConfigParameters().
|
protected |
Configuration parameters.
Definition at line 122 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboard(), dumpConfigParams(), readoutLCTs(), and setConfigParameters().
|
protected |
Definition at line 146 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCGEMMotherboard::matchALCT2GEM(), CSCGEMMotherboard::matchALCTCLCTGEM(), CSCGEMMotherboard::matchCLCT2GEM(), and run().
|
protected |
Definition at line 155 of file CSCMotherboard.h.
Referenced by constructLCTs(), CSCGEMMotherboard::constructLCTsGEM(), CSCGEMMotherboard::CSCGEMMotherboard(), and CSCMotherboard().
|
protected |
Definition at line 158 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), and readoutLCTs().
|
protected |
Phase2: whether to readout only the earliest two LCTs in readout window
Definition at line 133 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), and readoutLCTs().
|
protected |
Definition at line 115 of file CSCMotherboard.h.
Referenced by clear(), encodeHighMultiplicityBits(), and readoutShower().
|
protected |
Definition at line 139 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), and encodeHighMultiplicityBits().
|
protected |
Definition at line 124 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboard(), dumpConfigParams(), readoutLCTs(), and setConfigParameters().