Go to the documentation of this file.00001 #ifndef CSCTriggerPrimitives_CSCMotherboardME11_h
00002 #define CSCTriggerPrimitives_CSCMotherboardME11_h
00003
00018 #include <L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.h>
00019 #include <DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h>
00020
00021 class CSCMotherboardME11 : public CSCMotherboard
00022 {
00023 public:
00025 CSCMotherboardME11(unsigned endcap, unsigned station, unsigned sector,
00026 unsigned subsector, unsigned chamber,
00027 const edm::ParameterSet& conf);
00028
00030 CSCMotherboardME11();
00031
00033 ~CSCMotherboardME11();
00034
00037 void run(const CSCWireDigiCollection* wiredc,
00038 const CSCComparatorDigiCollection* compdc);
00039
00041 std::vector<CSCCorrelatedLCTDigi> getLCTs1a();
00042 std::vector<CSCCorrelatedLCTDigi> getLCTs1b();
00043
00045 std::vector<CSCALCTDigi> getALCTs1b() {return alctV;}
00046
00048 std::vector<CSCCLCTDigi> getCLCTs1a() {return clctV1a;}
00049 std::vector<CSCCLCTDigi> getCLCTs1b() {return clctV1b;}
00050
00053 void clear();
00054
00056 void setConfigParameters(const CSCDBL1TPParameters* conf);
00057
00059 CSCCathodeLCTProcessor* clct1a;
00060
00061 std::vector<CSCCorrelatedLCTDigi> readoutLCTs1a();
00062 std::vector<CSCCorrelatedLCTDigi> readoutLCTs1b();
00063 std::vector<CSCCorrelatedLCTDigi> readoutLCTs(int me1ab);
00064
00065 private:
00066
00068 enum {ME1B = 1, ME1A=4};
00069
00070 static const int lut_wg_vs_hs_me1b[48][2];
00071 static const int lut_wg_vs_hs_me1a[48][2];
00072 static const int lut_wg_vs_hs_me1ag[48][2];
00073
00075 bool smartME1aME1b, disableME1a, gangedME1a;
00076
00077 bool doesALCTCrossCLCT(CSCALCTDigi &a, CSCCLCTDigi &c, int me);
00078
00080
00081
00083
00084
00087 CSCCorrelatedLCTDigi allLCTs1b[MAX_LCT_BINS][15][2];
00088 CSCCorrelatedLCTDigi allLCTs1a[MAX_LCT_BINS][15][2];
00089
00090 void correlateLCTs(CSCALCTDigi bestALCT, CSCALCTDigi secondALCT,
00091 CSCCLCTDigi bestCLCT, CSCCLCTDigi secondCLCT,
00092 CSCCorrelatedLCTDigi& lct1, CSCCorrelatedLCTDigi& lct2);
00093
00094 void correlateLCTs(CSCALCTDigi bestALCT, CSCALCTDigi secondALCT,
00095 CSCCLCTDigi bestCLCT, CSCCLCTDigi secondCLCT,
00096 CSCCorrelatedLCTDigi& lct1, CSCCorrelatedLCTDigi& lct2, int me);
00097
00098 std::vector<CSCALCTDigi> alctV;
00099 std::vector<CSCCLCTDigi> clctV1b;
00100 std::vector<CSCCLCTDigi> clctV1a;
00101
00103 int pref[MAX_LCT_BINS];
00104
00105 bool match_earliest_alct_me11_only;
00106 bool match_earliest_clct_me11_only;
00107
00110 bool clct_to_alct;
00111
00114 bool drop_used_clcts;
00115
00116 unsigned int tmb_cross_bx_algo;
00117
00119 unsigned int max_me11_lcts;
00120 };
00121 #endif