CMS 3D CMS Logo

CSCAnodeLCTProcessor.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCAnodeLCTProcessor_h
2 #define L1Trigger_CSCTriggerPrimitives_CSCAnodeLCTProcessor_h
3 
29 
30 #include <vector>
31 
32 class CSCGeometry;
33 
35 {
36  public:
38  CSCAnodeLCTProcessor(unsigned endcap, unsigned station, unsigned sector,
39  unsigned subsector, unsigned chamber,
40  const edm::ParameterSet& conf,
41  const edm::ParameterSet& comm);
42 
45 
47  void setConfigParameters(const CSCDBL1TPParameters* conf);
48 
50  void clear();
51 
52  void setCSCGeometry(const CSCGeometry *g) { csc_g = g; }
53 
56  std::vector<CSCALCTDigi> run(const CSCWireDigiCollection* wiredc);
57 
60  void run(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
61 
63  bool getDigis(const CSCWireDigiCollection* wiredc);
64  void getDigis(const CSCWireDigiCollection* wiredc, const CSCDetId& id);
65 
72 
75 
77  std::vector<CSCALCTDigi> readoutALCTs();
78 
80  std::vector<CSCALCTDigi> getALCTs();
81 
86 
87  private:
92  int infoV;
93 
95  const unsigned theEndcap;
96  const unsigned theStation;
97  const unsigned theSector;
98  const unsigned theSubsector;
99  const unsigned theTrigChamber;
100 
102 
104  unsigned theRing;
105 
106  unsigned theChamber;
107 
108  bool isME11;
109 
112 
116  std::vector<CSCWireDigi> digiV[CSCConstants::NUM_LAYERS];
118 
120  bool isSLHC_;
121 
127 
129  unsigned int hit_persist;
130 
133 
136 
139 
143 
146 
149 
152 
155 
158 
160  static const unsigned int def_fifo_tbins, def_fifo_pretrig;
161  static const unsigned int def_drift_delay;
163  static const unsigned int def_nplanes_hit_accel_pretrig;
164  static const unsigned int def_nplanes_hit_accel_pattern;
165  static const unsigned int def_trig_mode, def_accel_mode;
166  static const unsigned int def_l1a_window_width;
167 
170 
172  void loadPatternMask();
173 
176 
178  void checkConfigParameters();
179 
181  void clear(const int wire, const int pattern);
182 
184  void readWireDigis(std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
185  bool pulseExtension(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]);
186  bool preTrigger(const int key_wire, const int start_bx);
187  bool patternDetection(const int key_wire);
188  void ghostCancellationLogic();
190  void lctSearch();
191  void trigMode(const int key_wire);
192  void accelMode(const int key_wire);
193 
194  std::vector<CSCALCTDigi>
195  bestTrackSelector(const std::vector<CSCALCTDigi>& all_alcts);
196  bool isBetterALCT(const CSCALCTDigi& lhsALCT, const CSCALCTDigi& rhsALCT);
197 
199  void dumpConfigParams() const;
200 
202  void dumpDigis(const std::vector<int> wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES]) const;
203 
204  void showPatterns(const int key_wire);
205 };
206 
207 #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 unsigned int def_drift_delay
static const unsigned int def_fifo_tbins
bool getDigis(const CSCWireDigiCollection *wiredc)
const unsigned theTrigChamber
void setConfigParameters(const CSCDBL1TPParameters *conf)
void trigMode(const int key_wire)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
static const unsigned int def_accel_mode
static const int pattern_envelope[CSCConstants::NUM_ALCT_PATTERNS][CSCConstants::MAX_WIRES_IN_PATTERN]
static const unsigned int def_nplanes_hit_accel_pretrig
static const unsigned int def_fifo_pretrig
void accelMode(const int key_wire)
int pattern_mask[CSCConstants::NUM_ALCT_PATTERNS][CSCConstants::MAX_WIRES_IN_PATTERN]
static const unsigned int def_nplanes_hit_pattern
bool preTrigger(const int key_wire, const int start_bx)
bool pulseExtension(const std::vector< int > wire[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES])
CSCALCTDigi secondALCT[CSCConstants::MAX_ALCT_TBINS]
static const unsigned int def_l1a_window_width
static const int pattern_mask_open[CSCConstants::NUM_ALCT_PATTERNS][CSCConstants::MAX_WIRES_IN_PATTERN]
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()
void setCSCGeometry(const CSCGeometry *g)
const CSCGeometry * csc_g
std::vector< CSCALCTDigi > bestTrackSelector(const std::vector< CSCALCTDigi > &all_alcts)
CSCALCTDigi bestALCT[CSCConstants::MAX_ALCT_TBINS]
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)
static const int pattern_mask_r1[CSCConstants::NUM_ALCT_PATTERNS][CSCConstants::MAX_WIRES_IN_PATTERN]
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]
std::vector< CSCALCTDigi > getALCTs()
static const unsigned int def_nplanes_hit_pretrig
unsigned int nplanes_hit_accel_pretrig