CMS 3D CMS Logo

L1MuDTTrackFinder.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
18 //
19 //--------------------------------------------------
20 #ifndef L1MUDT_TRACK_FINDER_H
21 #define L1MUDT_TRACK_FINDER_H
22 
23 //---------------
24 // C++ Headers --
25 //---------------
26 
27 #include <vector>
28 #include <memory>
29 
30 //----------------------
31 // Base Class Headers --
32 //----------------------
33 
34 //------------------------------------
35 // Collaborating Class Declarations --
36 //------------------------------------
37 
43 class L1MuDTTFConfig;
44 class L1MuDTSecProcMap;
45 class L1MuDTSecProcId;
47 class L1MuDTEtaProcessor;
48 class L1MuDTWedgeSorter;
49 class L1MuDTMuonSorter;
50 class L1MuDTTrackCand;
51 class L1MuRegionalCand;
52 
53 // ---------------------
54 // -- Class Interface --
55 // ---------------------
56 
58 public:
60  typedef std::vector<L1MuRegionalCand>::const_iterator TFtracks_const_iter;
61  typedef std::vector<L1MuRegionalCand>::iterator TFtracks_iter;
62 
65 
68 
70  void setup(edm::ConsumesCollector&& iC);
71 
73  void run(const edm::Event& e, const edm::EventSetup& c);
74 
76  void reset();
77 
79  const L1MuDTSectorProcessor* sp(const L1MuDTSecProcId&) const;
80 
82  inline const L1MuDTEtaProcessor* ep(int id) const { return m_epvec[id].get(); }
83 
85  inline const L1MuDTWedgeSorter* ws(int id) const { return m_wsvec[id].get(); }
86 
88  inline const L1MuDTMuonSorter* ms() const { return m_ms.get(); }
89 
91  int numberOfTracks();
92 
94 
96 
97  void clear();
98 
100  int numberOfTracks(int bx);
101 
103  const L1MuDTTFConfig* config() const { return m_config.get(); }
104 
105  std::vector<L1MuDTTrackCand>& getcache0() { return _cache0; }
106 
107  std::vector<L1MuRegionalCand>& getcache() { return _cache; }
108 
109 private:
110  std::vector<L1MuDTTrackCand> _cache0;
111  std::vector<L1MuRegionalCand> _cache;
112  std::unique_ptr<L1MuDTSecProcMap> m_spmap;
113  std::vector<std::unique_ptr<L1MuDTEtaProcessor>> m_epvec;
114  std::vector<std::unique_ptr<L1MuDTWedgeSorter>> m_wsvec;
115  std::unique_ptr<L1MuDTMuonSorter> m_ms;
117 
118  std::unique_ptr<L1MuDTTFConfig> m_config;
119 };
120 
121 #endif
const L1MuDTEtaProcessor * ep(int id) const
get a pointer to an Eta Processor, index [0-11]
TFtracks_const_iter begin()
TFtracks_const_iter end()
void run(const edm::Event &e, const edm::EventSetup &c)
run the barrel MTTF
void setup(edm::ConsumesCollector &&iC)
build the structure of the barrel MTTF
std::vector< L1MuDTTrackCand > _cache0
std::vector< std::unique_ptr< L1MuDTWedgeSorter > > m_wsvec
Wedge Sorters.
edm::EDGetTokenT< L1MuDTChambPhContainer > m_DTDigiToken
const L1MuDTWedgeSorter * ws(int id) const
get a pointer to a Wedge Sorter, index [0-11]
~L1MuDTTrackFinder()
destructor
void reset()
reset the barrel MTTF
int numberOfTracks()
get number of muon candidates found by the barrel MTTF
std::unique_ptr< L1MuDTSecProcMap > m_spmap
Sector Processors.
std::unique_ptr< L1MuDTMuonSorter > m_ms
DT Muon Sorter.
std::unique_ptr< L1MuDTTFConfig > m_config
Track Finder configuration.
L1MuDTTrackFinder(const edm::ParameterSet &ps, edm::ConsumesCollector &&iC)
constructor
const L1MuDTSectorProcessor * sp(const L1MuDTSecProcId &) const
get a pointer to a Sector Processor
std::vector< L1MuDTTrackCand > & getcache0()
std::vector< L1MuRegionalCand > _cache
std::vector< L1MuRegionalCand > & getcache()
const L1MuDTTFConfig * config() const
return configuration
std::vector< L1MuRegionalCand >::const_iterator TFtracks_const_iter
container for muon candidates
std::vector< std::unique_ptr< L1MuDTEtaProcessor > > m_epvec
Eta Processors.
std::vector< L1MuRegionalCand >::iterator TFtracks_iter
const L1MuDTMuonSorter * ms() const
get a pointer to the DT Muon Sorter