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());
113 iEvent.
put(
std::move(valueMapMuCorrData),
"muCorrData");
143 return reco::MuonMETCorrectionData::Type::MuonCandidateValuesUsed;
145 return reco::MuonMETCorrectionData::Type::NotUsed;
162 if (fabs(globTk->dxy(beamSpotPosition)) > fabs(
maxd0_))
164 if (siTk->numberOfValidHits() <
minnHits_)
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
double eta() const final
momentum pseudorapidity
virtual TrackRef innerTrack() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
static FreeTrajectoryState getFreeTrajectoryState(const edm::EventSetup &, const reco::Track &)
get FreeTrajectoryState from different track representations
void useDefaultPropagator()
use the default propagator
Global3DPoint GlobalPoint
void loadParameters(const edm::ParameterSet &, edm::ConsumesCollector &)
TrackDetectorAssociator trackAssociator_
double pt() const final
transverse momentum
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
reco::MuonMETCorrectionData::Type decide_correction_type(const reco::Muon &muon, const math::XYZPoint &beamSpotPosition)
bool isTrackerMuon() const override
bool useTrackAssociatorPositions_
bool isGlobalMuon() const override
TrackAssociatorParameters trackAssociatorParameters_
void determine_deltax_deltay(double &deltax, double &deltay, const reco::Muon &muon, double bfield, edm::Event &iEvent, const edm::EventSetup &iSetup)
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
virtual TrackRef outerTrack() const
reference to Track reconstructed in the muon detector only
Namespace of DDCMS conversion namespace.
void produce(edm::Event &, const edm::EventSetup &) override
XYZPointD XYZPoint
point in space with cartesian internal representation
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
MuonMETValueMapProducer(const edm::ParameterSet &)
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
bool should_type_MuonCandidateValuesUsed(const reco::Muon &muon, const math::XYZPoint &beamSpotPosition)
TrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const AssociatorParameters &)
const Point & position() const
position
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector