56 m_config = std::make_unique<L1MuDTTFConfig>(ps);
58 if (m_config->Debug(1))
60 if (m_config->Debug(1))
61 cout <<
"**** entering L1MuDTTrackFinder ****" << endl;
62 if (m_config->Debug(1))
65 m_spmap = std::make_unique<L1MuDTSecProcMap>();
69 _cache.reserve(4 * 17);
70 _cache0.reserve(144 * 17);
91 if (m_config->Debug(1))
93 if (m_config->Debug(1))
94 cout <<
"**** L1MuDTTrackFinder building ****" << endl;
95 if (m_config->Debug(1))
99 for (
int wh = -3; wh <= 3; wh++) {
102 for (
int sc = 0; sc < 12; sc++) {
104 auto sp = std::make_unique<L1MuDTSectorProcessor>(*
this, tmpspid, iC);
105 if (m_config->Debug(2))
106 cout <<
"creating " << tmpspid << endl;
112 for (
int sc = 0; sc < 12; sc++) {
113 auto ep = std::make_unique<L1MuDTEtaProcessor>(*
this, sc, iC);
114 if (m_config->Debug(2))
115 cout <<
"creating Eta Processor " << sc << endl;
117 auto ws = std::make_unique<L1MuDTWedgeSorter>(*
this, sc);
118 if (m_config->Debug(2))
119 cout <<
"creating Wedge Sorter " << sc << endl;
124 if (m_config->Debug(2))
125 cout <<
"creating DT Muon Sorter " << endl;
126 m_ms = std::make_unique<L1MuDTMuonSorter>(*this);
136 e.getByToken(m_DTDigiToken, dttrig);
140 if (m_config->Debug(2))
142 if (m_config->Debug(2))
143 cout <<
"**** L1MuDTTrackFinder processing ****" << endl;
144 if (m_config->Debug(2))
147 int bx_min = m_config->getBxMin();
148 int bx_max = m_config->getBxMax();
150 for (
int bx = bx_min;
bx <= bx_max;
bx++) {
154 if (m_config->Debug(2))
155 cout <<
"L1MuDTTrackFinder processing bunch-crossing : " <<
bx << endl;
161 for (
auto& sp : *m_spmap) {
162 if (m_config->Debug(2))
163 cout <<
"running " << sp.second->id() << endl;
165 sp.second->run(
bx,
e,
c);
166 if (m_config->Debug(2) && sp.second)
171 for (
auto&
ep : m_epvec) {
172 if (m_config->Debug(2))
173 cout <<
"running Eta Processor " <<
ep->id() << endl;
176 if (m_config->Debug(2) &&
ep)
181 for (
auto& sp : *m_spmap) {
182 if (m_config->Debug(2))
183 cout <<
"reading " << sp.second->id() << endl;
189 cand->spid().wheel(),
190 cand->spid().sector(),
201 for (
auto&
ws : m_wsvec) {
202 if (m_config->Debug(2))
203 cout <<
"running Wedge Sorter " <<
ws->id() << endl;
206 if (m_config->Debug(2) &&
ws)
211 if (m_config->Debug(2))
212 cout <<
"running DT Muon Sorter" << endl;
215 if (m_config->Debug(2) && m_ms)
219 if (m_ms->numberOfTracks() > 0) {
220 for (
auto const& mttf : m_ms->tracks()) {
232 for (
auto& sp : *m_spmap) {
237 for (
auto&
ep : m_epvec) {
242 for (
auto&
ws : m_wsvec) {
275 for (
auto const& elem : _cache) {
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
~L1MuDTTrackFinder()
destructor
void reset()
reset the barrel MTTF
int numberOfTracks()
get number of muon candidates found by the barrel MTTF
L1MuDTTrackFinder(const edm::ParameterSet &ps, edm::ConsumesCollector &&iC)
constructor
const L1MuDTSectorProcessor * sp(const L1MuDTSecProcId &) const
get a pointer to a Sector Processor
bool bxEmpty(int step) const
Phi_Container const * getContainer() const
std::vector< L1MuRegionalCand >::const_iterator TFtracks_const_iter
container for muon candidates
void reset(double vett[256])