6 verbose_(iConfig.getParameter<
int>(
"verbose")),
62 for (
const auto& stub : stubsAll) {
63 if (stub->bxNum()!=bx)
70 seeds.push_back(stub);
71 stubs.push_back(stub);
74 stubs.push_back(stub);
77 stubs.push_back(stub);
86 std::sort(seeds.begin(),seeds.end(),
sorter);
90 for (
const auto seed : seeds) {
91 std::pair<bool,L1MuKBMTrack> trackInfo = trackMaker->
chain(
seed,stubs);
92 if (trackInfo.first) {
94 pretracks2.push_back(trackInfo.second);
96 pretracks3.push_back(trackInfo.second);
98 pretracks4.push_back(trackInfo.second);
116 printf(
" -----Sector Processor Kalman Tracks-----\n");
117 for (
const auto& track1 :out)
118 printf(
"Kalman Track charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f\n",track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),
int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained());
128 for (
uint i=0;
i<tracks.size();++
i) {
131 for (
uint j=0;j<tracks.size();++j) {
135 if (tracks[
i].overlapTrack(tracks[j])) {
136 if (tracks[
i].rank()<tracks[j].rank()) {
139 else if (tracks[
i].rank()==tracks[j].rank()) {
140 if (!tracks[j].stubs()[0]->tag())
147 out.push_back(tracks[
i]);
157 for (
uint i=0;
i<tracks1.size();++
i) {
160 for (
uint j=0;j<tracks2.size();++j) {
161 if (tracks1[
i].overlapTrack(tracks2[j])) {
162 if (tracks1[
i].rank()<=tracks2[j].rank()) {
168 out.push_back(tracks1[
i]);
177 for (
uint i=0;
i<tracks1.size();++
i) {
180 for (
uint j=0;j<tracks2.size();++j) {
181 if (tracks1[
i].overlapTrack(tracks2[j])) {
182 if (tracks1[
i].rank()<tracks2[j].rank()) {
188 out.push_back(tracks1[
i]);
201 else if (in.size()==3) {
205 if (in[2].
pt()>=in[0].pt()) {
220 if (s2_3.
pt()>=s2_2.
pt()) {
240 if (in[2].
pt()>=in[0].
pt()) {
248 if (in[3].
pt()>=in[1].
pt()) {
263 if (s2_4.
pt()>=s2_1.
pt()) {
272 if (s2_3.
pt()>=s2_2.
pt()) {
308 if (!cleaned32.empty())
309 step1.insert(step1.end(),cleaned32.begin(),cleaned32.end());
310 if (!cleaned23.empty())
311 step1.insert(step1.end(),cleaned23.begin(),cleaned23.end());
335 if (!cleanedSorted4.empty())
336 step2.insert(step2.end(),cleanedSorted4.begin(),cleanedSorted4.end());
337 if (!cleanedSorted23.empty())
338 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)