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 
21 #include <vector>
27 
29 {
30  public:
32  CSCAnodeLCTProcessor(unsigned endcap, unsigned station, unsigned sector,
33  unsigned subsector, unsigned chamber,
34  const edm::ParameterSet& conf,
35  const edm::ParameterSet& comm);
36 
39 
41  void setConfigParameters(const CSCDBL1TPParameters* conf);
42 
44  void clear();
45 
48  std::vector<CSCALCTDigi> run(const CSCWireDigiCollection* wiredc);
49 
52  void run(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
53 
55  bool getDigis(const CSCWireDigiCollection* wiredc);
56  void getDigis(const CSCWireDigiCollection* wiredc, const CSCDetId& id);
57 
59  enum {MAX_ALCT_BINS = 16};
60 
67 
70 
72  std::vector<CSCALCTDigi> readoutALCTs();
73 
75  std::vector<CSCALCTDigi> getALCTs();
76 
78  enum {NUM_PATTERN_WIRES = 14};
82 
83  private:
88  int infoV;
89 
91  const unsigned theEndcap;
92  const unsigned theStation;
93  const unsigned theSector;
94  const unsigned theSubsector;
95  const unsigned theTrigChamber;
96 
99 
102  std::vector<CSCWireDigi> digiV[CSCConstants::NUM_LAYERS];
104 
106  bool isMTCC;
107 
109  bool isTMB07;
110 
116 
118  static const unsigned int def_fifo_tbins, def_fifo_pretrig;
119  static const unsigned int def_drift_delay;
121  static const unsigned int def_nplanes_hit_accel_pretrig;
122  static const unsigned int def_nplanes_hit_accel_pattern;
123  static const unsigned int def_trig_mode, def_accel_mode;
124  static const unsigned int def_l1a_window_width;
125 
128 
131 
133  void checkConfigParameters();
134 
136  void clear(const int wire, const int pattern);
137 
139  void readWireDigis(std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
140  bool pulseExtension(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
141  bool preTrigger(const int key_wire, const int start_bx);
142  bool patternDetection(const int key_wire);
143  void ghostCancellationLogic();
144  void lctSearch();
145  void trigMode(const int key_wire);
146  void accelMode(const int key_wire);
147 
148  std::vector<CSCALCTDigi>
149  bestTrackSelector(const std::vector<CSCALCTDigi>& all_alcts);
150  bool isBetterALCT(const CSCALCTDigi& lhsALCT, const CSCALCTDigi& rhsALCT);
151 
153  void dumpConfigParams() const;
154 
156  void dumpDigis(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]) const;
157 
158  void showPatterns(const int key_wire);
159 };
160 
161 #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]
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
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
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)
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