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 
59  void run(const CSCWireDigiCollection* wiredc, const CSCComparatorDigiCollection* compdc);
60 
62  std::vector<CSCCorrelatedLCTDigi> readoutLCTs() const;
63 
65  std::vector<CSCCorrelatedLCTDigi> getLCTs() const;
66 
69  void clear();
70 
72  void setConfigParameters(const CSCDBL1TPParameters* conf);
73 
74  void setCSCGeometry(const CSCGeometry *g) { csc_g = g; }
75 
77  std::unique_ptr<CSCAnodeLCTProcessor> alct;
78 
80  std::unique_ptr<CSCCathodeLCTProcessor> clct;
81 
82  // VK: change to protected, to allow inheritance
83  protected:
84 
85  // helper function to return ALCT with correct central BX
87 
90  int infoV;
91 
93  const unsigned theEndcap;
94  const unsigned theStation;
95  const unsigned theSector;
96  const unsigned theSubsector;
97  const unsigned theTrigChamber;
98  unsigned theRing;
99 
101 
103  bool isSLHC;
104 
106  unsigned int mpc_block_me1a;
109 
112 
115 
118 
121 
125 
126  unsigned int alctClctOffset;
127 
129  static const unsigned int def_mpc_block_me1a;
130  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
132  static const unsigned int def_tmb_l1a_window_size;
133 
136 
139 
141  void checkConfigParameters();
142 
143  void correlateLCTs(const CSCALCTDigi& bestALCT, const CSCALCTDigi& secondALCT,
144  const CSCCLCTDigi& bestCLCT, const CSCCLCTDigi& secondCLCT,
145  int type);
146 
147  // This method calculates all the TMB words and then passes them to the
148  // constructor of correlated LCTs.
150  const CSCCLCTDigi& cLCT,
151  int type, int trknmb) const;
152 
153  // CLCT pattern number: encodes the pattern number itself and
154  // whether the pattern consists of half-strips or di-strips.
155  unsigned int encodePattern(const int ptn, const int highPt) const;
156 
157  // 4-bit LCT quality number.Made by TMB lookup tables and used for MPC sorting.
158  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
159 
161  INVALID = 0,
162  NO_CLCT = 1,
163  NO_ALCT = 2,
177  };
178 
180  void dumpConfigParams() const;
181 
182  // Method for tests
183  void testLCT();
184 };
185 #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
unsigned int alctClctOffset
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
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
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
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
unsigned theRing
CSCCorrelatedLCTDigi firstLCT[CSCConstants::MAX_LCT_TBINS]