6 : verbose_(iConfig.getParameter<
int>(
"verbose")), sector_(sector), wheel_(wheel) {
10 }
else if (sector == 0) {
55 for (
const auto& stub : stubsAll) {
56 if (stub->bxNum() !=
bx)
59 if ((stub->scNum() ==
nextSector_ && stub->phi() >= -112) ||
64 seeds.push_back(stub);
65 stubs.push_back(stub);
67 stubs.push_back(stub);
70 stubs.push_back(stub);
77 if (seeds.size() > 1) {
78 std::sort(seeds.begin(), seeds.end(),
sorter);
81 for (
const auto seed : seeds) {
82 std::pair<bool, L1MuKBMTrack> trackInfo = trackMaker->
chain(
seed, stubs);
83 if (trackInfo.first) {
84 if (
seed->stNum() == 2)
85 pretracks2.push_back(trackInfo.second);
86 if (
seed->stNum() == 3)
87 pretracks3.push_back(trackInfo.second);
88 if (
seed->stNum() == 4)
89 pretracks4.push_back(trackInfo.second);
104 printf(
" -----Sector Processor Kalman Tracks-----\n");
105 for (
const auto& track1 : out)
106 printf(
"Kalman Track charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f\n",
111 track1.curvatureAtVertex(),
112 track1.curvatureAtMuon(),
113 int(track1.stubs().size()),
116 track1.ptUnconstrained());
125 for (
uint i = 0;
i < tracks.size(); ++
i) {
128 for (
uint j = 0;
j < tracks.size(); ++
j) {
132 if (tracks[
i].overlapTrack(tracks[
j])) {
133 if (tracks[
i].rank() < tracks[
j].rank()) {
135 }
else if (tracks[
i].rank() == tracks[
j].rank()) {
136 if (!tracks[j].stubs()[0]->tag())
143 out.push_back(tracks[
i]);
153 for (
uint i = 0;
i < tracks1.size(); ++
i) {
156 for (
uint j = 0;
j < tracks2.size(); ++
j) {
157 if (tracks1[
i].overlapTrack(tracks2[
j])) {
158 if (tracks1[
i].rank() <= tracks2[
j].rank()) {
164 out.push_back(tracks1[
i]);
174 for (
uint i = 0;
i < tracks1.size(); ++
i) {
177 for (
uint j = 0;
j < tracks2.size(); ++
j) {
178 if (tracks1[
i].overlapTrack(tracks2[
j])) {
179 if (tracks1[
i].rank() < tracks2[
j].rank()) {
185 out.push_back(tracks1[
i]);
196 else if (in.size() == 3) {
200 if (in[2].
pt() >= in[0].pt()) {
214 if (s2_3.
pt() >= s2_2.
pt()) {
232 if (in[2].
pt() >= in[0].
pt()) {
239 if (in[3].
pt() >= in[1].
pt()) {
252 if (s2_4.
pt() >= s2_1.
pt()) {
260 if (s2_3.
pt() >= s2_2.
pt()) {
289 if (!cleaned32.empty())
290 step1.insert(step1.end(), cleaned32.begin(), cleaned32.end());
291 if (!cleaned23.empty())
292 step1.insert(step1.end(), cleaned23.begin(), cleaned23.end());
314 if (!cleanedSorted4.empty())
315 step2.insert(step2.end(), cleanedSorted4.begin(), cleanedSorted4.end());
316 if (!cleanedSorted23.empty())
317 step2.insert(step2.end(), cleanedSorted23.begin(), cleanedSorted23.end());
L1MuKBMTrackCollection cleanLower(const L1MuKBMTrackCollection &tracks1, const L1MuKBMTrackCollection &tracks2)
double pt() const final
transverse momentum
std::vector< edm::Ref< L1MuKBMTCombinedStubCollection > > L1MuKBMTCombinedStubRefVector
L1MuKBMTrackCollection cleanHigher(const L1MuKBMTrackCollection &tracks1, const L1MuKBMTrackCollection &tracks2)
~L1TMuonBarrelKalmanRegionModule()
L1MuKBMTrackCollection process(L1TMuonBarrelKalmanAlgo *, const L1MuKBMTCombinedStubRefVector &stubs, int bx)
L1MuKBMTrackCollection cleanRegion(const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &, const L1MuKBMTrackCollection &)
std::pair< bool, L1MuKBMTrack > chain(const L1MuKBMTCombinedStubRef &, const L1MuKBMTCombinedStubRefVector &)
L1MuKBMTrackCollection sort4(const L1MuKBMTrackCollection &in)
std::vector< L1MuKBMTrack > L1MuKBMTrackCollection
L1MuKBMTrackCollection selfClean(const L1MuKBMTrackCollection &tracks)
L1TMuonBarrelKalmanRegionModule(const edm::ParameterSet &, int wheel, int sector)