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 
42 
43 class CSCGeometry;
44 
46 {
47  public:
49  CSCMotherboard(unsigned endcap, unsigned station, unsigned sector,
50  unsigned subsector, unsigned chamber,
51  const edm::ParameterSet& conf);
52 
55 
57  virtual ~CSCMotherboard() = default;
58 
61  void run(const CSCWireDigiCollection* wiredc, const CSCComparatorDigiCollection* compdc);
62 
64  std::vector<CSCCorrelatedLCTDigi> readoutLCTs() const;
65 
67  std::vector<CSCCorrelatedLCTDigi> getLCTs() const;
68 
71  void clear();
72 
74  void setConfigParameters(const CSCDBL1TPParameters* conf);
75 
76  void setCSCGeometry(const CSCGeometry *g) { csc_g = g; }
77 
79  std::unique_ptr<CSCAnodeLCTProcessor> alctProc;
80 
82  std::unique_ptr<CSCCathodeLCTProcessor> clctProc;
83 
84  // VK: change to protected, to allow inheritance
85  protected:
86 
87  /* Containers for reconstructed ALCTs and CLCTs */
88  std::vector<CSCALCTDigi> alctV;
89  std::vector<CSCCLCTDigi> clctV;
90 
93 
96 
97  // Parameters common for all boards
99 
100  // Parameters for processors
103 
104  // Motherboard parameters:
106 
107  // helper function to return ALCT with correct central BX
109 
112  int infoV;
113 
115  const unsigned theEndcap;
116  const unsigned theStation;
117  const unsigned theSector;
118  const unsigned theSubsector;
119  const unsigned theTrigChamber;
120  unsigned theRing;
121 
123 
125  bool isSLHC_;
126 
127  /* Flags to run upgrade algorithms */
131 
133  unsigned int mpc_block_me1a;
136 
139 
142 
145 
148 
152 
153  unsigned int alctClctOffset;
154 
156  static const unsigned int def_mpc_block_me1a;
157  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
159  static const unsigned int def_tmb_l1a_window_size;
160 
162  void checkConfigParameters();
163 
164  void correlateLCTs(const CSCALCTDigi& bestALCT, const CSCALCTDigi& secondALCT,
165  const CSCCLCTDigi& bestCLCT, const CSCCLCTDigi& secondCLCT,
166  int type);
167 
168  // This method calculates all the TMB words and then passes them to the
169  // constructor of correlated LCTs.
171  const CSCCLCTDigi& cLCT,
172  int type, int trknmb) const;
173 
174  // CLCT pattern number: encodes the pattern number itself
175  unsigned int encodePattern(const int clctPattern) const;
176 
177  // 4-bit LCT quality number.Made by TMB lookup tables and used for MPC sorting.
178  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
179 
181  INVALID = 0,
182  NO_CLCT = 1,
183  NO_ALCT = 2,
197  };
198 
200  void dumpConfigParams() const;
201 };
202 #endif
type
Definition: HCALResponse.h:21
edm::ParameterSet clctParams_
const unsigned theSector
edm::ParameterSet alctParams_
void setCSCGeometry(const CSCGeometry *g)
std::vector< CSCCLCTDigi > clctV
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]
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
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
edm::ParameterSet tmbParams_
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
edm::ParameterSet commonParams_
std::vector< CSCALCTDigi > alctV
const unsigned theSubsector
unsigned int encodePattern(const int clctPattern) const
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 alct_trig_enable
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
void dumpConfigParams() const
void setConfigParameters(const CSCDBL1TPParameters *conf)
static const unsigned int def_match_trig_enable
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
CSCCorrelatedLCTDigi firstLCT[CSCConstants::MAX_LCT_TBINS]