4 int rank1 =
source.hwQual();
5 int rank2 =
other.hwQual();
7 if ((eq && rank1 <= rank2) || ((!eq) && rank1 < rank2))
10 for (
const auto& s1 :
source.stubs()) {
12 for (
const auto& s2 :
other.stubs()) {
13 if ((*s1) == (*s2) && (!
keep))
26 for (
const auto& s1 :
source.stubs()) {
28 for (
const auto& s2 :
other.stubs()) {
29 if ((*s1) == (*s2) && (!
keep))
40 std::vector<l1t::SAMuon>
out;
41 for (
unsigned int i = 0;
i < tfMuons.size(); ++
i) {
43 for (
unsigned int j = 0;
j < tfMuons.size(); ++
j) {
48 if (
source.stubs().size() > 1)
55 const std::vector<l1t::SAMuon>&
omtf,
56 const std::vector<l1t::SAMuon>&
emtf) {
57 std::vector<l1t::SAMuon>
out =
emtf;
58 for (
unsigned int i = 0;
i <
omtf.size(); ++
i) {
63 if (
source.stubs().size() > 1)
66 for (
unsigned int i = 0;
i <
bmtf.size(); ++
i) {
71 if (
source.stubs().size() > 1)
81 int pt1 = track1.
pt();
82 int pt2 = track2.
pt();
99 while (
in.size() < 32)
100 in.push_back(nullTrack);
103 for (
uint i = 0;
i < 32;
i =
i + 2) {
106 for (
uint i = 1;
i < 31;
i =
i + 2) {
111 std::vector<l1t::SAMuon>
out;
113 if (!
track.stubs().empty() &&
out.size() < 12)
120 std::vector<l1t::SAMuon>
out;
123 std::vector<l1t::SAMuon>
bmtf;
145 omtf_cleaned.insert(omtf_cleaned.end(), omtf_neg_cleaned.begin(), omtf_neg_cleaned.end());
150 emtf_cleaned.insert(emtf_cleaned.end(), emtf_neg_cleaned.begin(), emtf_neg_cleaned.end());
153 std::vector<l1t::SAMuon> cleaned =
interTFClean(
bmtf, omtf_cleaned, emtf_cleaned);
void swap(std::vector< l1t::SAMuon > &, int i, int j)
double pt() const final
transverse momentum
void sort(std::vector< l1t::SAMuon > &in)
std::vector< l1t::SAMuon > interTFClean(const std::vector< l1t::SAMuon > &bmtf, const std::vector< l1t::SAMuon > &omtf, const std::vector< l1t::SAMuon > &emtf)
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
std::vector< edm::Ref< MuonStubCollection > > MuonStubRefVector
std::vector< l1t::SAMuon > cleanTF(const std::vector< l1t::SAMuon > &tfMuons)
void overlapCleanTrack(l1t::SAMuon &source, const l1t::SAMuon &other, bool eq)
void overlapCleanTrackInter(l1t::SAMuon &source, const l1t::SAMuon &other)
std::vector< l1t::SAMuon > cleanTFMuons(const std::vector< l1t::SAMuon > &muons)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
static std::string const source
void setP4(const LorentzVector &p4) final
set 4-momentum