CMS 3D CMS Logo

CSCMotherboard.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCMotherboard_h
2 #define L1Trigger_CSCTriggerPrimitives_CSCMotherboard_h
3 
40 
41 class CSCGeometry;
42 
44 {
45  public:
47  CSCMotherboard(unsigned endcap, unsigned station, unsigned sector,
48  unsigned subsector, unsigned chamber,
49  const edm::ParameterSet& conf);
50 
53 
55  virtual ~CSCMotherboard() = default;
56 
58  void run(const std::vector<int> w_time[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES],
59  const std::vector<int> hs_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS],
60  const std::vector<int> ds_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]);
61 
64  void run(const CSCWireDigiCollection* wiredc, const CSCComparatorDigiCollection* compdc);
65 
67  std::vector<CSCCorrelatedLCTDigi> readoutLCTs() const;
68 
70  std::vector<CSCCorrelatedLCTDigi> getLCTs() const;
71 
74  void clear();
75 
77  void setConfigParameters(const CSCDBL1TPParameters* conf);
78 
79  void setCSCGeometry(const CSCGeometry *g) { csc_g = g; }
80 
82  std::unique_ptr<CSCAnodeLCTProcessor> alct;
83 
85  std::unique_ptr<CSCCathodeLCTProcessor> clct;
86 
87  // VK: change to protected, to allow inheritance
88  protected:
89 
90  // helper function to return ALCT with correct central BX
92 
95  int infoV;
96 
98  const unsigned theEndcap;
99  const unsigned theStation;
100  const unsigned theSector;
101  const unsigned theSubsector;
102  const unsigned theTrigChamber;
103  unsigned theRing;
104 
106 
108  bool isMTCC;
109 
111  bool isTMB07;
112 
114  bool isSLHC;
115 
117  unsigned int mpc_block_me1a;
120 
123 
126 
129 
132 
136 
138  static const unsigned int def_mpc_block_me1a;
139  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
141  static const unsigned int def_tmb_l1a_window_size;
142 
145 
148 
150  void checkConfigParameters();
151 
152  void correlateLCTs(const CSCALCTDigi& bestALCT, const CSCALCTDigi& secondALCT,
153  const CSCCLCTDigi& bestCLCT, const CSCCLCTDigi& secondCLCT,
154  int type);
155 
156  // This method calculates all the TMB words and then passes them to the
157  // constructor of correlated LCTs.
159  const CSCCLCTDigi& cLCT,
160  int type, int trknmb) const;
161 
162  // CLCT pattern number: encodes the pattern number itself and
163  // whether the pattern consists of half-strips or di-strips.
164  unsigned int encodePattern(const int ptn, const int highPt) const;
165 
166  // 4-bit LCT quality number.Made by TMB lookup tables and used for MPC sorting.
167  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
168 
170  INVALID = 0,
171  NO_CLCT = 1,
172  NO_ALCT = 2,
186  };
187 
189  void dumpConfigParams() const;
190 
191  // Method for tests
192  void testLCT();
193 };
194 #endif
type
Definition: HCALResponse.h:21
const unsigned theSector
void setCSCGeometry(const CSCGeometry *g)
unsigned int clct_trig_enable
unsigned int match_trig_window_size
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
const unsigned theTrigChamber
static const unsigned int def_alct_trig_enable
void correlateLCTs(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, int type)
const unsigned theEndcap
static const unsigned int def_mpc_block_me1a
CSCCorrelatedLCTDigi secondLCT[CSCConstants::MAX_LCT_TBINS]
static const unsigned int def_clct_trig_enable
const CSCGeometry * csc_g
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
virtual ~CSCMotherboard()=default
unsigned int mpc_block_me1a
std::vector< CSCCorrelatedLCTDigi > getLCTs() const
const unsigned theStation
static const unsigned int def_tmb_l1a_window_size
const unsigned theSubsector
void run(const std::vector< int > w_time[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES], const std::vector< int > hs_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], const std::vector< int > ds_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS])
unsigned int tmb_l1a_window_size
void checkConfigParameters()
unsigned int match_trig_enable
CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const
unsigned int findQuality(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT) const
static const unsigned int def_match_trig_window_size
unsigned int encodePattern(const int ptn, const int highPt) const
unsigned int alct_trig_enable
std::unique_ptr< CSCAnodeLCTProcessor > alct
void dumpConfigParams() const
std::unique_ptr< CSCCathodeLCTProcessor > clct
void setConfigParameters(const CSCDBL1TPParameters *conf)
static const unsigned int def_match_trig_enable
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
CSCCorrelatedLCTDigi firstLCT[CSCConstants::MAX_LCT_TBINS]