CMS 3D CMS Logo

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

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