CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CSCAnodeLCTProcessor.h
Go to the documentation of this file.
1 #ifndef CSCTriggerPrimitives_CSCAnodeLCTProcessor_h
2 #define CSCTriggerPrimitives_CSCAnodeLCTProcessor_h
3 
19 #include <vector>
25 
27 {
28  public:
30  CSCAnodeLCTProcessor(unsigned endcap, unsigned station, unsigned sector,
31  unsigned subsector, unsigned chamber,
32  const edm::ParameterSet& conf,
33  const edm::ParameterSet& comm);
34 
37 
39  void setConfigParameters(const CSCDBL1TPParameters* conf);
40 
42  void clear();
43 
46  std::vector<CSCALCTDigi> run(const CSCWireDigiCollection* wiredc);
47 
50  void run(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
51 
53  bool getDigis(const CSCWireDigiCollection* wiredc);
54  void getDigis(const CSCWireDigiCollection* wiredc, const CSCDetId& id);
55 
57  enum {MAX_ALCT_BINS = 16};
58 
65 
68 
70  std::vector<CSCALCTDigi> readoutALCTs();
71 
73  std::vector<CSCALCTDigi> getALCTs();
74 
76  void setRing(unsigned r) {theRing = r;}
77 
79  enum {NUM_PATTERN_WIRES = 14};
84  static const int time_weights[NUM_PATTERN_WIRES];
85 
86  private:
91  int infoV;
92 
94  const unsigned theEndcap;
95  const unsigned theStation;
96  const unsigned theSector;
97  const unsigned theSubsector;
98  const unsigned theTrigChamber;
99 
101  unsigned theRing;
102 
103  unsigned theChamber;
104 
105  bool isME11;
106 
109 
113  std::vector<CSCWireDigi> digiV[CSCConstants::NUM_LAYERS];
115 
117  bool isMTCC;
118 
120  bool isTMB07;
121 
123  bool isSLHC;
124 
130 
132  unsigned int hit_persist;
133 
136 
139 
142 
146 
149 
152 
155 
157  static const unsigned int def_fifo_tbins, def_fifo_pretrig;
158  static const unsigned int def_drift_delay;
160  static const unsigned int def_nplanes_hit_accel_pretrig;
161  static const unsigned int def_nplanes_hit_accel_pattern;
162  static const unsigned int def_trig_mode, def_accel_mode;
163  static const unsigned int def_l1a_window_width;
164 
167 
169  void loadPatternMask();
170 
173 
175  void checkConfigParameters();
176 
178  void clear(const int wire, const int pattern);
179 
181  void readWireDigis(std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
182  bool pulseExtension(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
183  bool preTrigger(const int key_wire, const int start_bx);
184  bool patternDetection(const int key_wire);
185  void ghostCancellationLogic();
187  void lctSearch();
188  void trigMode(const int key_wire);
189  void accelMode(const int key_wire);
190 
191  std::vector<CSCALCTDigi>
192  bestTrackSelector(const std::vector<CSCALCTDigi>& all_alcts);
193  bool isBetterALCT(const CSCALCTDigi& lhsALCT, const CSCALCTDigi& rhsALCT);
194 
196  void dumpConfigParams() const;
197 
199  void dumpDigis(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]) const;
200 
201  void showPatterns(const int key_wire);
202 };
203 
204 #endif
void showPatterns(const int key_wire)
void readWireDigis(std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES])
int quality[CSCConstants::MAX_NUM_WIRES][3]
int first_bx_corrected[CSCConstants::MAX_NUM_WIRES]
static const int time_weights[NUM_PATTERN_WIRES]
static const unsigned int def_drift_delay
static const unsigned int def_fifo_tbins
CSCALCTDigi bestALCT[MAX_ALCT_BINS]
CSCALCTDigi secondALCT[MAX_ALCT_BINS]
static const int pattern_mask_slim[CSCConstants::NUM_ALCT_PATTERNS][NUM_PATTERN_WIRES]
bool getDigis(const CSCWireDigiCollection *wiredc)
const unsigned theTrigChamber
void setConfigParameters(const CSCDBL1TPParameters *conf)
void trigMode(const int key_wire)
static const unsigned int def_accel_mode
static const unsigned int def_nplanes_hit_accel_pretrig
static const unsigned int def_fifo_pretrig
static const int pattern_mask_r1[CSCConstants::NUM_ALCT_PATTERNS][NUM_PATTERN_WIRES]
void accelMode(const int key_wire)
static const unsigned int def_nplanes_hit_pattern
static const int pattern_envelope[CSCConstants::NUM_ALCT_PATTERNS][NUM_PATTERN_WIRES]
bool preTrigger(const int key_wire, const int start_bx)
static const int pattern_mask_open[CSCConstants::NUM_ALCT_PATTERNS][NUM_PATTERN_WIRES]
bool pulseExtension(const std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES])
tuple conf
Definition: dbtoconf.py:185
static const unsigned int def_l1a_window_width
bool isBetterALCT(const CSCALCTDigi &lhsALCT, const CSCALCTDigi &rhsALCT)
static const unsigned int def_trig_mode
static const unsigned int def_nplanes_hit_accel_pattern
void setRing(unsigned r)
std::vector< CSCALCTDigi > readoutALCTs()
std::vector< CSCALCTDigi > bestTrackSelector(const std::vector< CSCALCTDigi > &all_alcts)
int first_bx[CSCConstants::MAX_NUM_WIRES]
void dumpDigis(const std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]) const
unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]
bool patternDetection(const int key_wire)
unsigned int nplanes_hit_accel_pattern
std::vector< CSCALCTDigi > run(const CSCWireDigiCollection *wiredc)
unsigned int pretrig_extra_deadtime
std::vector< CSCWireDigi > digiV[CSCConstants::NUM_LAYERS]
int pattern_mask[CSCConstants::NUM_ALCT_PATTERNS][NUM_PATTERN_WIRES]
std::vector< CSCALCTDigi > getALCTs()
static const unsigned int def_nplanes_hit_pretrig
unsigned int nplanes_hit_accel_pretrig