58 : minPt_(iConfig.getParameter<double>(
"minPt")),
59 maxEta_(iConfig.getParameter<double>(
"maxEta")),
60 isAlsoTkMu_(iConfig.getParameter<
bool>(
"isAlsoTkMu")),
61 maxNormChi2_(iConfig.getParameter<double>(
"maxNormChi2")),
62 maxd0_(iConfig.getParameter<double>(
"maxd0")),
63 minnHits_(iConfig.getParameter<
int>(
"minnHits")),
64 minnValidStaHits_(iConfig.getParameter<
int>(
"minnValidStaHits")),
65 useTrackAssociatorPositions_(iConfig.getParameter<
bool>(
"useTrackAssociatorPositions")),
66 useHO_(iConfig.getParameter<
bool>(
"useHO")),
67 towerEtThreshold_(iConfig.getParameter<double>(
"towerEtThreshold")),
68 useRecHits_(iConfig.getParameter<
bool>(
"useRecHits")) {
77 produces<edm::ValueMap<reco::MuonMETCorrectionData>>(
"muCorrData");
93 std::vector<reco::MuonMETCorrectionData> muCorrDataList;
103 muCorrDataList.push_back(muMETCorrData);
106 auto valueMapMuCorrData = std::make_unique<edm::ValueMap<reco::MuonMETCorrectionData>>();
110 dataFiller.insert(
muons, muCorrDataList.begin(), muCorrDataList.end());
124 if (
muon.isGlobalMuon())
125 mu_track =
muon.globalTrack();
126 else if (
muon.isTrackerMuon() ||
muon.isRPCMuon() ||
muon.isGEMMuon() ||
muon.isME0Muon())
127 mu_track =
muon.innerTrack();
129 mu_track =
muon.outerTrack();
143 return reco::MuonMETCorrectionData::Type::MuonCandidateValuesUsed;
145 return reco::MuonMETCorrectionData::Type::NotUsed;
151 if (!
muon.isGlobalMuon())
162 if (fabs(globTk->dxy(beamSpotPosition)) > fabs(
maxd0_))
164 if (siTk->numberOfValidHits() <
minnHits_)