#include <CSCCathodeLCTProcessor.h>
Public Types | |
enum | { MAX_CLCT_BINS = 16 } |
enum | { NUM_PATTERN_STRIPS = 26 } |
enum | { NUM_PATTERN_HALFSTRIPS = 42 } |
enum | { MAX_CFEBS = 5 } |
enum | CLCT_INDICES { CLCT_PATTERN, CLCT_BEND, CLCT_STRIP, CLCT_BX, CLCT_STRIP_TYPE, CLCT_QUALITY, CLCT_CFEB } |
Public Member Functions | |
void | clear () |
CSCCathodeLCTProcessor (unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf, const edm::ParameterSet &comm, const edm::ParameterSet &ctmb) | |
CSCCathodeLCTProcessor () | |
std::vector< CSCCLCTDigi > | getCLCTs () |
bool | getDigis (const CSCComparatorDigiCollection *compdc) |
void | getDigis (const CSCComparatorDigiCollection *compdc, const CSCDetId &id) |
std::vector< int > | preTriggerBXs () const |
std::vector< CSCCLCTDigi > | readoutCLCTs () |
std::vector< CSCCLCTDigi > | run (const CSCComparatorDigiCollection *compdc) |
void | run (const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const std::vector< int > distrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
void | setConfigParameters (const CSCDBL1TPParameters *conf) |
void | setRing (unsigned r) |
Static Public Member Functions | |
static void | distripStagger (int stag_triad[CSCConstants::MAX_NUM_STRIPS_7CFEBS], int stag_time[CSCConstants::MAX_NUM_STRIPS_7CFEBS], int stag_digi[CSCConstants::MAX_NUM_STRIPS_7CFEBS], int i_distrip, bool debug=false) |
Public Attributes | |
CSCCLCTDigi | bestCLCT [MAX_CLCT_BINS] |
CSCCLCTDigi | secondCLCT [MAX_CLCT_BINS] |
Static Public Attributes | |
static const int | pattern [CSCConstants::NUM_CLCT_PATTERNS_PRE_TMB07][NUM_PATTERN_STRIPS+1] |
static const int | pattern2007 [CSCConstants::NUM_CLCT_PATTERNS][NUM_PATTERN_HALFSTRIPS+2] |
static const int | pattern2007_offset [NUM_PATTERN_HALFSTRIPS] |
static const int | pre_hit_pattern [2][NUM_PATTERN_STRIPS] |
Private Member Functions | |
void | checkConfigParameters () |
void | dumpConfigParams () const |
void | dumpDigis (const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const int stripType, const int nStrips) const |
std::vector< CSCCLCTDigi > | findLCTs (const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], int stripType) |
std::vector< CSCCLCTDigi > | findLCTs (const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const std::vector< int > distrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
std::vector< CSCCLCTDigi > | findLCTs (const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
std::vector< CSCCLCTDigi > | findLCTsSLHC (const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
int | findNumLayersHit (std::vector< int > stripsHit[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
void | getKeyStripData (const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], int keystrip_data[CSCConstants::NUM_HALF_STRIPS_7CFEBS][7], int nStrips, int first_bx, int &best_strip, int stripType) |
void | getKeyStripData (const unsigned int h_pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const unsigned int d_pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], int keystrip_data[2][7], const int first_bx) |
void | getPattern (int pattern_num, int strip_value[NUM_PATTERN_STRIPS], int bx_time, int &quality, int &bend) |
void | getPattern (unsigned int pattern_num, const int strip_value[NUM_PATTERN_STRIPS], unsigned int &quality, unsigned int &bend) |
bool | hitIsGood (int hitTime, int BX) |
void | latchLCTs (const unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], int keyStrip[MAX_CFEBS], unsigned int nhits[MAX_CFEBS], const int stripType, const int nStrips, const int bx_time) |
void | markBusyKeys (const int best_hstrip, const int best_patid, int quality[CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
bool | preTrigger (const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const int stripType, const int nStrips, int &first_bx) |
bool | preTrigger (const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const int stripType, const int nStrips, const int start_bx, int &first_bx) |
bool | preTrigger (const unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const int start_bx, int &first_bx) |
bool | preTrigLookUp (const unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const int stripType, const int nStrips, const unsigned int bx_time) |
void | printPatterns () |
void | priorityEncode (const int h_keyStrip[MAX_CFEBS], const unsigned int h_nhits[MAX_CFEBS], const int d_keyStrip[MAX_CFEBS], const unsigned int d_nhits[MAX_CFEBS], int keystrip_data[2][7]) |
bool | ptnFinding (const unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const int nStrips, const unsigned int bx_time) |
void | pulseExtension (const std::vector< int > time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const int nStrips, unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
void | readComparatorDigis (std::vector< int >halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], std::vector< int > distrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
void | readComparatorDigis (std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) |
void | setDefaultConfigParameters () |
void | testDistripStagger () |
void | testLCTs () |
void | testPatterns () |
Static Private Attributes | |
static const int | cfeb_strips [2] = { 8, 32} |
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 and distrip times, or in normal mode where it determines the time and comparator information from the comparator digis.
The CathodeLCTs come in distrip and halfstrip flavors; they are sorted (from best to worst) as follows: 6/6H, 5/6H, 6/6D, 4/6H, 5/6D, 4/6D.
Definition at line 37 of file CSCCathodeLCTProcessor.h.
anonymous enum |
Maximum number of time bins.
Enumerator | |
---|---|
MAX_CLCT_BINS |
Definition at line 70 of file CSCCathodeLCTProcessor.h.
anonymous enum |
Pre-defined patterns.
Enumerator | |
---|---|
NUM_PATTERN_STRIPS |
Definition at line 97 of file CSCCathodeLCTProcessor.h.
anonymous enum |
Enumerator | |
---|---|
NUM_PATTERN_HALFSTRIPS |
Definition at line 101 of file CSCCathodeLCTProcessor.h.
anonymous enum |
Maximum number of cathode front-end boards (move to CSCConstants?).
Enumerator | |
---|---|
MAX_CFEBS |
Definition at line 106 of file CSCCathodeLCTProcessor.h.
Enumerator | |
---|---|
CLCT_PATTERN | |
CLCT_BEND | |
CLCT_STRIP | |
CLCT_BX | |
CLCT_STRIP_TYPE | |
CLCT_QUALITY | |
CLCT_CFEB |
Definition at line 110 of file CSCCathodeLCTProcessor.h.
CSCCathodeLCTProcessor::CSCCathodeLCTProcessor | ( | unsigned | endcap, |
unsigned | station, | ||
unsigned | sector, | ||
unsigned | subsector, | ||
unsigned | chamber, | ||
const edm::ParameterSet & | conf, | ||
const edm::ParameterSet & | comm, | ||
const edm::ParameterSet & | ctmb | ||
) |
Normal constructor.
Definition at line 236 of file CSCCathodeLCTProcessor.cc.
CSCCathodeLCTProcessor::CSCCathodeLCTProcessor | ( | ) |
Default constructor. Used for testing.
Definition at line 354 of file CSCCathodeLCTProcessor.cc.
|
private |
Make sure that the parameter values are within the allowed range.
Definition at line 442 of file CSCCathodeLCTProcessor.cc.
void CSCCathodeLCTProcessor::clear | ( | void | ) |
Clears the LCT containers.
Definition at line 535 of file CSCCathodeLCTProcessor.cc.
|
static |
Definition at line 1077 of file CSCCathodeLCTProcessor.cc.
|
private |
Dump CLCT configuration parameters.
Definition at line 2766 of file CSCCathodeLCTProcessor.cc.
|
private |
Dump digis on half-strips and di-strips.
Definition at line 2796 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1160 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1455 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 2064 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 2502 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 3162 of file CSCCathodeLCTProcessor.cc.
std::vector< CSCCLCTDigi > CSCCathodeLCTProcessor::getCLCTs | ( | ) |
Returns vector of all found CLCTs, if any.
Definition at line 2917 of file CSCCathodeLCTProcessor.cc.
bool CSCCathodeLCTProcessor::getDigis | ( | const CSCComparatorDigiCollection * | compdc | ) |
Access routines to comparator digis.
Definition at line 753 of file CSCCathodeLCTProcessor.cc.
void CSCCathodeLCTProcessor::getDigis | ( | const CSCComparatorDigiCollection * | compdc, |
const CSCDetId & | id | ||
) |
Definition at line 793 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1322 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1910 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1399 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 2018 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1435 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1674 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 2478 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1260 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1579 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 2303 of file CSCCathodeLCTProcessor.cc.
|
inline |
Definition at line 84 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 1615 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 3024 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 1739 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 2356 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 2255 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 931 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 833 of file CSCCathodeLCTProcessor.cc.
std::vector< CSCCLCTDigi > CSCCathodeLCTProcessor::readoutCLCTs | ( | ) |
Returns vector of CLCTs in the read-out time window, if any.
Definition at line 2836 of file CSCCathodeLCTProcessor.cc.
std::vector< CSCCLCTDigi > CSCCathodeLCTProcessor::run | ( | const CSCComparatorDigiCollection * | compdc | ) |
Runs the LCT processor code. Called in normal running – gets info from a collection of comparator digis.
Definition at line 544 of file CSCCathodeLCTProcessor.cc.
void CSCCathodeLCTProcessor::run | ( | const std::vector< int > | halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], |
const std::vector< int > | distrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS] | ||
) |
Called in test mode and by the run(compdc) function; does the actual LCT finding.
Definition at line 676 of file CSCCathodeLCTProcessor.cc.
void CSCCathodeLCTProcessor::setConfigParameters | ( | const CSCDBL1TPParameters * | conf | ) |
Sets configuration parameters obtained via EventSetup mechanism.
Definition at line 417 of file CSCCathodeLCTProcessor.cc.
|
private |
Set default values for configuration parameters.
Definition at line 395 of file CSCCathodeLCTProcessor.cc.
|
inline |
Set ring number Has to be done for upgrade ME1a!
Definition at line 94 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 2930 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 2979 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 3065 of file CSCCathodeLCTProcessor.cc.
|
private |
Definition at line 257 of file CSCCathodeLCTProcessor.h.
CSCCLCTDigi CSCCathodeLCTProcessor::bestCLCT[MAX_CLCT_BINS] |
Best LCT in this chamber, as found by the processor.
Definition at line 73 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Number of di-strips/half-strips per CFEB.
Definition at line 192 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 165 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Definition at line 179 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Definition at line 178 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Default values of configuration parameters.
Definition at line 178 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Definition at line 179 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Definition at line 182 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Definition at line 181 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Definition at line 180 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Definition at line 182 of file CSCCathodeLCTProcessor.h.
|
staticprivate |
Definition at line 183 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 135 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 158 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 149 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 166 of file CSCCathodeLCTProcessor.h.
|
private |
VK: separate handle for early time bins
Definition at line 161 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 148 of file CSCCathodeLCTProcessor.h.
|
private |
Configuration parameters.
Definition at line 148 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 259 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 158 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 149 of file CSCCathodeLCTProcessor.h.
|
private |
Verbosity level: 0: no print (default). 1: print only CLCTs found. 2: info at every step of the algorithm. 3: add special-purpose prints.
Definition at line 118 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 130 of file CSCCathodeLCTProcessor.h.
|
private |
Flag for "real" - not idealized - version of the algorithm.
Definition at line 139 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 266 of file CSCCathodeLCTProcessor.h.
|
private |
Flag for SLHC studies.
Definition at line 145 of file CSCCathodeLCTProcessor.h.
|
private |
Flag for 2007 firmware version.
Definition at line 142 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 151 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 258 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 150 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 150 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 132 of file CSCCathodeLCTProcessor.h.
|
static |
Definition at line 99 of file CSCCathodeLCTProcessor.h.
|
static |
Definition at line 103 of file CSCCathodeLCTProcessor.h.
|
static |
Definition at line 102 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 151 of file CSCCathodeLCTProcessor.h.
|
static |
Definition at line 98 of file CSCCathodeLCTProcessor.h.
|
private |
VK: allow triggers only in +-pretrig_trig_zone around pretriggers
Definition at line 169 of file CSCCathodeLCTProcessor.h.
|
private |
VK: whether to readout only the earliest two LCTs in readout window
Definition at line 175 of file CSCCathodeLCTProcessor.h.
CSCCLCTDigi CSCCathodeLCTProcessor::secondCLCT[MAX_CLCT_BINS] |
Second best LCT in this chamber, as found by the processor.
Definition at line 76 of file CSCCathodeLCTProcessor.h.
|
private |
VK: special configuration parameters for ME1a treatment
Definition at line 158 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 133 of file CSCCathodeLCTProcessor.h.
|
private |
VK: some quick and dirty fix to reduce CLCT deadtime
Definition at line 155 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 129 of file CSCCathodeLCTProcessor.h.
|
private |
Chamber id (trigger-type labels).
Definition at line 121 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 136 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 128 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 123 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 122 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 124 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 125 of file CSCCathodeLCTProcessor.h.
|
private |
Definition at line 152 of file CSCCathodeLCTProcessor.h.
|
private |
VK: whether to use corrected_bx instead of pretrigger BX
Definition at line 172 of file CSCCathodeLCTProcessor.h.
|
private |
VK: use of localized dead-time zones
Definition at line 164 of file CSCCathodeLCTProcessor.h.