16 const static SelectionTypeStringToEnum selectionTypeStringToEnumMap[] = {
21 for (
int i = 0; selectionTypeStringToEnumMap[
i].label && (!
found); ++
i)
22 if (!strcmp(label.c_str(), selectionTypeStringToEnumMap[
i].label)) {
24 value = selectionTypeStringToEnumMap[
i].value;
29 throw cms::Exception(
"MuonSelectorError") << label <<
" is not a recognized SelectionType";
40 return isGoodMuon(me0muon, 3, 4, 20, 20, 3.14);
58 double MaxDiffPhiDir) {
71 bool X_MatchFound =
false, Y_MatchFound =
false, Dir_MatchFound =
false;
73 if (((
std::abs(thisPosition.x() - r3FinalReco.
x()) / sigmax) < MaxPullX) ||
74 (
std::abs(thisPosition.x() - r3FinalReco.
x()) < MaxDiffX))
76 if (((
std::abs(thisPosition.y() - r3FinalReco.
y()) / sigmay) < MaxPullY) ||
77 (
std::abs(thisPosition.y() - r3FinalReco.
y()) < MaxDiffY))
81 Dir_MatchFound =
true;
83 return (X_MatchFound && Y_MatchFound && Dir_MatchFound);
constexpr double deltaPhi(double phi1, double phi2)
const LocalPoint & localTrackPosAtSurface() const
SelectionType
Selector type.
const ME0Segment & me0segment() const
const AlgebraicSymMatrix55 & localTrackCov() const
Abs< T >::type abs(const T &t)
LocalVector localDirection() const override
Local direction.
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
LocalPoint localPosition() const override
SelectionType selectionTypeFromString(const std::string &label)
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const LocalVector & localTrackMomAtSurface() const
LocalError localPositionError() const override