CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef CSCTriggerPrimitives_CSCTriggerPrimitivesBuilder_h
00002 #define CSCTriggerPrimitives_CSCTriggerPrimitivesBuilder_h
00003 
00018 #include <CondFormats/CSCObjects/interface/CSCBadChambers.h>
00019 #include <DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h>
00020 #include <DataFormats/CSCDigi/interface/CSCWireDigiCollection.h>
00021 #include <DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h>
00022 #include <DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h>
00023 #include <DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h>
00024 #include <DataFormats/CSCDigi/interface/CSCCLCTPreTriggerCollection.h>
00025 #include <FWCore/ParameterSet/interface/ParameterSet.h>
00026 
00027 class CSCDBL1TPParameters;
00028 class CSCMotherboard;
00029 class CSCMuonPortCard;
00030 
00031 class CSCTriggerPrimitivesBuilder
00032 {
00033  public:
00034 
00039   explicit CSCTriggerPrimitivesBuilder(const edm::ParameterSet&);
00040 
00041   ~CSCTriggerPrimitivesBuilder();
00042 
00044   void setConfigParameters(const CSCDBL1TPParameters* conf);
00045 
00049   void build(const CSCBadChambers* badChambers,
00050              const CSCWireDigiCollection* wiredc,
00051              const CSCComparatorDigiCollection* compdc,
00052              CSCALCTDigiCollection& oc_alct, CSCCLCTDigiCollection& oc_clct,
00053              CSCCLCTPreTriggerCollection & oc_pretrig,
00054              CSCCorrelatedLCTDigiCollection& oc_lct,
00055              CSCCorrelatedLCTDigiCollection& oc_sorted_lct);
00056 
00059   enum trig_cscs {MAX_ENDCAPS = 2, MAX_STATIONS = 4, MAX_SECTORS = 6,
00060                   MAX_SUBSECTORS = 2, MAX_CHAMBERS = 9};
00061  private:
00062 
00065   static const int min_endcap;    // endcaps
00066   static const int max_endcap;
00067   static const int min_station;   // stations per endcap
00068   static const int max_station;
00069   static const int min_sector;    // trigger sectors per station
00070   static const int max_sector;
00071   static const int min_subsector; // trigger subsectors per sector
00072   static const int max_subsector;
00073   static const int min_chamber;   // chambers per trigger subsector
00074   static const int max_chamber;
00075 
00077   bool checkBadChambers_;
00078 
00080   bool smartME1aME1b, disableME1a;
00081 
00083   bool disableME42;
00084 
00085   int m_minBX, m_maxBX; // min and max BX to sort.
00086 
00088   CSCMotherboard*
00089     tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS];
00090 
00092   CSCMuonPortCard* m_muonportcard;
00093 };
00094 
00095 #endif