#include <CSCUpgradeCathodeLCTProcessor.h>
Public Member Functions | |
CSCUpgradeCathodeLCTProcessor () | |
CSCUpgradeCathodeLCTProcessor (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) | |
Public Member Functions inherited from CSCCathodeLCTProcessor | |
void | clear () |
CSCCathodeLCTProcessor () | |
CSCCathodeLCTProcessor (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) | |
CSCCLCTDigi | getBestCLCT (int bx) const |
std::vector< CSCCLCTDigi > | getCLCTs (unsigned nMaxCLCTs=CSCConstants::MAX_CLCTS_PER_PROCESSOR) const |
CSCCLCTDigi | getSecondCLCT (int bx) const |
std::vector< int > | preTriggerBXs () const |
std::vector< CSCCLCTPreTriggerDigi > | preTriggerDigis () const |
std::vector< CSCCLCTPreTriggerDigi > | preTriggerDigisME1a () const |
std::vector< CSCCLCTPreTriggerDigi > | preTriggerDigisME1b () const |
std::vector< CSCCLCTDigi > | readoutCLCTs (int nMaxCLCTs=CSCConstants::MAX_CLCTS_READOUT) const |
std::vector< CSCCLCTDigi > | readoutCLCTsME1a (int nMaxCLCTs=CSCConstants::MAX_CLCTS_READOUT) const |
std::vector< CSCCLCTDigi > | readoutCLCTsME1b (int nMaxCLCTs=CSCConstants::MAX_CLCTS_READOUT) const |
std::vector< CSCCLCTDigi > | run (const CSCComparatorDigiCollection *compdc) |
void | run (const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
~CSCCathodeLCTProcessor () 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 |
Private Member Functions | |
std::vector< CSCCLCTDigi > | findLCTs (const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) override |
bool | preTrigger (const PulseArray pulse, const int start_bx, int &first_bx) override |
Private Attributes | |
unsigned int | clct_state_machine_zone |
unsigned int | pretrig_trig_zone |
bool | use_corrected_bx |
bool | use_dead_time_zoning |
Additional Inherited Members | |
Protected Types inherited from CSCCathodeLCTProcessor | |
enum | CLCT_CompCode { INVALID_HALFSTRIP = 65535 } |
enum | CLCT_INDICES { CLCT_PATTERN, CLCT_BEND, CLCT_STRIP, CLCT_BX, CLCT_STRIP_TYPE, CLCT_QUALITY, CLCT_CFEB, CLCT_NUM_QUANTITIES = 7 } |
typedef unsigned int | PulseArray[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS] |
Protected Member Functions inherited from CSCCathodeLCTProcessor | |
void | assignPositionCC (const unsigned offset, std::tuple< int16_t, bool, bool > &returnValue) const |
int | calculateComparatorCode (const std::array< std::array< int, 3 >, 6 > &halfStripPattern) const |
void | checkConfigParameters () |
void | cleanComparatorContainer (CSCCLCTDigi &lct) const |
unsigned | convertSlopeToRun2Pattern (const unsigned slope) const |
void | dumpConfigParams () const |
void | dumpDigis (const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) const |
bool | getDigis (const CSCComparatorDigiCollection *compdc) |
void | getDigis (const CSCComparatorDigiCollection *compdc, const CSCDetId &id) |
void | markBusyKeys (const int best_hstrip, const int best_patid, int quality[CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
bool | patternFinding (const PulseArray pulse, const unsigned int bx_time, std::map< int, std::map< int, CSCCLCTDigi::ComparatorContainer > > &hits_in_patterns) |
void | pulseExtension (const std::vector< int > time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], PulseArray pulse) |
void | readComparatorDigis (std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
void | runCCLUT (CSCCLCTDigi &digi) const |
void | setDefaultConfigParameters () |
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 inherited from CSCCathodeLCTProcessor | |
static const unsigned int | def_drift_delay = 2 |
static const unsigned int | def_fifo_pretrig = 7 |
static const unsigned int | def_fifo_tbins = 12 |
static const unsigned int | def_hit_persist = 6 |
static const unsigned int | def_min_separation = 10 |
static const unsigned int | def_nplanes_hit_pattern = 4 |
static const unsigned int | def_nplanes_hit_pretrig = 2 |
static const unsigned int | def_pid_thresh_pretrig = 2 |
static const unsigned int | def_tmb_l1a_window_size = 7 |
This class simulates the functionality of the cathode LCT card. It is run by the MotherBoard and returns up to two CathodeLCTs. It can be run either in a test mode, where it is passed arrays of halfstrip times, or in normal mode where it determines the time and comparator information from the comparator digis.
Updates for high pileup running by Vadim Khotilovich (TAMU), December 2012
Updates for integrated local trigger with GEMs by Sven Dildick (TAMU) and Tao Huang (TAMU), April 2015
Removing usage of outdated class CSCTriggerGeometry by Sven Dildick (TAMU)
Definition at line 24 of file CSCUpgradeCathodeLCTProcessor.h.
CSCUpgradeCathodeLCTProcessor::CSCUpgradeCathodeLCTProcessor | ( | unsigned | endcap, |
unsigned | station, | ||
unsigned | sector, | ||
unsigned | subsector, | ||
unsigned | chamber, | ||
const edm::ParameterSet & | conf | ||
) |
Normal constructor.
Definition at line 6 of file CSCUpgradeCathodeLCTProcessor.cc.
References clct_state_machine_zone, CSCBaseboard::clctParams_, edm::ParameterSet::getParameter(), pretrig_trig_zone, CSCBaseboard::runPhase2_, use_corrected_bx, and use_dead_time_zoning.
CSCUpgradeCathodeLCTProcessor::CSCUpgradeCathodeLCTProcessor | ( | ) |
Default constructor. Used for testing.
Definition at line 28 of file CSCUpgradeCathodeLCTProcessor.cc.
References CSCBaseboard::runPhase2_.
|
overrideprivatevirtual |
busyMap[hstrip][latch_bx] )
busyMap[hstrip][latch_bx] )
Reimplemented from CSCCathodeLCTProcessor.
Definition at line 137 of file CSCUpgradeCathodeLCTProcessor.cc.
References CSCCathodeLCTProcessor::best_pid, busyMap, l1GtPatternGenerator_cfi::bx, CSCCathodeLCTProcessor::CLCT_BEND, CSCCathodeLCTProcessor::CLCT_BX, CSCCathodeLCTProcessor::CLCT_CFEB, CSCCathodeLCTProcessor::CLCT_NUM_QUANTITIES, CSCCathodeLCTProcessor::CLCT_PATTERN, CSCCathodeLCTProcessor::clct_pattern_, CSCConstants::CLCT_PATTERN_WIDTH, CSCCathodeLCTProcessor::CLCT_QUALITY, CSCCathodeLCTProcessor::CLCT_STRIP, CSCCathodeLCTProcessor::CLCT_STRIP_TYPE, CSCCathodeLCTProcessor::cleanComparatorContainer(), CSCCathodeLCTProcessor::drift_delay, CSCCathodeLCTProcessor::dumpDigis(), CSCCathodeLCTProcessor::fifo_tbins, CSCCathodeLCTProcessor::findLCTs(), CSCCathodeLCTProcessor::first_bx_corrected, mps_fire::i, CSCBaseboard::infoV, CSCCathodeLCTProcessor::ispretrig, dqmiolumiharvest::j, CSCConstants::KEY_CLCT_LAYER, LogTrace, CSCCathodeLCTProcessor::markBusyKeys(), CSCConstants::MAX_CLCT_TBINS, CSCConstants::MAX_CLCTS_PER_PROCESSOR, CSCCathodeLCTProcessor::nhits, CSCCathodeLCTProcessor::nplanes_hit_pattern, CSCConstants::NUM_HALF_STRIPS_7CFEBS, CSCConstants::NUM_HALF_STRIPS_PER_CFEB, CSCConstants::NUM_LAYERS, CSCCathodeLCTProcessor::numHalfStrips_, CSCCathodeLCTProcessor::patternFinding(), pretrig_trig_zone, preTrigger(), pulse(), CSCCathodeLCTProcessor::pulseExtension(), quality, CSCCathodeLCTProcessor::runCCLUT(), CSCBaseboard::runCCLUT_, CSCBaseboard::runPhase2_, CSCCLCTDigi::setFullBX(), CSCCLCTDigi::setHits(), CSCCathodeLCTProcessor::stagger, CSCCathodeLCTProcessor::start_bx_shift, use_corrected_bx, and use_dead_time_zoning.
|
overrideprivatevirtual |
Reimplemented from CSCCathodeLCTProcessor.
Definition at line 39 of file CSCUpgradeCathodeLCTProcessor.cc.
References trklet::bend(), CSCCathodeLCTProcessor::best_pid, busyMap, CSCCathodeLCTProcessor::clct_pattern_, CSCConstants::CLCT_PATTERN_WIDTH, clct_state_machine_zone, CSCCathodeLCTProcessor::fifo_tbins, CSCBaseboard::infoV, CSCCathodeLCTProcessor::ispretrig, CSCConstants::KEY_CLCT_LAYER, LogTrace, CSCCathodeLCTProcessor::nhits, CSCCathodeLCTProcessor::nplanes_hit_pretrig, CSCConstants::NUM_HALF_STRIPS_PER_CFEB, CSCConstants::NUM_LAYERS, CSCCathodeLCTProcessor::numHalfStrips_, CSCCathodeLCTProcessor::patternFinding(), CSCCathodeLCTProcessor::pid_thresh_pretrig, CSCCathodeLCTProcessor::preTrigger(), pulse(), CSCBaseboard::runPhase2_, CSCCathodeLCTProcessor::stagger, CSCCathodeLCTProcessor::thePreTriggerDigis, and use_dead_time_zoning.
Referenced by findLCTs().
|
protected |
Definition at line 39 of file CSCUpgradeCathodeLCTProcessor.h.
Referenced by findLCTs(), and preTrigger().
|
private |
Definition at line 44 of file CSCUpgradeCathodeLCTProcessor.h.
Referenced by CSCUpgradeCathodeLCTProcessor(), and preTrigger().
|
private |
VK: allow triggers only in +-pretrig_trig_zone around pretriggers
Definition at line 47 of file CSCUpgradeCathodeLCTProcessor.h.
Referenced by CSCUpgradeCathodeLCTProcessor(), and findLCTs().
|
private |
VK: whether to use corrected_bx instead of pretrigger BX
Definition at line 50 of file CSCUpgradeCathodeLCTProcessor.h.
Referenced by CSCUpgradeCathodeLCTProcessor(), and findLCTs().
|
private |
VK: use of localized dead-time zones
Definition at line 43 of file CSCUpgradeCathodeLCTProcessor.h.
Referenced by CSCUpgradeCathodeLCTProcessor(), findLCTs(), and preTrigger().