#include <CSCMotherboard.h>
Public Member Functions | |
void | clear () |
CSCMotherboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) | |
CSCMotherboard () | |
std::vector< CSCCorrelatedLCTDigi > | getLCTs () |
std::vector< CSCCorrelatedLCTDigi > | readoutLCTs () |
void | run (const std::vector< int > w_time[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES], const std::vector< int > hs_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const std::vector< int > ds_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
void | run (const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) |
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
~CSCMotherboard () | |
Public Attributes | |
CSCAnodeLCTProcessor * | alct |
CSCCathodeLCTProcessor * | clct |
Protected Types | |
enum | { MAX_LCT_BINS = 16 } |
Protected Member Functions | |
void | checkConfigParameters () |
CSCCorrelatedLCTDigi | constructLCTs (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) |
void | correlateLCTs (CSCALCTDigi bestALCT, CSCALCTDigi secondALCT, CSCCLCTDigi bestCLCT, CSCCLCTDigi secondCLCT) |
void | dumpConfigParams () const |
unsigned int | encodePattern (const int ptn, const int highPt) |
unsigned int | findQuality (const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) |
void | testLCT () |
Protected Attributes | |
unsigned int | alct_trig_enable |
unsigned int | clct_trig_enable |
bool | drop_used_alcts |
int | early_tbins |
CSCCorrelatedLCTDigi | firstLCT [MAX_LCT_BINS] |
int | infoV |
bool | isMTCC |
bool | isSLHC |
bool | isTMB07 |
unsigned int | match_trig_enable |
unsigned int | match_trig_window_size |
unsigned int | mpc_block_me1a |
bool | readout_earliest_2 |
CSCCorrelatedLCTDigi | secondLCT [MAX_LCT_BINS] |
const unsigned | theEndcap |
const unsigned | theSector |
const unsigned | theStation |
const unsigned | theSubsector |
const unsigned | theTrigChamber |
unsigned int | tmb_l1a_window_size |
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 and distrip 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.
|
protected |
Maximum number of time bins.
Enumerator | |
---|---|
MAX_LCT_BINS |
Definition at line 127 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 49 of file CSCMotherboard.cc.
References alct, alct_trig_enable, checkConfigParameters(), clct, clct_trig_enable, drop_used_alcts, dumpConfigParams(), early_tbins, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), infoV, isMTCC, isSLHC, isTMB07, match_trig_enable, match_trig_window_size, mpc_block_me1a, readout_earliest_2, CSCTriggerNumbering::ringFromTriggerLabels(), theStation, theTrigChamber, and tmb_l1a_window_size.
CSCMotherboard::CSCMotherboard | ( | ) |
Constructor for use during testing.
Definition at line 138 of file CSCMotherboard.cc.
References alct, alct_trig_enable, checkConfigParameters(), clct, 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, dumpConfigParams(), early_tbins, infoV, isMTCC, isTMB07, match_trig_enable, match_trig_window_size, mpc_block_me1a, and tmb_l1a_window_size.
CSCMotherboard::~CSCMotherboard | ( | ) |
|
protected |
Make sure that the parameter values are within the allowed range.
Definition at line 206 of file CSCMotherboard.cc.
References alct_trig_enable, 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, infoV, 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 173 of file CSCMotherboard.cc.
References alct, clct, CSCCorrelatedLCTDigi::clear(), CSCAnodeLCTProcessor::clear(), CSCCathodeLCTProcessor::clear(), firstLCT, MAX_LCT_BINS, and secondLCT.
Referenced by CSCMotherboardME11::clear(), and run().
|
protected |
Definition at line 571 of file CSCMotherboard.cc.
References encodePattern(), findQuality(), CSCCLCTDigi::getBend(), CSCALCTDigi::getBX(), CSCCLCTDigi::getBX(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getStripType(), CSCALCTDigi::isValid(), chain::pattern, and theTrigChamber.
Referenced by CSCMotherboardME11::correlateLCTs(), and correlateLCTs().
|
protected |
Definition at line 516 of file CSCMotherboard.cc.
References alct_trig_enable, clct_trig_enable, constructLCTs(), firstLCT, CSCCorrelatedLCTDigi::getBX(), infoV, CSCCLCTDigi::isValid(), CSCALCTDigi::isValid(), match_trig_enable, MAX_LCT_BINS, secondLCT, and CSCCorrelatedLCTDigi::setTrknmb().
Referenced by run().
|
protected |
Dump TMB/MPC configuration parameters.
Definition at line 791 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 592 of file CSCMotherboard.cc.
References funct::abs(), isTMB07, and chain::pattern.
Referenced by constructLCTs(), and testLCT().
|
protected |
Definition at line 618 of file CSCMotherboard.cc.
References CSCALCTDigi::getAccelerator(), CSCCLCTDigi::getPattern(), CSCALCTDigi::getQuality(), CSCCLCTDigi::getQuality(), CSCCLCTDigi::getStripType(), infoV, isTMB07, CSCCLCTDigi::isValid(), CSCALCTDigi::isValid(), evf::evtn::offset(), and chain::pattern.
Referenced by constructLCTs(), and testLCT().
std::vector< CSCCorrelatedLCTDigi > CSCMotherboard::getLCTs | ( | ) |
Returns vector of all found correlated LCTs, if any.
Definition at line 497 of file CSCMotherboard.cc.
References firstLCT, MAX_LCT_BINS, mpc_block_me1a, CSCTriggerNumbering::ringFromTriggerLabels(), secondLCT, theStation, and theTrigChamber.
Referenced by readoutLCTs().
std::vector< CSCCorrelatedLCTDigi > CSCMotherboard::readoutLCTs | ( | ) |
Returns vector of correlated LCTs in the read-out time window, if any.
Definition at line 421 of file CSCMotherboard.cc.
References early_tbins, getLCTs(), infoV, LogDebug, MAX_LCT_BINS, readout_earliest_2, and tmb_l1a_window_size.
Referenced by CSCTriggerPrimitivesBuilder::build(), CSCMotherboardME11::readoutLCTs1a(), and CSCMotherboardME11::readoutLCTs1b().
void CSCMotherboard::run | ( | const std::vector< int > | w_time[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES], |
const std::vector< int > | hs_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], | ||
const std::vector< int > | ds_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS] | ||
) |
Test version of run function.
Definition at line 268 of file CSCMotherboard.cc.
References alct, CSCAnodeLCTProcessor::bestALCT, CSCCathodeLCTProcessor::bestCLCT, clct, clear(), correlateLCTs(), isSLHC, CSCCLCTDigi::isValid(), CSCALCTDigi::isValid(), match_trig_window_size, CSCAnodeLCTProcessor::MAX_ALCT_BINS, CSCCathodeLCTProcessor::MAX_CLCT_BINS, CSCAnodeLCTProcessor::run(), CSCCathodeLCTProcessor::run(), CSCAnodeLCTProcessor::secondALCT, and CSCCathodeLCTProcessor::secondCLCT.
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 319 of file CSCMotherboard.cc.
References a, alct, CSCAnodeLCTProcessor::bestALCT, CSCCathodeLCTProcessor::bestCLCT, clct, clear(), correlateLCTs(), drop_used_alcts, firstLCT, infoV, isSLHC, CSCCLCTDigi::isValid(), CSCALCTDigi::isValid(), LogDebug, LogTrace, match_trig_window_size, CSCAnodeLCTProcessor::MAX_ALCT_BINS, CSCCathodeLCTProcessor::MAX_CLCT_BINS, MAX_LCT_BINS, CSCAnodeLCTProcessor::run(), CSCCathodeLCTProcessor::run(), CSCAnodeLCTProcessor::secondALCT, CSCCathodeLCTProcessor::secondCLCT, and secondLCT.
void CSCMotherboard::setConfigParameters | ( | const CSCDBL1TPParameters * | conf | ) |
Set configuration parameters obtained via EventSetup mechanism.
Definition at line 183 of file CSCMotherboard.cc.
References alct, alct_trig_enable, checkConfigParameters(), clct, clct_trig_enable, dumpConfigParams(), match_trig_enable, match_trig_window_size, mpc_block_me1a, CSCAnodeLCTProcessor::setConfigParameters(), CSCCathodeLCTProcessor::setConfigParameters(), tmb_l1a_window_size, CSCDBL1TPParameters::tmbAlctTrigEnable(), CSCDBL1TPParameters::tmbClctTrigEnable(), CSCDBL1TPParameters::tmbMatchTrigEnable(), CSCDBL1TPParameters::tmbMatchTrigWindowSize(), CSCDBL1TPParameters::tmbMpcBlockMe1a(), and CSCDBL1TPParameters::tmbTmbL1aWindowSize().
Referenced by CSCTriggerPrimitivesBuilder::setConfigParameters().
|
protected |
Definition at line 733 of file CSCMotherboard.cc.
References encodePattern(), findQuality(), CSCCLCTDigi::getBend(), CSCALCTDigi::getBX(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getStripType(), LogTrace, and chain::pattern.
CSCAnodeLCTProcessor* CSCMotherboard::alct |
Anode LCT processor.
Definition at line 78 of file CSCMotherboard.h.
Referenced by CSCTriggerPrimitivesBuilder::build(), clear(), CSCMotherboard(), CSCMotherboardME11::run(), run(), CSCMotherboardME11::setConfigParameters(), setConfigParameters(), and ~CSCMotherboard().
|
protected |
Definition at line 108 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboardME11::correlateLCTs(), correlateLCTs(), CSCMotherboard(), dumpConfigParams(), and setConfigParameters().
CSCCathodeLCTProcessor* CSCMotherboard::clct |
Cathode LCT processor.
Definition at line 81 of file CSCMotherboard.h.
Referenced by CSCTriggerPrimitivesBuilder::build(), clear(), CSCMotherboard(), CSCMotherboardME11::run(), run(), CSCMotherboardME11::setConfigParameters(), setConfigParameters(), and ~CSCMotherboard().
|
protected |
Definition at line 108 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboardME11::correlateLCTs(), correlateLCTs(), CSCMotherboard(), dumpConfigParams(), and setConfigParameters().
|
staticprotected |
Definition at line 122 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
staticprotected |
Definition at line 122 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 123 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
staticprotected |
Default values of configuration parameters.
Definition at line 121 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
staticprotected |
Definition at line 124 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), and CSCMotherboard().
|
protected |
SLHC: whether to not reuse ALCTs that were used by previous matching CLCTs
Definition at line 112 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCMotherboardME11::run(), and run().
|
protected |
SLHC: separate handle for early time bins
Definition at line 115 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCMotherboardME11::readoutLCTs(), and readoutLCTs().
|
protected |
Container for first correlated LCT.
Definition at line 130 of file CSCMotherboard.h.
Referenced by clear(), correlateLCTs(), getLCTs(), and run().
|
protected |
Verbosity level: 0: no print (default). 1: print LCTs found.
Definition at line 88 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), correlateLCTs(), CSCMotherboard(), findQuality(), readoutLCTs(), CSCMotherboardME11::run(), and run().
|
protected |
|
protected |
Flag for SLHC studies.
Definition at line 104 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCMotherboardME11::CSCMotherboardME11(), and run().
|
protected |
Flag for new (2007) version of TMB firmware.
Definition at line 101 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), encodePattern(), and findQuality().
|
protected |
Definition at line 108 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboardME11::correlateLCTs(), correlateLCTs(), CSCMotherboard(), dumpConfigParams(), and setConfigParameters().
|
protected |
Definition at line 109 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboardME11::clear(), CSCMotherboard(), CSCMotherboardME11::CSCMotherboardME11(), dumpConfigParams(), CSCMotherboardME11::getLCTs1a(), CSCMotherboardME11::getLCTs1b(), CSCMotherboardME11::run(), run(), and setConfigParameters().
|
protected |
Configuration parameters.
Definition at line 107 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboard(), dumpConfigParams(), getLCTs(), CSCMotherboardME11::getLCTs1a(), and setConfigParameters().
|
protected |
SLHC: whether to readout only the earliest two LCTs in readout window
Definition at line 118 of file CSCMotherboard.h.
Referenced by CSCMotherboard(), CSCMotherboardME11::readoutLCTs(), and readoutLCTs().
|
protected |
Container for second correlated LCT.
Definition at line 133 of file CSCMotherboard.h.
Referenced by clear(), correlateLCTs(), getLCTs(), and run().
|
protected |
Chamber id (trigger-type labels).
Definition at line 91 of file CSCMotherboard.h.
Referenced by CSCMotherboardME11::correlateLCTs(), and CSCMotherboardME11::doesALCTCrossCLCT().
|
protected |
Definition at line 93 of file CSCMotherboard.h.
Referenced by CSCMotherboardME11::correlateLCTs().
|
protected |
Definition at line 92 of file CSCMotherboard.h.
Referenced by CSCMotherboardME11::correlateLCTs(), CSCMotherboard(), and getLCTs().
|
protected |
Definition at line 94 of file CSCMotherboard.h.
Referenced by CSCMotherboardME11::correlateLCTs().
|
protected |
Definition at line 95 of file CSCMotherboard.h.
Referenced by constructLCTs(), CSCMotherboardME11::correlateLCTs(), CSCMotherboard(), and getLCTs().
|
protected |
Definition at line 109 of file CSCMotherboard.h.
Referenced by checkConfigParameters(), CSCMotherboard(), dumpConfigParams(), CSCMotherboardME11::readoutLCTs(), readoutLCTs(), and setConfigParameters().