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 
42 {
43  public:
45  CSCMotherboard(unsigned endcap, unsigned station, unsigned sector,
46  unsigned subsector, unsigned chamber,
47  const edm::ParameterSet& conf);
48 
51 
53  virtual ~CSCMotherboard() = default;
54 
56  void run(const std::vector<int> w_time[CSCConstants::NUM_LAYERS][CSCConstants::MAX_NUM_WIRES],
57  const std::vector<int> hs_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS],
58  const std::vector<int> ds_times[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]);
59 
62  void run(const CSCWireDigiCollection* wiredc, const CSCComparatorDigiCollection* compdc);
63 
65  std::vector<CSCCorrelatedLCTDigi> readoutLCTs();
66 
68  std::vector<CSCCorrelatedLCTDigi> getLCTs();
69 
72  void clear();
73 
75  void setConfigParameters(const CSCDBL1TPParameters* conf);
76 
78  std::unique_ptr<CSCAnodeLCTProcessor> alct;
79 
81  std::unique_ptr<CSCCathodeLCTProcessor> clct;
82 
83  // VK: change to protected, to allow inheritance
84  protected:
85 
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  unsigned theRing;
97 
99  bool isMTCC;
100 
102  bool isTMB07;
103 
105  bool isSLHC;
106 
108  unsigned int mpc_block_me1a;
111 
114 
117 
120 
123 
125  static const unsigned int def_mpc_block_me1a;
126  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
128  static const unsigned int def_tmb_l1a_window_size;
129 
131  enum {MAX_LCT_BINS = 16};
132 
135 
138 
140  void checkConfigParameters();
141 
142  void correlateLCTs(CSCALCTDigi bestALCT, CSCALCTDigi secondALCT,
143  CSCCLCTDigi bestCLCT, CSCCLCTDigi secondCLCT);
145  const CSCCLCTDigi& cLCT,
146  int);
147  unsigned int encodePattern(const int ptn, const int highPt);
148  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT);
149 
151  void dumpConfigParams() const;
152 
153  // Method for tests
154  void testLCT();
155 
156  // utilities for sorting
157  static bool sortByQuality(const CSCCorrelatedLCTDigi&, const CSCCorrelatedLCTDigi&);
158  static bool sortByGEMDphi(const CSCCorrelatedLCTDigi&, const CSCCorrelatedLCTDigi&);
159 };
160 #endif
const unsigned theSector
unsigned int clct_trig_enable
std::vector< CSCCorrelatedLCTDigi > getLCTs()
static bool sortByGEMDphi(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
std::vector< CSCCorrelatedLCTDigi > readoutLCTs()
unsigned int match_trig_window_size
const unsigned theTrigChamber
static const unsigned int def_alct_trig_enable
const unsigned theEndcap
static const unsigned int def_mpc_block_me1a
unsigned int findQuality(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT)
static const unsigned int def_clct_trig_enable
virtual ~CSCMotherboard()=default
unsigned int mpc_block_me1a
void correlateLCTs(CSCALCTDigi bestALCT, CSCALCTDigi secondALCT, CSCCLCTDigi bestCLCT, CSCCLCTDigi secondCLCT)
const unsigned theStation
CSCCorrelatedLCTDigi secondLCT[MAX_LCT_BINS]
static const unsigned int def_tmb_l1a_window_size
CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int)
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 encodePattern(const int ptn, const int highPt)
unsigned int tmb_l1a_window_size
void checkConfigParameters()
unsigned int match_trig_enable
CSCCorrelatedLCTDigi firstLCT[MAX_LCT_BINS]
static const unsigned int def_match_trig_window_size
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
static bool sortByQuality(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
unsigned theRing