4 : verbose_(iConfig.getParameter<
int>(
"verbose")), sector_(sector) {
25 tracksM2.insert(tracksM2.end(),
tmp.begin(),
tmp.end());
27 tracksM1.insert(tracksM1.end(),
tmp.begin(),
tmp.end());
29 tracks0.insert(tracks0.end(),
tmp.begin(),
tmp.end());
31 tracksP1.insert(tracksP1.end(),
tmp.begin(),
tmp.end());
33 tracksP2.insert(tracksP2.end(),
tmp.begin(),
tmp.end());
53 out.chargeValid_1 = 0;
71 out.chargeValid_2 = 0;
89 out.chargeValid_3 = 0;
102 out.pt_1 =
mu.hwPt();
103 out.qual_1 =
mu.hwQual();
104 out.eta_1 =
mu.hwEta();
105 out.HF_1 =
mu.hwHF();
106 out.phi_1 =
mu.hwPhi();
108 out.charge_1 =
mu.hwSign();
109 out.chargeValid_1 =
mu.hwSignValid();
110 out.dxy_1 =
mu.hwDXY();
117 out.ptSTA_1 =
mu.hwPtUnconstrained();
122 out.pt_2 =
mu.hwPt();
123 out.qual_2 =
mu.hwQual();
124 out.eta_2 =
mu.hwEta();
125 out.HF_2 =
mu.hwHF();
126 out.phi_2 =
mu.hwPhi();
128 out.charge_2 =
mu.hwSign();
129 out.chargeValid_2 =
mu.hwSignValid();
130 out.dxy_2 =
mu.hwDXY();
138 out.ptSTA_2 =
mu.hwPtUnconstrained();
143 out.pt_3 =
mu.hwPt();
144 out.qual_3 =
mu.hwQual();
145 out.eta_3 =
mu.hwEta();
146 out.HF_3 =
mu.hwHF();
147 out.phi_3 =
mu.hwPhi();
149 out.charge_3 =
mu.hwSign();
150 out.chargeValid_3 =
mu.hwSignValid();
151 out.dxy_3 =
mu.hwDXY();
158 out.ptSTA_3 =
mu.hwPtUnconstrained();
166 <<
out.phi_1 <<
" " <<
out.charge_1 <<
" " <<
out.chargeValid_1 <<
" " <<
out.dxy_1 <<
" " <<
out.addr1_1
167 <<
" " <<
out.addr2_1 <<
" " <<
out.addr3_1 <<
" " <<
out.addr4_1 <<
" " <<
out.wheel_1 <<
" " 168 <<
out.ptSTA_1 <<
" " <<
out.pt_2 <<
" " <<
out.qual_2 <<
" " <<
out.eta_2 <<
" " <<
out.HF_2 <<
" " 169 <<
out.phi_2 <<
" " <<
out.charge_2 <<
" " <<
out.chargeValid_2 <<
" " <<
out.dxy_2 <<
" " <<
out.addr1_2
170 <<
" " <<
out.addr2_2 <<
" " <<
out.addr3_2 <<
" " <<
out.addr4_2 <<
" " <<
out.wheel_2 <<
" " 171 <<
out.ptSTA_2 <<
" " <<
out.pt_3 <<
" " <<
out.qual_3 <<
" " <<
out.eta_3 <<
" " <<
out.HF_3 <<
" " 172 <<
out.phi_3 <<
" " <<
out.charge_3 <<
" " <<
out.chargeValid_3 <<
" " <<
out.dxy_3 <<
" " <<
out.addr1_3
173 <<
" " <<
out.addr2_3 <<
" " <<
out.addr3_3 <<
" " <<
out.addr4_3 <<
" " <<
out.wheel_3 <<
" " 174 <<
out.ptSTA_3 << std::endl;
225 for (
const auto& track1 : coll1) {
245 for (
const auto& track2 : coll2) {
246 if (!track1.overlapTrack(track2))
249 if (track1.rank() < track2.rank())
252 if ((track1.rank() == track2.rank()) && (fabs(track1.stubs()[0]->whNum()) < fabs(track2.stubs()[0]->whNum())))
256 out.push_back(track1);
259 temp.setPtEtaPhi(0, 0, 0);
273 for (
const auto& track1 : coll1) {
278 for (
const auto& track2 : coll2) {
279 if (!track1.overlapTrack(track2))
282 if (track1.rank() < track2.rank())
285 if ((track1.rank() == track2.rank()) && (fabs(track1.stubs()[0]->whNum()) < fabs(track2.stubs()[0]->whNum())))
289 for (
const auto& track2 : coll3) {
290 if (!track1.overlapTrack(track2))
293 if (track1.rank() < track2.rank())
296 if ((track1.rank() == track2.rank()) && (fabs(track1.stubs()[0]->whNum()) < fabs(track2.stubs()[0]->whNum())))
301 out.push_back(track1);
304 temp.setPtEtaPhi(0, 0, 0);
321 if (
pt1 != 0.0 &&
pt2 != 0.0) {
323 trackInfo[
i] = trackInfo[
j];
326 if (
pt2 != 0.0 &&
pt1 == 0.0) {
327 trackInfo[
i] = trackInfo[
j];
345 std::map<uint, L1MuKBMTrack> trackInfo;
346 std::map<uint, double> ptInfo;
351 if (minus2.size() > 1) {
352 ptInfo[0] = minus2[0].pt();
353 trackInfo[0] = minus2[0];
354 ptInfo[1] = minus2[1].pt();
355 trackInfo[1] = minus2[1];
356 }
else if (minus2.size() == 1) {
357 if (minus2[0].stubs()[0]->tag()) {
358 ptInfo[1] = minus2[0].pt();
359 trackInfo[1] = minus2[0];
361 ptInfo[0] = minus2[0].pt();
362 trackInfo[0] = minus2[0];
366 if (minus1.size() > 1) {
367 ptInfo[2] = minus1[0].pt();
368 trackInfo[2] = minus1[0];
369 ptInfo[3] = minus1[1].pt();
370 trackInfo[3] = minus1[1];
371 }
else if (minus1.size() == 1) {
372 if (minus1[0].stubs()[0]->tag()) {
373 ptInfo[3] = minus1[0].pt();
374 trackInfo[3] = minus1[0];
376 ptInfo[2] = minus1[0].pt();
377 trackInfo[2] = minus1[0];
381 if (
zero.size() > 1) {
382 ptInfo[4] =
zero[0].pt();
383 trackInfo[4] =
zero[0];
384 ptInfo[5] =
zero[1].pt();
385 trackInfo[5] =
zero[1];
386 }
else if (
zero.size() == 1) {
387 if (
zero[0].stubs()[0]->tag()) {
388 ptInfo[5] =
zero[0].pt();
389 trackInfo[5] =
zero[0];
391 ptInfo[4] =
zero[0].pt();
392 trackInfo[4] =
zero[0];
396 if (plus1.size() > 1) {
397 ptInfo[6] = plus1[0].pt();
398 trackInfo[6] = plus1[0];
399 ptInfo[7] = plus1[1].pt();
400 trackInfo[7] = plus1[1];
401 }
else if (plus1.size() == 1) {
402 if (plus1[0].stubs()[0]->tag()) {
403 ptInfo[7] = plus1[0].pt();
404 trackInfo[7] = plus1[0];
406 ptInfo[6] = plus1[0].pt();
407 trackInfo[6] = plus1[0];
411 if (plus2.size() > 1) {
412 ptInfo[8] = plus2[0].pt();
413 trackInfo[8] = plus2[0];
414 ptInfo[9] = plus2[1].pt();
415 trackInfo[9] = plus2[1];
416 }
else if (plus2.size() == 1) {
417 if (plus2[0].stubs()[0]->tag()) {
418 ptInfo[9] = plus2[0].pt();
419 trackInfo[9] = plus2[0];
421 ptInfo[8] = plus2[0].pt();
422 trackInfo[8] = plus2[0];
427 swap(ptInfo, trackInfo, 0, 5);
428 swap(ptInfo, trackInfo, 1, 6);
429 swap(ptInfo, trackInfo, 2, 7);
430 swap(ptInfo, trackInfo, 3, 8);
431 swap(ptInfo, trackInfo, 4, 9);
433 swap(ptInfo, trackInfo, 0, 3);
434 swap(ptInfo, trackInfo, 1, 4);
435 swap(ptInfo, trackInfo, 5, 8);
436 swap(ptInfo, trackInfo, 6, 9);
438 swap(ptInfo, trackInfo, 0, 2);
439 swap(ptInfo, trackInfo, 3, 6);
440 swap(ptInfo, trackInfo, 7, 9);
442 swap(ptInfo, trackInfo, 0, 1);
443 swap(ptInfo, trackInfo, 2, 4);
444 swap(ptInfo, trackInfo, 5, 7);
445 swap(ptInfo, trackInfo, 8, 9);
447 swap(ptInfo, trackInfo, 1, 2);
448 swap(ptInfo, trackInfo, 3, 5);
449 swap(ptInfo, trackInfo, 4, 6);
450 swap(ptInfo, trackInfo, 7, 8);
452 swap(ptInfo, trackInfo, 1, 3);
453 swap(ptInfo, trackInfo, 2, 5);
454 swap(ptInfo, trackInfo, 4, 7);
455 swap(ptInfo, trackInfo, 6, 8);
457 swap(ptInfo, trackInfo, 2, 3);
460 if (ptInfo[0] != 0.0)
461 out.push_back(trackInfo[0]);
462 if (ptInfo[1] != 0.0)
463 out.push_back(trackInfo[1]);
464 if (ptInfo[2] != 0.0)
465 out.push_back(trackInfo[2]);
l1t::RegionalMuonCand convertToBMTF(const L1MuKBMTrack &track)
std::vector< L1TMuonBarrelKalmanRegionModule > regions_
T getParameter(std::string const &) const
L1MuKBMTrackCollection cleanNeighbors(const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &)
std::vector< edm::Ref< L1MuKBMTCombinedStubCollection > > L1MuKBMTCombinedStubRefVector
void verbose(L1TMuonBarrelKalmanAlgo *, const L1MuKBMTrackCollection &)
bmtf_out makeWord(L1TMuonBarrelKalmanAlgo *, const L1MuKBMTrackCollection &)
L1MuKBMTrackCollection process(L1TMuonBarrelKalmanAlgo *, const L1MuKBMTCombinedStubRefVector &stubs, int bx)
auto const & tracks
cannot be loose
void swap(std::map< uint, double > &info, std::map< uint, L1MuKBMTrack > &trackInfo, uint i, uint j)
L1MuKBMTrackCollection cleanNeighbor(const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &)
std::vector< L1MuKBMTrack > L1MuKBMTrackCollection
L1TMuonBarrelKalmanSectorProcessor(const edm::ParameterSet &, int sector)
L1MuKBMTrackCollection wedgeSort(const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &)
~L1TMuonBarrelKalmanSectorProcessor()