29 if (
a->getQ() >
b->getQ())
31 else if (
a->getQ() ==
b->getQ() && aRefLayerLogicNum < bRefLayerLogicNum) {
33 }
else if (
a->getQ() ==
b->getQ() && aRefLayerLogicNum == bRefLayerLogicNum &&
a->getDisc() >
b->getDisc())
35 else if (
a->getQ() ==
b->getQ() && aRefLayerLogicNum == bRefLayerLogicNum &&
a->getDisc() ==
b->getDisc() &&
36 a->getPatternNumber() >
b->getPatternNumber())
38 else if (
a->getQ() ==
b->getQ() && aRefLayerLogicNum == bRefLayerLogicNum &&
a->getDisc() ==
b->getDisc() &&
39 a->getPatternNumber() ==
b->getPatternNumber() &&
a->getRefHitNumber() <
b->getRefHitNumber())
53 if (
a->getQ() >
b->getQ())
55 else if (
a->getQ() ==
b->getQ()) {
57 }
else if (
a->getQ() ==
b->getQ() &&
a->getDisc() >
b->getDisc())
59 else if (
a->getQ() ==
b->getQ() &&
a->getDisc() ==
b->getDisc() &&
a->getPatternNumber() >
b->getPatternNumber())
61 else if (
a->getQ() ==
b->getQ() &&
a->getDisc() ==
b->getDisc() &&
a->getPatternNumber() ==
b->getPatternNumber() &&
62 a->getRefHitNumber() <
b->getRefHitNumber())
76 if (
a->getDisc() >
b->getDisc())
78 else if (
a->getDisc() ==
b->getDisc() &&
a->getPatternNumber() >
b->getPatternNumber())
80 else if (
a->getDisc() ==
b->getDisc() &&
a->getPatternNumber() ==
b->getPatternNumber() &&
81 a->getRefHitNumber() <
b->getRefHitNumber())
98 if (aRefLayerLogicNum < bRefLayerLogicNum) {
104 else if (aRefLayerLogicNum == bRefLayerLogicNum &&
a->getDisc() >
b->getDisc())
106 else if (aRefLayerLogicNum == bRefLayerLogicNum &&
a->getDisc() ==
b->getDisc() &&
107 a->getPatternNumber() >
b->getPatternNumber())
109 else if (aRefLayerLogicNum == bRefLayerLogicNum &&
a->getDisc() ==
b->getDisc() &&
110 a->getPatternNumber() ==
b->getPatternNumber() &&
a->getRefHitNumber() <
b->getRefHitNumber())
117 std::sort(muonsIN.rbegin(), muonsIN.rend(), customLessByLLH);
119 std::sort(muonsIN.rbegin(), muonsIN.rend(), customLessByFPLLH);
121 std::sort(muonsIN.rbegin(), muonsIN.rend(), customLessByReLayer);
123 std::sort(muonsIN.rbegin(), muonsIN.rend(), customLess);
126 std::vector<AlgoMuonEtaFix> refHitCleanCandsFixedEta;
127 for (
const auto& muIN : muonsIN) {
128 if (!muIN->isValid())
133 refHitCleanCandsFixedEta.push_back(*muIN);
134 auto killIt = refHitCleanCandsFixedEta.end();
138 for (
auto it1 = refHitCleanCandsFixedEta.begin(); it1 != refHitCleanCandsFixedEta.end(); ++it1) {
139 for (
auto it2 =
std::next(it1); it2 != refHitCleanCandsFixedEta.end(); ++it2) {
140 if (it2->isValid() &&
144 ((
abs(it1->getEtaHw()) == 75 ||
abs(it1->getEtaHw()) == 79 ||
abs(it1->getEtaHw()) == 92)) &&
145 ((
abs(it2->getEtaHw()) != 75 &&
abs(it2->getEtaHw()) != 79 &&
abs(it2->getEtaHw()) != 92)))
146 it1->fixedEta = it2->getEtaHw();
150 if (killIt != refHitCleanCandsFixedEta.end())
151 refHitCleanCandsFixedEta.erase(killIt);
156 for (
const auto&
mu : refHitCleanCandsFixedEta) {
160 if (refHitCleanCands.size() >= 3)
164 while (refHitCleanCands.size() < 3)
165 refHitCleanCands.emplace_back(
new AlgoMuon());
167 return refHitCleanCands;
int procPhiToGmtPhi(int procPhi) const
unsigned int fwVersion() const
Container::value_type value_type
Abs< T >::type abs(const T &t)
const std::vector< int > & getRefToLogicNumber() const
const std::string & getGhostBusterType() const
std::vector< AlgoMuonPtr > AlgoMuons
const OMTFConfiguration * omtfConfig