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;
161 if (dttrig->getContainer()->empty())
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++) {
175 if (dttrig->bxEmpty(
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;
215 if (cand && !cand->
empty())
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)
const edm::EventSetup & c
TFtracks_const_iter begin()
L1MuDTAddressArray address() const
get address-array for this muon candidate
bool getByToken(EDGetToken token, Handle< PROD > &result) const
TrackClass tc() const
get track-class
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
const L1MuDTSectorProcessor * sp(const L1MuDTSecProcId &) const
get a pointer to a Sector Processor
int sector() const
return sector number
virtual ~L1MuDTTrackFinder()
destructor
void reset()
reset the barrel MTTF
int numberOfTracks()
get number of muon candidates found by the barrel MTTF
unsigned getDataWord() const
return data word
L1MuDTTrackFinder(const edm::ParameterSet &ps, edm::ConsumesCollector &&iC)
constructor
const L1MuDTSecProcId & spid() const
return Sector Processor in which the muon candidate was found
SPmap::iterator SPmap_iter
std::vector< L1MuRegionalCand >::const_iterator TFtracks_const_iter
container for muon candidates
bool empty() const override
is it an empty muon candidate?
int bx() const
return bunch crossing identifier
int wheel() const
return wheel number
static L1MuDTTFConfig * m_config
Track Finder configuration.
void reset(double vett[256])