CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboardME11.h

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   //CSCCorrelatedLCTDigi firstLCT1a[MAX_LCT_BINS];
00081 
00083   //CSCCorrelatedLCTDigi secondLCT1a[MAX_LCT_BINS];
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