18 const static SelectionTypeStringToEnum selectionTypeStringToEnumMap[] = {
28 for(
int i = 0; selectionTypeStringToEnumMap[
i].label && (!
found); ++
i)
29 if (! strcmp(label.c_str(), selectionTypeStringToEnumMap[
i].label)) {
31 value = selectionTypeStringToEnumMap[
i].value;
35 if (! found)
throw cms::Exception(
"MuonSelectorError") << label <<
" is not a recognized SelectionType";
75 LocalPoint thisPosition(thisSegment.localPosition());
78 double sigmax =
sqrt(
C[3][3]+thisSegment.localPositionError().xx() );
79 double sigmay =
sqrt(
C[4][4]+thisSegment.localPositionError().yy() );
81 bool X_MatchFound =
false, Y_MatchFound =
false, Dir_MatchFound =
false;
84 if ( ( (
std::abs(thisPosition.x()-r3FinalReco.x())/sigmax ) < MaxPullX ) || (
std::abs(thisPosition.x()-r3FinalReco.x()) < MaxDiffX ) ) X_MatchFound =
true;
85 if ( ( (
std::abs(thisPosition.y()-r3FinalReco.y())/sigmay ) < MaxPullY ) || (
std::abs(thisPosition.y()-r3FinalReco.y()) < MaxDiffY ) ) Y_MatchFound =
true;
88 return (X_MatchFound && Y_MatchFound && Dir_MatchFound);
const LocalPoint & localTrackPosAtSurface() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
SelectionType
Selector type.
const ME0Segment & me0segment() const
const AlgebraicSymMatrix55 & localTrackCov() const
Abs< T >::type abs(const T &t)
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
double deltaPhi(double phi1, double phi2)
SelectionType selectionTypeFromString(const std::string &label)
const LocalVector & localTrackMomAtSurface() const