|
| CSCUpgradeAnodeLCTProcessor (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, CSCBaseboard::Parameters &conf) |
|
| ~CSCUpgradeAnodeLCTProcessor () override |
|
void | clear () |
|
| CSCAnodeLCTProcessor (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, CSCBaseboard::Parameters &conf) |
|
std::vector< CSCALCTDigi > | getALCTs () const |
|
std::vector< CSCShowerDigi > | getAllShower () const |
|
CSCALCTDigi | getBestALCT (int bx) const |
|
CSCALCTDigi | getSecondALCT (int bx) const |
|
std::vector< CSCALCTPreTriggerDigi > | preTriggerDigis () const |
|
std::vector< CSCALCTDigi > | readoutALCTs () const |
|
std::vector< CSCShowerDigi > | readoutShower () const |
|
std::vector< CSCALCTDigi > | run (const CSCWireDigiCollection *wiredc, CSCChamber const *chamber) |
|
void | run (const std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIREGROUPS]) |
|
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
|
| ~CSCAnodeLCTProcessor () override=default |
|
| CSCBaseboard (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, Parameters &conf) |
|
| CSCBaseboard () |
|
std::string | getCSCName () const |
|
CSCDetId | id () const |
|
virtual | ~CSCBaseboard ()=default |
|
|
void | accelMode (const int key_wire) |
|
std::vector< CSCALCTDigi > | bestTrackSelector (const std::vector< CSCALCTDigi > &all_alcts) |
|
void | checkConfigParameters () |
|
void | cleanWireContainer (CSCALCTDigi::WireContainer &wireHits) const |
|
void | clear (const int wire, const int pattern) |
|
void | dumpConfigParams () const |
|
void | dumpDigis (const std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIREGROUPS]) const |
|
void | encodeHighMultiplicityBits () |
|
bool | getDigis (const CSCWireDigiCollection *wiredc) |
|
void | getDigis (const CSCWireDigiCollection *wiredc, const CSCDetId &id) |
|
bool | isBetterALCT (const CSCALCTDigi &lhsALCT, const CSCALCTDigi &rhsALCT) const |
|
void | lctSearch () |
|
void | loadPatternMask () |
|
bool | patternDetection (const int key_wire, std::map< int, std::map< int, CSCALCTDigi::WireContainer > > &hits_in_patterns) |
|
bool | preTrigger (const int key_wire, const int start_bx) |
|
bool | pulseExtension (const std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIREGROUPS]) |
|
void | readWireDigis (std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIREGROUPS]) |
|
void | setDefaultConfigParameters () |
|
void | setWireContainer (CSCALCTDigi &, CSCALCTDigi::WireContainer &wireHits) const |
|
void | showPatterns (const int key_wire) |
|
void | trigMode (const int key_wire) |
|
void | checkConfigParameters (unsigned int &var, const unsigned int var_max, const unsigned int var_def, const std::string &var_str) |
|
const CSCChamber * | cscChamber (CSCGeometry const &) const |
|
unsigned int | accel_mode |
|
CSCPatternBank::LCTPatterns | alct_pattern_ = {} |
|
CSCShowerDigi | anode_showers_ [CSCConstants::MAX_ALCT_TBINS] |
|
CSCALCTDigi | bestALCT [CSCConstants::MAX_ALCT_TBINS] |
|
std::vector< CSCWireDigi > | digiV [CSCConstants::NUM_LAYERS] |
|
unsigned int | drift_delay |
|
int | early_tbins |
|
unsigned int | fifo_pretrig |
|
unsigned int | fifo_tbins |
|
int | first_bx [CSCConstants::MAX_NUM_WIREGROUPS] |
|
int | first_bx_corrected [CSCConstants::MAX_NUM_WIREGROUPS] |
|
int | ghost_cancellation_bx_depth |
|
bool | ghost_cancellation_side_quality |
|
unsigned int | hit_persist |
|
unsigned int | l1a_window_width |
|
std::vector< CSCALCTDigi > | lct_list |
|
unsigned | maxbx_readout_ |
|
int | MESelection |
|
unsigned | minbx_readout_ |
|
unsigned | minLayersCentralTBin_ |
|
bool | narrow_mask_r1 |
|
unsigned int | nplanes_hit_accel_pattern |
|
unsigned int | nplanes_hit_accel_pretrig |
|
unsigned int | nplanes_hit_pattern |
|
unsigned int | nplanes_hit_pretrig |
|
int | numWireGroups |
|
unsigned int | pretrig_extra_deadtime |
|
PulseArray | pulse_ |
|
int | quality [CSCConstants::MAX_NUM_WIREGROUPS][CSCConstants::NUM_ALCT_PATTERNS] |
|
std::unique_ptr< LCTQualityControl > | qualityControl_ |
|
CSCALCTDigi | secondALCT [CSCConstants::MAX_ALCT_TBINS] |
|
unsigned | showerNumTBins_ |
|
std::vector< CSCALCTPreTriggerDigi > | thePreTriggerDigis |
|
std::vector< unsigned > | thresholds_ |
|
unsigned int | trig_mode |
|
bool | use_corrected_bx |
|
CSCDetId | cscId_ |
|
bool | disableME1a_ |
|
bool | enableAlctPhase2_ |
|
bool | gangedME1a_ |
|
int | infoV |
|
bool | isME11_ |
|
bool | isME12_ |
|
bool | isME13_ |
|
bool | isME21_ |
|
bool | isME22_ |
|
bool | isME31_ |
|
bool | isME32_ |
|
bool | isME41_ |
|
bool | isME42_ |
|
bool | run3_ |
|
bool | runCCLUT_ |
|
bool | runCCLUT_OTMB_ |
|
bool | runCCLUT_TMB_ |
|
bool | runME11ILT_ |
|
bool | runME11Up_ |
|
bool | runME21ILT_ |
|
bool | runME21Up_ |
|
bool | runME31Up_ |
|
bool | runME41Up_ |
|
bool | runPhase2_ |
|
unsigned | theChamber |
|
std::string | theCSCName_ |
|
const unsigned | theEndcap |
|
int | theRegion |
|
unsigned | theRing |
|
const unsigned | theSector |
|
const unsigned | theStation |
|
const unsigned | theSubsector |
|
const unsigned | theTrigChamber |
|
static const unsigned int | def_accel_mode = 0 |
|
static const unsigned int | def_drift_delay = 2 |
|
static const unsigned int | def_fifo_pretrig = 10 |
|
static const unsigned int | def_fifo_tbins = 16 |
|
static const unsigned int | def_l1a_window_width = 7 |
|
static const unsigned int | def_nplanes_hit_accel_pattern = 4 |
|
static const unsigned int | def_nplanes_hit_accel_pretrig = 2 |
|
static const unsigned int | def_nplanes_hit_pattern = 4 |
|
static const unsigned int | def_nplanes_hit_pretrig = 2 |
|
static const unsigned int | def_trig_mode = 2 |
|
This class simulates the functionality of the anode LCT card. It is run by the MotherBoard and returns up to two AnodeLCTs. It can be run either in a test mode, where it is passed an array of wire times, or in normal mode where it determines the wire times from the wire digis.
Updates for high pileup running by Vadim Khotilovich (TAMU), December 2012
Definition at line 16 of file CSCUpgradeAnodeLCTProcessor.h.
void CSCUpgradeAnodeLCTProcessor::ghostCancellationLogicOneWire |
( |
const int |
key_wire, |
|
|
int * |
ghost_cleared |
|
) |
| |
|
overrideprivatevirtual |
Reimplemented from CSCAnodeLCTProcessor.
Definition at line 19 of file CSCUpgradeAnodeLCTProcessor.cc.
References dt, CSCAnodeLCTProcessor::first_bx, CSCAnodeLCTProcessor::first_bx_corrected, CSCAnodeLCTProcessor::ghost_cancellation_bx_depth, CSCAnodeLCTProcessor::ghost_cancellation_side_quality, CSCBaseboard::infoV, CSCBaseboard::isME21_, CSCAnodeLCTProcessor::lct_list, LogTrace, AlCaHLTBitMon_ParallelJobs::p, CSCAnodeLCTProcessor::quality, CSCBaseboard::runME21ILT_, CSCBaseboard::runPhase2_, and CSCAnodeLCTProcessor::use_corrected_bx.
20 for (
int i_pattern = 0; i_pattern < 2; i_pattern++) {
21 ghost_cleared[i_pattern] = 0;
26 int qual_this =
quality[key_wire][i_pattern];
29 qual_this = (qual_this & 0x03);
33 if (not(
p.isValid() and
p.getKeyWG() == key_wire - 1 and 1 -
p.getAccelerator() == i_pattern))
36 bool ghost_cleared_prev =
false;
37 int qual_prev =
p.getQuality();
38 int first_bx_prev =
p.getBX();
41 <<
"ghost concellation logic " << ((i_pattern == 0) ?
"Accelerator" :
"Collision") <<
" key_wire " 42 << key_wire <<
" quality " << qual_this <<
" bx " <<
first_bx[key_wire] <<
" previous key_wire " 43 << key_wire - 1 <<
" quality " << qual_prev <<
" bx " <<
first_bx[key_wire - 1];
52 qual_prev = (qual_prev & 0x03);
61 if (qual_prev > qual_this)
62 ghost_cleared[i_pattern] = 1;
65 ghost_cleared[i_pattern] = 1;
68 ghost_cleared_prev =
true;
71 if (ghost_cleared[i_pattern] == 1) {
73 LogTrace(
"CSCUpgradeAnodeLCTProcessor")
74 << ((i_pattern == 0) ?
"Accelerator" :
"Collision") <<
" pattern ghost cancelled on key_wire " 75 << key_wire <<
" q=" << qual_this <<
" by wire " << key_wire - 1 <<
" q=" << qual_prev
79 if (ghost_cleared_prev) {
82 << ((i_pattern == 0) ?
"Accelerator" :
"Collision") <<
" pattern ghost cancelled on key_wire " 83 << key_wire - 1 <<
" q=" << qual_prev <<
" by wire " << key_wire <<
" q=" << qual_this;
int ghost_cancellation_bx_depth
int first_bx_corrected[CSCConstants::MAX_NUM_WIREGROUPS]
std::vector< CSCALCTDigi > lct_list
bool ghost_cancellation_side_quality
int first_bx[CSCConstants::MAX_NUM_WIREGROUPS]
int quality[CSCConstants::MAX_NUM_WIREGROUPS][CSCConstants::NUM_ALCT_PATTERNS]