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_;
128 virtual std::vector<CSCCLCTDigi>
findLCTs(
137 const unsigned int bx_time,
138 std::map<
int, std::map<int, CSCCLCTDigi::ComparatorContainer> >& hits_in_patterns);
void assignPositionCC(const unsigned offset, std::tuple< uint16_t, bool, bool > &returnValue) const
std::unique_ptr< LCTQualityControl > qualityControl_
void markBusyKeys(const int best_hstrip, const int best_patid, int quality[CSCConstants::NUM_HALF_STRIPS_7CFEBS])
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 int nStrips) 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_
static const unsigned int def_drift_delay
std::array< std::unique_ptr< CSCComparatorCodeLUT >, 5 > lutslope_
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
void pulseExtension(const std::vector< int > time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const int nStrips, PulseArray pulse)
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()
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
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
bool patternFinding(const PulseArray pulse, const int nStrips, const unsigned int bx_time, std::map< int, std::map< int, CSCCLCTDigi::ComparatorContainer > > &hits_in_patterns)
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_