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;
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;
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)
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()
bool bxEmpty(int step) const
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
bool empty() const override
is it an empty muon candidate?
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
Phi_Container const * getContainer() const
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])