|
| CSCUpgradeAnodeLCTProcessor () |
|
| CSCUpgradeAnodeLCTProcessor (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
void | clear () |
|
| CSCAnodeLCTProcessor () |
|
| CSCAnodeLCTProcessor (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf) |
|
std::vector< CSCALCTDigi > | getALCTs (unsigned nMaxALCTs=CSCConstants::MAX_ALCTS_READOUT) const |
|
CSCALCTDigi | getBestALCT (int bx) const |
|
unsigned | getHighMultiplictyBits () const |
|
CSCALCTDigi | getSecondALCT (int bx) const |
|
std::vector< CSCALCTPreTriggerDigi > | preTriggerDigis () const |
|
std::vector< CSCALCTDigi > | readoutALCTs (int nMaxALCTs=CSCConstants::MAX_ALCTS_READOUT) const |
|
std::vector< CSCALCTDigi > | run (const CSCWireDigiCollection *wiredc) |
|
void | run (const std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]) |
|
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
|
| ~CSCAnodeLCTProcessor () override=default |
|
| 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 |
|
|
enum | ALCT_WireInfo { INVALID_WIRE = 65535
} |
|
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_WIRES]) 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_WIRES]) |
|
void | readWireDigis (std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]) |
|
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) |
|
unsigned int | accel_mode |
|
CSCPatternBank::LCTPatterns | alct_pattern_ = {} |
|
std::vector< std::vector< CSCALCTDigi > > | ALCTContainer_ |
|
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_WIRES] |
|
int | first_bx_corrected [CSCConstants::MAX_NUM_WIRES] |
|
int | ghost_cancellation_bx_depth |
|
bool | ghost_cancellation_side_quality |
|
unsigned int | highMultiplicityBits_ |
|
unsigned int | hit_persist |
|
unsigned int | l1a_window_width |
|
std::vector< CSCALCTDigi > | lct_list |
|
int | MESelection |
|
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 |
|
unsigned int | pulse [CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES] |
|
int | quality [CSCConstants::MAX_NUM_WIRES][3] |
|
std::unique_ptr< LCTQualityControl > | qualityControl_ |
|
CSCALCTDigi | secondALCT [CSCConstants::MAX_ALCT_TBINS] |
|
std::vector< CSCALCTPreTriggerDigi > | thePreTriggerDigis |
|
unsigned int | trig_mode |
|
bool | use_corrected_bx |
|
edm::ParameterSet | alctParams_ |
|
edm::ParameterSet | clctParams_ |
|
edm::ParameterSet | commonParams_ |
|
const CSCChamber * | cscChamber_ |
|
const CSCGeometry * | cscGeometry_ |
|
CSCDetId | cscId_ |
|
bool | disableME1a_ |
|
bool | enableAlctPhase2_ |
|
bool | gangedME1a_ |
|
int | infoV |
|
bool | isME11_ |
|
bool | isME21_ |
|
bool | isME31_ |
|
bool | isME41_ |
|
bool | runCCLUT_ |
|
bool | runME11ILT_ |
|
bool | runME11Up_ |
|
bool | runME21ILT_ |
|
bool | runME21Up_ |
|
bool | runME31Up_ |
|
bool | runME41Up_ |
|
bool | runPhase2_ |
|
unsigned | theChamber |
|
std::string | theCSCName_ |
|
const unsigned | theEndcap |
|
unsigned | theRegion |
|
unsigned | theRing |
|
const unsigned | theSector |
|
const unsigned | theStation |
|
const unsigned | theSubsector |
|
const unsigned | theTrigChamber |
|
edm::ParameterSet | tmbParams_ |
|
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::ghostCancellationLogic |
( |
| ) |
|
|
overrideprivatevirtual |
Reimplemented from CSCAnodeLCTProcessor.
Definition at line 29 of file CSCUpgradeAnodeLCTProcessor.cc.
32 for (
int key_wire = 0; key_wire <
numWireGroups; key_wire++) {
33 for (
int i_pattern = 0; i_pattern < 2; i_pattern++) {
34 ghost_cleared[key_wire][i_pattern] = 0;
37 int qual_this =
quality[key_wire][i_pattern];
40 qual_this = (qual_this & 0x03);
43 int qual_prev = (key_wire > 0) ?
quality[key_wire - 1][i_pattern] : 0;
51 qual_prev = (qual_prev & 0x03);
60 if (qual_prev > qual_this)
61 ghost_cleared[key_wire][i_pattern] = 1;
64 ghost_cleared[key_wire][i_pattern] = 1;
70 if (ghost_cleared[key_wire][i_pattern] == 1) {
72 LogTrace(
"CSCUpgradeAnodeLCTProcessor")
73 << ((i_pattern == 0) ?
"Accelerator" :
"Collision") <<
" pattern ghost cancelled on key_wire "
74 << key_wire <<
" q=" << qual_this <<
" by wire " << key_wire - 1 <<
" q=" << qual_prev
88 qual_next = (qual_next & 0x03);
91 if (qual_next >= qual_this)
92 ghost_cleared[key_wire][i_pattern] = 1;
95 ghost_cleared[key_wire][i_pattern] = 1;
98 if (ghost_cleared[key_wire][i_pattern] == 1) {
100 LogTrace(
"CSCUpgradeAnodeLCTProcessor")
101 << ((i_pattern == 0) ?
"Accelerator" :
"Collision") <<
" pattern ghost cancelled on key_wire "
102 << key_wire <<
" q=" << qual_this <<
" by wire " << key_wire + 1 <<
" q=" << qual_next
112 for (
int key_wire = 0; key_wire <
numWireGroups; key_wire++) {
113 for (
int i_pattern = 0; i_pattern < 2; i_pattern++) {
114 if (ghost_cleared[key_wire][i_pattern] > 0) {
115 clear(key_wire, i_pattern);
References CSCAnodeLCTProcessor::clear(), dt, CSCAnodeLCTProcessor::first_bx, CSCAnodeLCTProcessor::first_bx_corrected, CSCAnodeLCTProcessor::ghost_cancellation_bx_depth, CSCAnodeLCTProcessor::ghost_cancellation_side_quality, CSCBaseboard::infoV, CSCBaseboard::isME21_, LogTrace, CSCConstants::MAX_NUM_WIRES, CSCAnodeLCTProcessor::numWireGroups, CSCAnodeLCTProcessor::quality, CSCBaseboard::runME21ILT_, CSCBaseboard::runPhase2_, and CSCAnodeLCTProcessor::use_corrected_bx.
void CSCUpgradeAnodeLCTProcessor::ghostCancellationLogicOneWire |
( |
const int |
key_wire, |
|
|
int * |
ghost_cleared |
|
) |
| |
|
overrideprivatevirtual |
Reimplemented from CSCAnodeLCTProcessor.
Definition at line 121 of file CSCUpgradeAnodeLCTProcessor.cc.
122 for (
int i_pattern = 0; i_pattern < 2; i_pattern++) {
123 ghost_cleared[i_pattern] = 0;
128 int qual_this =
quality[key_wire][i_pattern];
131 qual_this = (qual_this & 0x03);
135 if (not(
p.isValid() and
p.getKeyWG() == key_wire - 1 and 1 -
p.getAccelerator() == i_pattern))
138 bool ghost_cleared_prev =
false;
139 int qual_prev =
p.getQuality();
140 int first_bx_prev =
p.getBX();
143 <<
"ghost concellation logic " << ((i_pattern == 0) ?
"Accelerator" :
"Collision") <<
" key_wire "
144 << key_wire <<
" quality " << qual_this <<
" bx " <<
first_bx[key_wire] <<
" previous key_wire "
145 << key_wire - 1 <<
" quality " << qual_prev <<
" bx " <<
first_bx[key_wire - 1];
154 qual_prev = (qual_prev & 0x03);
163 if (qual_prev > qual_this)
164 ghost_cleared[i_pattern] = 1;
167 ghost_cleared[i_pattern] = 1;
170 ghost_cleared_prev =
true;
173 if (ghost_cleared[i_pattern] == 1) {
175 LogTrace(
"CSCUpgradeAnodeLCTProcessor")
176 << ((i_pattern == 0) ?
"Accelerator" :
"Collision") <<
" pattern ghost cancelled on key_wire "
177 << key_wire <<
" q=" << qual_this <<
" by wire " << key_wire - 1 <<
" q=" << qual_prev
181 if (ghost_cleared_prev) {
184 << ((i_pattern == 0) ?
"Accelerator" :
"Collision") <<
" pattern ghost cancelled on key_wire "
185 << key_wire - 1 <<
" q=" << qual_prev <<
" by wire " << key_wire <<
" q=" << qual_this;
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.