Go to the documentation of this file. 1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCCathodeLCTProcessor_h
2 #define L1Trigger_CSCTriggerPrimitives_CSCCathodeLCTProcessor_h
102 std::array<std::unique_ptr<CSCComparatorCodeLUT>, 5>
lutpos_;
103 std::array<std::unique_ptr<CSCComparatorCodeLUT>, 5>
lutslope_;
127 virtual std::vector<CSCCLCTDigi>
findLCTs(
135 const unsigned int bx_time,
136 std::map<
int, std::map<int, CSCCLCTDigi::ComparatorContainer> >& hits_in_patterns);
std::unique_ptr< LCTQualityControl > qualityControl_
void markBusyKeys(const int best_hstrip, const int best_patid, int quality[CSCConstants::NUM_HALF_STRIPS_7CFEBS])
void assignPositionCC(const unsigned offset, std::tuple< int16_t, bool, bool > &returnValue) const
int stagger[CSCConstants::NUM_LAYERS]
CSCCLCTDigi getSecondCLCT(int bx) const
void dumpConfigParams() const
void dumpDigis(const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) const
double pulse(double x, double y, double z, double t)
void readComparatorDigis(std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS])
std::vector< CSCCLCTDigi > readoutCLCTs(int nMaxCLCTs=CSCConstants::MAX_CLCTS_READOUT) const
bool getDigis(const CSCComparatorDigiCollection *compdc)
static const unsigned int def_nplanes_hit_pattern
std::vector< std::string > patternConversionLUTFiles_
bool patternFinding(const PulseArray pulse, const unsigned int bx_time, std::map< int, std::map< int, CSCCLCTDigi::ComparatorContainer > > &hits_in_patterns)
static const unsigned int def_drift_delay
std::array< std::unique_ptr< CSCComparatorCodeLUT >, 5 > lutslope_
const uint32_t *__restrict__ Quality * quality
void setConfigParameters(const CSCDBL1TPParameters *conf)
static const unsigned int def_fifo_tbins
std::vector< std::string > slopeLUTFiles_
std::vector< CSCCLCTPreTriggerDigi > thePreTriggerDigis
CSCCLCTDigi getBestCLCT(int bx) const
bool ispretrig[CSCConstants::NUM_HALF_STRIPS_7CFEBS]
std::array< std::unique_ptr< CSCComparatorCodeLUT >, 5 > lutpos_
CSCCLCTDigi bestCLCT[CSCConstants::MAX_CLCT_TBINS]
virtual std::vector< CSCCLCTDigi > findLCTs(const std::vector< int > halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS])
int first_bx_corrected[CSCConstants::NUM_HALF_STRIPS_7CFEBS]
std::vector< int > thePreTriggerBXs
static const unsigned int def_fifo_pretrig
static const unsigned int def_hit_persist
virtual bool preTrigger(const PulseArray pulse, const int start_bx, int &first_bx)
unsigned int nhits[CSCConstants::NUM_HALF_STRIPS_7CFEBS]
static const unsigned int def_min_separation
unsigned convertSlopeToRun2Pattern(const unsigned slope) const
std::vector< CSCCLCTDigi > run(const CSCComparatorDigiCollection *compdc)
std::vector< CSCCLCTPreTriggerDigi > preTriggerDigis() const
std::vector< int > preTriggerBXs() const
std::array< std::unique_ptr< CSCComparatorCodeLUT >, 5 > lutpatconv_
CSCCLCTDigi secondCLCT[CSCConstants::MAX_CLCT_TBINS]
std::vector< CSCComparatorDigi > digiV[CSCConstants::NUM_LAYERS]
void cleanComparatorContainer(CSCCLCTDigi &lct) const
static const unsigned int def_pid_thresh_pretrig
std::vector< std::string > positionLUTFiles_
unsigned int tmb_l1a_window_size
std::vector< CSCCLCTDigi > readoutCLCTsME1a(int nMaxCLCTs=CSCConstants::MAX_CLCTS_READOUT) const
static const unsigned int def_nplanes_hit_pretrig
std::vector< LCTPattern > LCTPatterns
int calculateComparatorCode(const std::array< std::array< int, 3 >, 6 > &halfStripPattern) const
unsigned int pid_thresh_pretrig
unsigned int PulseArray[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]
std::vector< CSCCLCTDigi > readoutCLCTsME1b(int nMaxCLCTs=CSCConstants::MAX_CLCTS_READOUT) const
void setDefaultConfigParameters()
std::vector< CSCCLCTPreTriggerDigi > preTriggerDigisME1b() const
static const unsigned int def_tmb_l1a_window_size
unsigned int fifo_pretrig
unsigned int best_pid[CSCConstants::NUM_HALF_STRIPS_7CFEBS]
~CSCCathodeLCTProcessor() override=default
std::vector< CSCCLCTPreTriggerDigi > preTriggerDigisME1a() const
void pulseExtension(const std::vector< int > time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], PulseArray pulse)
unsigned int nplanes_hit_pretrig
unsigned int min_separation
void runCCLUT(CSCCLCTDigi &digi) const
static const double slope[3]
std::vector< CSCCLCTDigi > getCLCTs(unsigned nMaxCLCTs=CSCConstants::MAX_CLCTS_PER_PROCESSOR) const
void checkConfigParameters()
unsigned int nplanes_hit_pattern
CSCPatternBank::LCTPatterns clct_pattern_