16 #ifndef PHASE2GMT_TAUTO3MU 17 #define PHASE2GMT_TAUTO3MU 35 std::vector<std::pair<unsigned, unsigned> > &nearby3mu);
66 std::vector<std::pair<int, unsigned int> > mu_phis;
67 for (
unsigned i = 0;
i <
trkMus.size(); ++
i) {
68 mu_phis.push_back(std::make_pair(
trkMus.at(
i).hwPhi(),
i));
71 std::sort(mu_phis.begin(), mu_phis.end());
73 std::vector<std::pair<unsigned, unsigned> > nearby3mu;
74 std::vector<int> mu3mass;
77 for (
unsigned i = 0;
i <
trkMus.size(); ++
i) {
78 int trimass =
Get3MuMass(
i, nearby3mu.at(
i).first, nearby3mu.at(
i).second);
79 mu3mass.push_back(trimass);
94 return mass12 + mass23 + mass31;
113 std::vector<std::pair<unsigned, unsigned> > &nearby3mu) {
116 std::vector<std::pair<int, unsigned int> >
temp(mu_phis);
119 temp.insert(
temp.begin(), mu_phis.back());
120 temp.insert(
temp.begin(), *(mu_phis.rbegin() - 1));
122 temp.push_back(mu_phis.front());
123 temp.push_back(*(mu_phis.begin() + 1));
125 for (
unsigned i = 2;
i <
temp.size() - 2; ++
i) {
128 int mincomb(combleft);
131 if (combcenter < mincomb) {
133 mincomb = combcenter;
137 if (combright < mincomb) {
141 nearby3mu.push_back(neighbors);
150 return dPhi1 + dPhi2;
154 #endif // ----- #ifndef PHASE2GMT_TAUTO3MU -----
int GetDiMass(const l1t::TrackerMuon &mu1, const l1t::TrackerMuon &mu2)
U second(std::pair< T, U > const &p)
int deltaEta(const int eta1, const int eta2)
Cos< T >::type cos(const T &t)
Tauto3Mu(const edm::ParameterSet &iConfig)
std::vector< ConvertedTTTrack > * convertedTracks
bool Find3MuComb(std::vector< l1t::TrackerMuon > &trkMus)
int Get3MuMass(unsigned target, unsigned obj1, unsigned obj2)
int Get3MuDphi(unsigned target, unsigned obj1, unsigned obj2)
bool GetTau3Mu(std::vector< l1t::TrackerMuon > &trkMus, std::vector< ConvertedTTTrack > &convertedTracks)
std::vector< l1t::TrackerMuon > * trkMus
bool FindCloset3Mu(std::vector< std::pair< int, unsigned int > > &mu_phis, std::vector< std::pair< unsigned, unsigned > > &nearby3mu)
int deltaPhi(int phi1, int phi2)