1 #ifndef CSCTriggerPrimitives_CSCCathodeLCTProcessor_h
2 #define CSCTriggerPrimitives_CSCCathodeLCTProcessor_h
43 unsigned subsector,
unsigned chamber,
87 int stag_time[CSCConstants::MAX_NUM_STRIPS],
88 int stag_digi[CSCConstants::MAX_NUM_STRIPS],
89 int i_distrip,
bool debug =
false);
171 const int stripType,
const int nStrips,
int& first_bx);
174 int keystrip_data[CSCConstants::NUM_HALF_STRIPS][7],
175 int nStrips,
int first_bx,
int& best_strip,
int stripType);
177 int bx_time,
int &quality,
int &bend);
187 const int stripType,
const int nStrips,
188 const int start_bx,
int& first_bx);
190 const int stripType,
const int nStrips,
191 const unsigned int bx_time);
194 const int stripType,
const int nStrips,
const int bx_time);
196 const unsigned int h_nhits[MAX_CFEBS],
197 const int d_keyStrip[MAX_CFEBS],
198 const unsigned int d_nhits[MAX_CFEBS],
199 int keystrip_data[2][7]);
202 int keystrip_data[2][7],
const int first_bx);
205 unsigned int& quality,
unsigned int& bend);
212 const int start_bx,
int& first_bx);
215 const int nStrips,
const unsigned int bx_time);
216 void markBusyKeys(
const int best_hstrip,
const int best_patid,
217 int quality[CSCConstants::NUM_HALF_STRIPS]);
229 const int stripType,
const int nStrips)
const;
void getPattern(int pattern_num, int strip_value[NUM_PATTERN_STRIPS], int bx_time, int &quality, int &bend)
static const unsigned int def_drift_delay
CSCCLCTDigi secondCLCT[MAX_CLCT_BINS]
static const int pattern2007[CSCConstants::NUM_CLCT_PATTERNS][NUM_PATTERN_HALFSTRIPS+1]
void setDefaultConfigParameters()
std::vector< CSCCLCTDigi > readoutCLCTs()
unsigned int nplanes_hit_pretrig
static const unsigned int def_fifo_tbins
std::vector< CSCCLCTDigi > findLCTs(const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], int stripType)
unsigned int min_separation
static const int cfeb_strips[2]
const unsigned theTrigChamber
void getKeyStripData(const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], int keystrip_data[CSCConstants::NUM_HALF_STRIPS][7], int nStrips, int first_bx, int &best_strip, int stripType)
void markBusyKeys(const int best_hstrip, const int best_patid, int quality[CSCConstants::NUM_HALF_STRIPS])
void readComparatorDigis(std::vector< int >halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], std::vector< int > distrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS])
const unsigned theSubsector
int findNumLayersHit(std::vector< int > stripsHit[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS])
void dumpConfigParams() const
const unsigned theStation
void latchLCTs(const unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], int keyStrip[MAX_CFEBS], unsigned int nhits[MAX_CFEBS], const int stripType, const int nStrips, const int bx_time)
static const unsigned int def_min_separation
CSCCLCTDigi bestCLCT[MAX_CLCT_BINS]
static const unsigned int def_nplanes_hit_pretrig
static const unsigned int def_pid_thresh_pretrig
unsigned int fifo_pretrig
static void distripStagger(int stag_triad[CSCConstants::MAX_NUM_STRIPS], int stag_time[CSCConstants::MAX_NUM_STRIPS], int stag_digi[CSCConstants::MAX_NUM_STRIPS], int i_distrip, bool debug=false)
void testDistripStagger()
static const int pattern[CSCConstants::NUM_CLCT_PATTERNS_PRE_TMB07][NUM_PATTERN_STRIPS+1]
bool getDigis(const CSCComparatorDigiCollection *compdc)
static const unsigned int def_nplanes_hit_pattern
unsigned int nplanes_hit_pattern
void dumpDigis(const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], const int stripType, const int nStrips) const
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])
void pulseExtension(const std::vector< int > time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], const int nStrips, unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS])
void checkConfigParameters()
std::vector< int > preTriggerBXs() const
static const unsigned int def_fifo_pretrig
std::vector< int > thePreTriggerBXs
static const unsigned int def_hit_persist
int stagger[CSCConstants::NUM_LAYERS]
unsigned int best_pid[CSCConstants::NUM_HALF_STRIPS]
std::vector< CSCCLCTDigi > run(const CSCComparatorDigiCollection *compdc)
static const int pattern2007_offset[NUM_PATTERN_HALFSTRIPS]
bool hitIsGood(int hitTime, int BX)
unsigned int nhits[CSCConstants::NUM_HALF_STRIPS]
std::vector< CSCComparatorDigi > digiV[CSCConstants::NUM_LAYERS]
static const int pre_hit_pattern[2][NUM_PATTERN_STRIPS]
bool ptnFinding(const unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], const int nStrips, const unsigned int bx_time)
unsigned int pid_thresh_pretrig
std::vector< CSCCLCTDigi > getCLCTs()
void setConfigParameters(const CSCDBL1TPParameters *conf)
bool preTrigger(const std::vector< int > strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], const int stripType, const int nStrips, int &first_bx)
bool preTrigLookUp(const unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS], const int stripType, const int nStrips, const unsigned int bx_time)