File indexing completed on 2024-04-06 12:19:32
0001 #ifndef CSCTrackFinder_CSCTFTrackBuilder_h
0002 #define CSCTrackFinder_CSCTFTrackBuilder_h
0003
0004 #include <vector>
0005 #include <DataFormats/L1CSCTrackFinder/interface/L1CSCTrackCollection.h>
0006 #include <DataFormats/L1CSCTrackFinder/interface/CSCTriggerContainer.h>
0007 #include <DataFormats/L1CSCTrackFinder/interface/TrackStub.h>
0008 #include <DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h>
0009 #include <DataFormats/L1DTTrackFinder/interface/L1MuDTChambPhContainer.h>
0010 #include <cstring>
0011 #include <FWCore/Framework/interface/EventSetup.h>
0012 #include <FWCore/ParameterSet/interface/ParameterSet.h>
0013 #include "L1Trigger/CSCTrackFinder/interface/CSCTFSectorProcessor.h"
0014
0015 class CSCMuonPortCard;
0016 class L1MuTriggerScales;
0017 class L1MuTriggerPtScale;
0018
0019 class CSCTFTrackBuilder {
0020 public:
0021 using Tokens = CSCTFSectorProcessor::Tokens;
0022 static Tokens consumes(const edm::ParameterSet& pset, edm::ConsumesCollector iC) {
0023 return CSCTFSectorProcessor::consumes(pset, iC);
0024 }
0025
0026 void initialize(const edm::EventSetup& c, const Tokens& tokens);
0027
0028 enum { nEndcaps = 2, nSectors = 6 };
0029
0030 CSCTFTrackBuilder(const edm::ParameterSet& pset,
0031 bool TMB07,
0032 const L1MuTriggerScales* scales,
0033 const L1MuTriggerPtScale* ptScale);
0034
0035 ~CSCTFTrackBuilder();
0036
0037 void buildTracks(const CSCCorrelatedLCTDigiCollection*,
0038 const CSCTriggerContainer<csctf::TrackStub>*,
0039 L1CSCTrackCollection*,
0040 CSCTriggerContainer<csctf::TrackStub>*);
0041
0042 private:
0043 CSCTFSectorProcessor* my_SPs[nEndcaps][nSectors];
0044 int m_minBX, m_maxBX;
0045 };
0046
0047 #endif