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 
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  unsigned theRing;
101 
103 
105  bool isMTCC;
106 
108  bool isTMB07;
109 
111  bool isSLHC;
112 
114  unsigned int mpc_block_me1a;
117 
120 
123 
126 
129 
133 
135  static const unsigned int def_mpc_block_me1a;
136  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
138  static const unsigned int def_tmb_l1a_window_size;
139 
142 
145 
147  void checkConfigParameters();
148 
149  void correlateLCTs(const CSCALCTDigi& bestALCT, const CSCALCTDigi& secondALCT,
150  const CSCCLCTDigi& bestCLCT, const CSCCLCTDigi& secondCLCT,
151  int type);
152 
153  // This method calculates all the TMB words and then passes them to the
154  // constructor of correlated LCTs.
156  const CSCCLCTDigi& cLCT,
157  int type, int trknmb) const;
158 
159  // CLCT pattern number: encodes the pattern number itself and
160  // whether the pattern consists of half-strips or di-strips.
161  unsigned int encodePattern(const int ptn, const int highPt) const;
162 
163  // 4-bit LCT quality number.Made by TMB lookup tables and used for MPC sorting.
164  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
165 
167  INVALID = 0,
168  NO_CLCT = 1,
169  NO_ALCT = 2,
183  };
184 
186  void dumpConfigParams() const;
187 
188  // Method for tests
189  void testLCT();
190 };
191 #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
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]