00001 #ifndef CSCTriggerPrimitives_CSCTriggerPrimitivesBuilder_h
00002 #define CSCTriggerPrimitives_CSCTriggerPrimitivesBuilder_h
00003
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 <FWCore/ParameterSet/interface/ParameterSet.h>
00025
00026 class CSCL1TPParameters;
00027 class CSCMotherboard;
00028 class CSCMuonPortCard;
00029
00030 class CSCTriggerPrimitivesBuilder
00031 {
00032 public:
00033
00038 explicit CSCTriggerPrimitivesBuilder(const edm::ParameterSet&);
00039
00040 ~CSCTriggerPrimitivesBuilder();
00041
00043 void setConfigParameters(const CSCL1TPParameters* conf);
00044
00048 void build(const CSCWireDigiCollection* wiredc,
00049 const CSCComparatorDigiCollection* compdc,
00050 CSCALCTDigiCollection& oc_alct, CSCCLCTDigiCollection& oc_clct,
00051 CSCCorrelatedLCTDigiCollection& oc_lct,
00052 CSCCorrelatedLCTDigiCollection& oc_sorted_lct);
00053
00056 enum trig_cscs {MAX_ENDCAPS = 2, MAX_STATIONS = 4, MAX_SECTORS = 6,
00057 MAX_SUBSECTORS = 2, MAX_CHAMBERS = 9};
00058 private:
00059
00062 static const int min_endcap;
00063 static const int max_endcap;
00064 static const int min_station;
00065 static const int max_station;
00066 static const int min_sector;
00067 static const int max_sector;
00068 static const int min_subsector;
00069 static const int max_subsector;
00070 static const int min_chamber;
00071 static const int max_chamber;
00072
00073 int m_minBX, m_maxBX;
00074
00076 CSCMotherboard*
00077 tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS];
00078
00080 CSCMuonPortCard* m_muonportcard;
00081 };
00082
00083 #endif