File indexing completed on 2024-04-06 12:19:41
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef L1MUDT_TRACK_FINDER_H
0021 #define L1MUDT_TRACK_FINDER_H
0022
0023
0024
0025
0026
0027 #include <vector>
0028 #include <memory>
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038 #include "FWCore/Framework/interface/Event.h"
0039 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0040 #include "FWCore/Framework/interface/ConsumesCollector.h"
0041 #include "FWCore/Utilities/interface/EDGetToken.h"
0042 class L1MuDTChambPhContainer;
0043 class L1MuDTTFConfig;
0044 class L1MuDTSecProcMap;
0045 class L1MuDTSecProcId;
0046 class L1MuDTSectorProcessor;
0047 class L1MuDTEtaProcessor;
0048 class L1MuDTWedgeSorter;
0049 class L1MuDTMuonSorter;
0050 class L1MuDTTrackCand;
0051 class L1MuRegionalCand;
0052
0053
0054
0055
0056
0057 class L1MuDTTrackFinder {
0058 public:
0059
0060 typedef std::vector<L1MuRegionalCand>::const_iterator TFtracks_const_iter;
0061 typedef std::vector<L1MuRegionalCand>::iterator TFtracks_iter;
0062
0063
0064 L1MuDTTrackFinder(const edm::ParameterSet& ps, edm::ConsumesCollector&& iC);
0065
0066
0067 ~L1MuDTTrackFinder();
0068
0069
0070 void setup(edm::ConsumesCollector&& iC);
0071
0072
0073 void run(const edm::Event& e, const edm::EventSetup& c);
0074
0075
0076 void reset();
0077
0078
0079 const L1MuDTSectorProcessor* sp(const L1MuDTSecProcId&) const;
0080
0081
0082 inline const L1MuDTEtaProcessor* ep(int id) const { return m_epvec[id].get(); }
0083
0084
0085 inline const L1MuDTWedgeSorter* ws(int id) const { return m_wsvec[id].get(); }
0086
0087
0088 inline const L1MuDTMuonSorter* ms() const { return m_ms.get(); }
0089
0090
0091 int numberOfTracks();
0092
0093 TFtracks_const_iter begin();
0094
0095 TFtracks_const_iter end();
0096
0097 void clear();
0098
0099
0100 int numberOfTracks(int bx);
0101
0102
0103 const L1MuDTTFConfig* config() const { return m_config.get(); }
0104
0105 std::vector<L1MuDTTrackCand>& getcache0() { return _cache0; }
0106
0107 std::vector<L1MuRegionalCand>& getcache() { return _cache; }
0108
0109 private:
0110 std::vector<L1MuDTTrackCand> _cache0;
0111 std::vector<L1MuRegionalCand> _cache;
0112 std::unique_ptr<L1MuDTSecProcMap> m_spmap;
0113 std::vector<std::unique_ptr<L1MuDTEtaProcessor>> m_epvec;
0114 std::vector<std::unique_ptr<L1MuDTWedgeSorter>> m_wsvec;
0115 std::unique_ptr<L1MuDTMuonSorter> m_ms;
0116 edm::EDGetTokenT<L1MuDTChambPhContainer> m_DTDigiToken;
0117
0118 std::unique_ptr<L1MuDTTFConfig> m_config;
0119 };
0120
0121 #endif