56 if (m_config ==
nullptr)
59 if (m_config->Debug(1))
61 if (m_config->Debug(1))
62 cout <<
"**** entering L1MuDTTrackFinder ****" << endl;
63 if (m_config->Debug(1))
71 _cache.reserve(4 * 17);
72 _cache0.reserve(144 * 17);
84 vector<L1MuDTEtaProcessor*>::iterator it_ep = m_epvec.begin();
85 while (it_ep != m_epvec.end()) {
91 vector<L1MuDTWedgeSorter*>::iterator it_ws = m_wsvec.begin();
92 while (it_ws != m_wsvec.end()) {
115 if (m_config->Debug(1))
117 if (m_config->Debug(1))
118 cout <<
"**** L1MuDTTrackFinder building ****" << endl;
119 if (m_config->Debug(1))
123 for (
int wh = -3; wh <= 3; wh++) {
126 for (
int sc = 0; sc < 12; sc++) {
129 if (m_config->Debug(2))
130 cout <<
"creating " << tmpspid << endl;
131 m_spmap->insert(tmpspid, sp);
136 for (
int sc = 0; sc < 12; sc++) {
138 if (m_config->Debug(2))
139 cout <<
"creating Eta Processor " << sc << endl;
140 m_epvec.push_back(
ep);
142 if (m_config->Debug(2))
143 cout <<
"creating Wedge Sorter " << sc << endl;
144 m_wsvec.push_back(ws);
148 if (m_config->Debug(2))
149 cout <<
"creating DT Muon Sorter " << endl;
160 e.getByToken(m_DTDigiToken, dttrig);
164 if (m_config->Debug(2))
166 if (m_config->Debug(2))
167 cout <<
"**** L1MuDTTrackFinder processing ****" << endl;
168 if (m_config->Debug(2))
171 int bx_min = m_config->getBxMin();
172 int bx_max = m_config->getBxMax();
174 for (
int bx = bx_min;
bx <= bx_max;
bx++) {
178 if (m_config->Debug(2))
179 cout <<
"L1MuDTTrackFinder processing bunch-crossing : " <<
bx << endl;
186 while (it_sp != m_spmap->end()) {
187 if (m_config->Debug(2))
188 cout <<
"running " << (*it_sp).second->id() << endl;
190 (*it_sp).second->run(
bx,
e,
c);
191 if (m_config->Debug(2) && (*it_sp).second)
192 (*it_sp).second->print();
197 vector<L1MuDTEtaProcessor*>::iterator it_ep = m_epvec.begin();
198 while (it_ep != m_epvec.end()) {
199 if (m_config->Debug(2))
200 cout <<
"running Eta Processor " << (*it_ep)->id() << endl;
202 (*it_ep)->run(
bx,
e,
c);
203 if (m_config->Debug(2) && *it_ep)
209 it_sp = m_spmap->begin();
210 while (it_sp != m_spmap->end()) {
211 if (m_config->Debug(2))
212 cout <<
"reading " << (*it_sp).second->id() << endl;
218 cand->spid().wheel(),
219 cand->spid().sector(),
231 vector<L1MuDTWedgeSorter*>::iterator it_ws = m_wsvec.begin();
232 while (it_ws != m_wsvec.end()) {
233 if (m_config->Debug(2))
234 cout <<
"running Wedge Sorter " << (*it_ws)->id() << endl;
237 if (m_config->Debug(2) && *it_ws)
243 if (m_config->Debug(2))
244 cout <<
"running DT Muon Sorter" << endl;
247 if (m_config->Debug(2) && m_ms)
251 if (m_ms->numberOfTracks() > 0) {
252 const vector<const L1MuDTTrack*>& mttf_cont = m_ms->tracks();
253 vector<const L1MuDTTrack*>::const_iterator iter;
254 for (iter = mttf_cont.begin(); iter != mttf_cont.end(); iter++) {
267 while (it_sp != m_spmap->end()) {
269 (*it_sp).second->reset();
273 vector<L1MuDTEtaProcessor*>::iterator it_ep = m_epvec.begin();
274 while (it_ep != m_epvec.end()) {
280 vector<L1MuDTWedgeSorter*>::iterator it_ws = m_wsvec.begin();
281 while (it_ws != m_wsvec.end()) {
316 if ((*it).bx() ==
bx)