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();
68 
70  std::vector<CSCCorrelatedLCTDigi> getLCTs();
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 
131  static const unsigned int def_mpc_block_me1a;
132  static const unsigned int def_alct_trig_enable, def_clct_trig_enable;
134  static const unsigned int def_tmb_l1a_window_size;
135 
138 
141 
143  void checkConfigParameters();
144 
145  void correlateLCTs(CSCALCTDigi& bestALCT, CSCALCTDigi& secondALCT,
146  CSCCLCTDigi& bestCLCT, CSCCLCTDigi& secondCLCT);
148  const CSCCLCTDigi& cLCT,
149  int type) const;
150  unsigned int encodePattern(const int ptn, const int highPt) const;
151  unsigned int findQuality(const CSCALCTDigi& aLCT, const CSCCLCTDigi& cLCT) const;
152 
154  INVALID = 0,
155  NO_CLCT = 1,
156  NO_ALCT = 2,
170  };
171 
173  void dumpConfigParams() const;
174 
175  // Method for tests
176  void testLCT();
177 };
178 #endif
type
Definition: HCALResponse.h:21
const unsigned theSector
void setCSCGeometry(const CSCGeometry *g)
unsigned int clct_trig_enable
std::vector< CSCCorrelatedLCTDigi > getLCTs()
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
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
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
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)
CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type) const
void correlateLCTs(CSCALCTDigi &bestALCT, CSCALCTDigi &secondALCT, CSCCLCTDigi &bestCLCT, CSCCLCTDigi &secondCLCT)
static const unsigned int def_match_trig_enable
CSCCorrelatedLCTDigi firstLCT[CSCConstants::MAX_LCT_TBINS]