Matcher of reconstructed objects to L1 Muons. More...
#include <MuonAnalysis/MuonAssociators/interface/L1MuonMatcherAlgo.h>
Public Member Functions | |
TrajectoryStateOnSurface | extrapolate (const reco::Track &tk) const |
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails. | |
TrajectoryStateOnSurface | extrapolate (const reco::Candidate &tk) const |
Extrapolate reco::Candidate to the muon station 2, return an invalid TSOS if it fails. | |
TrajectoryStateOnSurface | extrapolate (const reco::Track &tk) const |
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails. | |
TrajectoryStateOnSurface | extrapolate (const reco::Candidate &tk) const |
Extrapolate reco::Candidate to the muon station 2, return an invalid TSOS if it fails. | |
TrajectoryStateOnSurface | extrapolate (const SimTrack &tk, const edm::SimVertexContainer &vtx) const |
Extrapolate a SimTrack to the muon station 2, return an invalid TSOS if it fails. Requires SimVertices to know where to start from. | |
TrajectoryStateOnSurface | extrapolate (const FreeTrajectoryState &state) const |
Extrapolate a FreeTrajectoryState to the muon station 2, return an invalid TSOS if it fails. | |
TrajectoryStateOnSurface | extrapolate (const FreeTrajectoryState &state) const |
Extrapolate a FreeTrajectoryState to the muon station 2, return an invalid TSOS if it fails. | |
void | init (const edm::EventSetup &iSetup) |
Call this method at the beginning of each run, to initialize geometry, magnetic field and propagators. | |
void | init (const edm::EventSetup &iSetup) |
Call this method at the beginning of each run, to initialize geometry, magnetic field and propagators. | |
L1MuonMatcherAlgo (const edm::ParameterSet &iConfig) | |
L1MuonMatcherAlgo (const edm::ParameterSet &iConfig) | |
int | match (const reco::Track &tk, const std::vector< l1extra::L1MuonParticle > &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
bool | match (const reco::Track &tk, const l1extra::L1MuonParticle &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
int | match (const reco::Candidate &c, const std::vector< l1extra::L1MuonParticle > &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
int | match (const SimTrack &tk, const edm::SimVertexContainer &vtxs, const std::vector< l1extra::L1MuonParticle > &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
int | match (TrajectoryStateOnSurface &propagated, const std::vector< l1extra::L1MuonParticle > &l1, float &deltaR, float &deltaPhi) const |
bool | match (const reco::Track &tk, const l1extra::L1MuonParticle &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
bool | match (const reco::Candidate &c, const l1extra::L1MuonParticle &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
bool | match (TrajectoryStateOnSurface &propagated, const l1extra::L1MuonParticle &l1, float &deltaR, float &deltaPhi) const |
bool | match (const SimTrack &tk, const edm::SimVertexContainer &vtxs, const l1extra::L1MuonParticle &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
int | match (const reco::Track &tk, const std::vector< l1extra::L1MuonParticle > &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
int | match (const reco::Candidate &c, const std::vector< l1extra::L1MuonParticle > &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
int | match (TrajectoryStateOnSurface &propagated, const std::vector< l1extra::L1MuonParticle > &l1, float &deltaR, float &deltaPhi) const |
bool | match (const reco::Candidate &c, const l1extra::L1MuonParticle &l1, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
bool | match (TrajectoryStateOnSurface &propagated, const l1extra::L1MuonParticle &l1, float &deltaR, float &deltaPhi) const |
template<typename Collection , typename Selector > | |
int | matchGeneric (TrajectoryStateOnSurface &propagated, const Collection &l1, const Selector &sel, float &deltaR, float &deltaPhi) const |
template<typename Collection , typename Selector > | |
int | matchGeneric (const reco::Track &tk, const Collection &l1, const Selector &sel, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
template<typename Collection , typename Selector > | |
int | matchGeneric (const reco::Candidate &c, const Collection &l1, const Selector &sel, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
template<typename Collection , typename Selector > | |
int | matchGeneric (const reco::Track &tk, const Collection &l1, const Selector &sel, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
template<typename Collection , typename Selector > | |
int | matchGeneric (TrajectoryStateOnSurface &propagated, const Collection &l1, const Selector &sel, float &deltaR, float &deltaPhi) const |
template<typename Collection , typename Selector > | |
int | matchGeneric (const reco::Candidate &c, const Collection &l1, const Selector &sel, float &deltaR, float &deltaPhi, TrajectoryStateOnSurface &propagated) const |
const PropagateToMuon & | propagatorToMuon () const |
Return the propagator to second muon station (in case it's needed) | |
PropagateToMuon & | propagatorToMuon () |
Return the propagator to second muon station (in case it's needed) | |
const PropagateToMuon & | propagatorToMuon () const |
Return the propagator to second muon station (in case it's needed) | |
PropagateToMuon & | propagatorToMuon () |
Return the propagator to second muon station (in case it's needed) | |
void | setL1PhiOffset (double l1PhiOffset) |
Add this offset to the L1 phi before doing the match, to correct for different scales in L1 vs offline. | |
~L1MuonMatcherAlgo () | |
~L1MuonMatcherAlgo () | |
Private Types | |
typedef StringCutObjectSelector < l1extra::L1MuonParticle > | L1Selector |
typedef StringCutObjectSelector < l1extra::L1MuonParticle > | L1Selector |
enum | SortBy { SortByDeltaR, SortByDeltaPhi, SortByDeltaEta, SortByPt } |
Sort by deltaPhi or deltaEta instead of deltaR. More... | |
Private Attributes | |
double | deltaEta_ |
double | deltaPhi_ |
double | deltaR2_ |
Matching cuts. | |
double | l1PhiOffset_ |
offset to be added to the L1 phi before the match | |
L1Selector | preselectionCut_ |
Preselection cut to apply to L1 candidates before matching. | |
PropagateToMuon | prop_ |
SortBy | sortBy_ |
bool | sortByDeltaPhi_ |
Sort by deltaPhi instead of deltaR. |
Matcher of reconstructed objects to L1 Muons.
Definition at line 28 of file L1MuonMatcherAlgo.h.
typedef StringCutObjectSelector<l1extra::L1MuonParticle> L1MuonMatcherAlgo::L1Selector [private] |
Definition at line 121 of file L1MuonMatcherAlgo.h.
typedef StringCutObjectSelector<l1extra::L1MuonParticle> L1MuonMatcherAlgo::L1Selector [private] |
Definition at line 144 of file L1MuonMatcherAlgo.h.
enum L1MuonMatcherAlgo::SortBy [private] |
Sort by deltaPhi or deltaEta instead of deltaR.
Definition at line 152 of file L1MuonMatcherAlgo.h.
L1MuonMatcherAlgo::L1MuonMatcherAlgo | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 5 of file L1MuonMatcherAlgo.cc.
: prop_(iConfig), preselectionCut_(iConfig.existsAs<std::string>("preselection") ? iConfig.getParameter<std::string>("preselection") : ""), deltaR2_(std::pow(iConfig.getParameter<double>("maxDeltaR"),2)), deltaPhi_(iConfig.existsAs<double>("maxDeltaPhi") ? iConfig.getParameter<double>("maxDeltaPhi") : 10), sortByDeltaPhi_(iConfig.existsAs<bool>("sortByDeltaPhi") ? iConfig.getParameter<bool>("sortByDeltaPhi") : false) { }
L1MuonMatcherAlgo::~L1MuonMatcherAlgo | ( | ) |
Definition at line 14 of file L1MuonMatcherAlgo.cc.
{}
L1MuonMatcherAlgo::L1MuonMatcherAlgo | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
L1MuonMatcherAlgo::~L1MuonMatcherAlgo | ( | ) |
TrajectoryStateOnSurface L1MuonMatcherAlgo::extrapolate | ( | const reco::Track & | tk | ) | const [inline] |
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails.
Definition at line 37 of file L1MuonMatcherAlgo.h.
References PropagateToMuon::extrapolate(), and prop_.
Referenced by match(), and matchGeneric().
{ return prop_.extrapolate(tk); }
TrajectoryStateOnSurface L1MuonMatcherAlgo::extrapolate | ( | const FreeTrajectoryState & | state | ) | const [inline] |
Extrapolate a FreeTrajectoryState to the muon station 2, return an invalid TSOS if it fails.
Definition at line 43 of file L1MuonMatcherAlgo.h.
References PropagateToMuon::extrapolate(), and prop_.
{ return prop_.extrapolate(state); }
TrajectoryStateOnSurface L1MuonMatcherAlgo::extrapolate | ( | const reco::Track & | tk | ) | const [inline] |
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails.
Definition at line 37 of file L1MuonMatcherAlgo.h.
References PropagateToMuon::extrapolate(), and prop_.
{ return prop_.extrapolate(tk); }
TrajectoryStateOnSurface L1MuonMatcherAlgo::extrapolate | ( | const reco::Candidate & | tk | ) | const [inline] |
Extrapolate reco::Candidate to the muon station 2, return an invalid TSOS if it fails.
Definition at line 40 of file L1MuonMatcherAlgo.h.
References PropagateToMuon::extrapolate(), and prop_.
{ return prop_.extrapolate(tk); }
TrajectoryStateOnSurface L1MuonMatcherAlgo::extrapolate | ( | const SimTrack & | tk, |
const edm::SimVertexContainer & | vtx | ||
) | const [inline] |
Extrapolate a SimTrack to the muon station 2, return an invalid TSOS if it fails. Requires SimVertices to know where to start from.
Definition at line 43 of file L1MuonMatcherAlgo.h.
References PropagateToMuon::extrapolate(), and prop_.
{ return prop_.extrapolate(tk, vtx); }
TrajectoryStateOnSurface L1MuonMatcherAlgo::extrapolate | ( | const FreeTrajectoryState & | state | ) | const [inline] |
Extrapolate a FreeTrajectoryState to the muon station 2, return an invalid TSOS if it fails.
Definition at line 46 of file L1MuonMatcherAlgo.h.
References PropagateToMuon::extrapolate(), and prop_.
{ return prop_.extrapolate(state); }
TrajectoryStateOnSurface L1MuonMatcherAlgo::extrapolate | ( | const reco::Candidate & | tk | ) | const [inline] |
Extrapolate reco::Candidate to the muon station 2, return an invalid TSOS if it fails.
Definition at line 40 of file L1MuonMatcherAlgo.h.
References PropagateToMuon::extrapolate(), and prop_.
{ return prop_.extrapolate(tk); }
void L1MuonMatcherAlgo::init | ( | const edm::EventSetup & | iSetup | ) |
Call this method at the beginning of each run, to initialize geometry, magnetic field and propagators.
Definition at line 17 of file L1MuonMatcherAlgo.cc.
References PropagateToMuon::init(), and prop_.
Referenced by HLTMuonPlotter::beginRun().
void L1MuonMatcherAlgo::init | ( | const edm::EventSetup & | iSetup | ) |
Call this method at the beginning of each run, to initialize geometry, magnetic field and propagators.
int L1MuonMatcherAlgo::match | ( | const reco::Track & | tk, |
const std::vector< l1extra::L1MuonParticle > & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 82 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
{ propagated = extrapolate(tk); return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : -1; }
bool L1MuonMatcherAlgo::match | ( | const SimTrack & | tk, |
const edm::SimVertexContainer & | vtxs, | ||
const l1extra::L1MuonParticle & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Try to match one simtrack to one L1. Return true if succeeded (and update deltaR, deltaPhi and propagated TSOS accordingly) The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 69 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
bool L1MuonMatcherAlgo::match | ( | const reco::Candidate & | c, |
const l1extra::L1MuonParticle & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Try to match one track to one L1. Return true if succeeded (and update deltaR, deltaPhi and propagated TSOS accordingly) The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 59 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
bool L1MuonMatcherAlgo::match | ( | const reco::Track & | tk, |
const l1extra::L1MuonParticle & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Try to match one track to one L1. Return true if succeeded (and update deltaR, deltaPhi and propagated TSOS accordingly) The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 55 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
bool L1MuonMatcherAlgo::match | ( | TrajectoryStateOnSurface & | propagated, |
const l1extra::L1MuonParticle & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi | ||
) | const |
Try to match one track to one L1. Return true if succeeded (and update deltaR, deltaPhi accordingly) The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 22 of file L1MuonMatcherAlgo.cc.
References SiPixelRawToDigiRegional_cfi::deltaPhi, deltaPhi_, Geom::deltaR2(), deltaR2_, reco::LeafCandidate::eta(), PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::globalPosition(), reco::LeafCandidate::phi(), PV3DBase< T, PVType, FrameType >::phi(), pos, preselectionCut_, and mathSSE::sqrt().
{ if (preselectionCut_(l1)) { GlobalPoint pos = propagated.globalPosition(); double thisDeltaPhi = ::deltaPhi(double(pos.phi()), l1.phi()); double thisDeltaR2 = ::deltaR2(double(pos.eta()), double(pos.phi()), l1.eta(), l1.phi()); if ((fabs(thisDeltaPhi) < deltaPhi_) && (thisDeltaR2 < deltaR2_)) { deltaR = std::sqrt(thisDeltaR2); deltaPhi = thisDeltaPhi; return true; } } return false; }
int L1MuonMatcherAlgo::match | ( | const reco::Track & | tk, |
const std::vector< l1extra::L1MuonParticle > & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 71 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
{ propagated = extrapolate(tk); return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : -1; }
int L1MuonMatcherAlgo::match | ( | const reco::Candidate & | c, |
const std::vector< l1extra::L1MuonParticle > & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 79 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
{ propagated = extrapolate(c); return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : -1; }
int L1MuonMatcherAlgo::match | ( | const SimTrack & | tk, |
const edm::SimVertexContainer & | vtxs, | ||
const std::vector< l1extra::L1MuonParticle > & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 98 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
{ propagated = extrapolate(tk, vtxs); return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : -1; }
int L1MuonMatcherAlgo::match | ( | TrajectoryStateOnSurface & | propagated, |
const std::vector< l1extra::L1MuonParticle > & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi | ||
) | const |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi accordingly) Returns -1 if the match fails The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 37 of file L1MuonMatcherAlgo.cc.
References matchGeneric(), and preselectionCut_.
{ return matchGeneric(propagated, l1s, preselectionCut_, deltaR, deltaPhi); /* int match = -1; double minDeltaPhi = deltaPhi_; double minDeltaR2 = deltaR2_; GlobalPoint pos = propagated.globalPosition(); for (int i = 0, n = l1s.size(); i < n; ++i) { const l1extra::L1MuonParticle &l1 = l1s[i]; if (preselectionCut_(l1)) { double thisDeltaPhi = ::deltaPhi(double(pos.phi()), l1.phi()); double thisDeltaR2 = ::deltaR2(double(pos.eta()), double(pos.phi()), l1.eta(), l1.phi()); if ((fabs(thisDeltaPhi) < deltaPhi_) && (thisDeltaR2 < deltaR2_)) { // check both if (sortByDeltaPhi_ ? (fabs(thisDeltaPhi) < fabs(minDeltaPhi)) : (thisDeltaR2 < minDeltaR2)) { // sort on one match = i; deltaR = std::sqrt(thisDeltaR2); deltaPhi = thisDeltaPhi; if (sortByDeltaPhi_) minDeltaPhi = thisDeltaPhi; else minDeltaR2 = thisDeltaR2; } } } } return match; */ }
bool L1MuonMatcherAlgo::match | ( | const reco::Candidate & | c, |
const l1extra::L1MuonParticle & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Try to match one track to one L1. Return true if succeeded (and update deltaR, deltaPhi and propagated TSOS accordingly) The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 62 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
bool L1MuonMatcherAlgo::match | ( | TrajectoryStateOnSurface & | propagated, |
const l1extra::L1MuonParticle & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi | ||
) | const |
Try to match one track to one L1. Return true if succeeded (and update deltaR, deltaPhi accordingly) The preselection cut on L1, if specified in the config, is applied before the match
int L1MuonMatcherAlgo::match | ( | TrajectoryStateOnSurface & | propagated, |
const std::vector< l1extra::L1MuonParticle > & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi | ||
) | const |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi accordingly) Returns -1 if the match fails The preselection cut on L1, if specified in the config, is applied before the match
bool L1MuonMatcherAlgo::match | ( | const reco::Track & | tk, |
const l1extra::L1MuonParticle & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Try to match one track to one L1. Return true if succeeded (and update deltaR, deltaPhi and propagated TSOS accordingly) The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 52 of file L1MuonMatcherAlgo.h.
References extrapolate(), and TrajectoryStateOnSurface::isValid().
Referenced by match(), and matchGeneric().
int L1MuonMatcherAlgo::match | ( | const reco::Candidate & | c, |
const std::vector< l1extra::L1MuonParticle > & | l1, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails The preselection cut on L1, if specified in the config, is applied before the match
Definition at line 90 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and match().
{ propagated = extrapolate(c); return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : -1; }
int L1MuonMatcherAlgo::matchGeneric | ( | const reco::Candidate & | c, |
const Collection & | l1, | ||
const Selector & | sel, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails Only the objects passing the selector will be allowed for the match. If you don't need a selector, just use an AnySelector (CommonTools/Utils) which accepts everything
Definition at line 105 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and matchGeneric().
{ propagated = extrapolate(c); return propagated.isValid() ? matchGeneric(propagated, l1, sel, deltaR, deltaPhi) : -1; }
int L1MuonMatcherAlgo::matchGeneric | ( | TrajectoryStateOnSurface & | propagated, |
const Collection & | l1, | ||
const Selector & | sel, | ||
float & | deltaR, | ||
float & | deltaPhi | ||
) | const |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi accordingly) Returns -1 if the match fails Only the objects passing the selector will be allowed for the match. The selector defaults to an AnySelector (CommonTools/Utils) which just accepts everything
Definition at line 134 of file L1MuonMatcherAlgo.h.
References SiPixelRawToDigiRegional_cfi::deltaPhi, deltaPhi_, Geom::deltaR2(), deltaR2_, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::globalPosition(), i, match(), benchmark_cfg::minDeltaPhi, n, VarParsing::obj, PV3DBase< T, PVType, FrameType >::phi(), pos, EgammaValidation_Wenu_cff::sel, sortByDeltaPhi_, and mathSSE::sqrt().
{ typedef typename Collection::value_type obj; int match = -1; double minDeltaPhi = deltaPhi_; double minDeltaR2 = deltaR2_; GlobalPoint pos = propagated.globalPosition(); for (int i = 0, n = l1s.size(); i < n; ++i) { const obj &l1 = l1s[i]; if (sel(l1)) { double thisDeltaPhi = ::deltaPhi(double(pos.phi()), l1.phi()); double thisDeltaR2 = ::deltaR2(double(pos.eta()), double(pos.phi()), l1.eta(), l1.phi()); if ((fabs(thisDeltaPhi) < deltaPhi_) && (thisDeltaR2 < deltaR2_)) { // check both if (sortByDeltaPhi_ ? (fabs(thisDeltaPhi) < fabs(minDeltaPhi)) : (thisDeltaR2 < minDeltaR2)) { // sort on one match = i; deltaR = std::sqrt(thisDeltaR2); deltaPhi = thisDeltaPhi; if (sortByDeltaPhi_) minDeltaPhi = thisDeltaPhi; else minDeltaR2 = thisDeltaR2; } } } } return match; }
int L1MuonMatcherAlgo::matchGeneric | ( | const reco::Candidate & | c, |
const Collection & | l1, | ||
const Selector & | sel, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails Only the objects passing the selector will be allowed for the match. If you don't need a selector, just use an AnySelector (CommonTools/Utils) which accepts everything
Definition at line 125 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and matchGeneric().
{ propagated = extrapolate(c); return propagated.isValid() ? matchGeneric(propagated, l1, sel, deltaR, deltaPhi) : -1; }
int L1MuonMatcherAlgo::matchGeneric | ( | const reco::Track & | tk, |
const Collection & | l1, | ||
const Selector & | sel, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails Only the objects passing the selector will be allowed for the match. If you don't need a selector, just use an AnySelector (CommonTools/Utils) which accepts everything
Definition at line 95 of file L1MuonMatcherAlgo.h.
References extrapolate(), and TrajectoryStateOnSurface::isValid().
Referenced by match(), and matchGeneric().
{ propagated = extrapolate(tk); return propagated.isValid() ? matchGeneric(propagated, l1, sel, deltaR, deltaPhi) : -1; }
int L1MuonMatcherAlgo::matchGeneric | ( | const reco::Track & | tk, |
const Collection & | l1, | ||
const Selector & | sel, | ||
float & | deltaR, | ||
float & | deltaPhi, | ||
TrajectoryStateOnSurface & | propagated | ||
) | const [inline] |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi and propagated TSOS accordingly) Returns -1 if the match fails Only the objects passing the selector will be allowed for the match. If you don't need a selector, just use an AnySelector (CommonTools/Utils) which accepts everything
Definition at line 115 of file L1MuonMatcherAlgo.h.
References extrapolate(), TrajectoryStateOnSurface::isValid(), and matchGeneric().
{ propagated = extrapolate(tk); return propagated.isValid() ? matchGeneric(propagated, l1, sel, deltaR, deltaPhi) : -1; }
int L1MuonMatcherAlgo::matchGeneric | ( | TrajectoryStateOnSurface & | propagated, |
const Collection & | l1, | ||
const Selector & | sel, | ||
float & | deltaR, | ||
float & | deltaPhi | ||
) | const |
Find the best match to L1, and return its index in the vector (and update deltaR, deltaPhi accordingly) Returns -1 if the match fails Only the objects passing the selector will be allowed for the match. The selector defaults to an AnySelector (CommonTools/Utils) which just accepts everything
PropagateToMuon& L1MuonMatcherAlgo::propagatorToMuon | ( | ) | [inline] |
Return the propagator to second muon station (in case it's needed)
Definition at line 46 of file L1MuonMatcherAlgo.h.
References prop_.
{ return prop_; }
const PropagateToMuon& L1MuonMatcherAlgo::propagatorToMuon | ( | ) | const [inline] |
Return the propagator to second muon station (in case it's needed)
Definition at line 51 of file L1MuonMatcherAlgo.h.
References prop_.
{ return prop_; }
PropagateToMuon& L1MuonMatcherAlgo::propagatorToMuon | ( | ) | [inline] |
Return the propagator to second muon station (in case it's needed)
Definition at line 49 of file L1MuonMatcherAlgo.h.
References prop_.
{ return prop_; }
const PropagateToMuon& L1MuonMatcherAlgo::propagatorToMuon | ( | ) | const [inline] |
Return the propagator to second muon station (in case it's needed)
Definition at line 48 of file L1MuonMatcherAlgo.h.
References prop_.
{ return prop_; }
void L1MuonMatcherAlgo::setL1PhiOffset | ( | double | l1PhiOffset | ) | [inline] |
Add this offset to the L1 phi before doing the match, to correct for different scales in L1 vs offline.
Definition at line 139 of file L1MuonMatcherAlgo.h.
References l1PhiOffset_.
{ l1PhiOffset_ = l1PhiOffset; }
double L1MuonMatcherAlgo::deltaEta_ [private] |
Definition at line 149 of file L1MuonMatcherAlgo.h.
double L1MuonMatcherAlgo::deltaPhi_ [private] |
Definition at line 126 of file L1MuonMatcherAlgo.h.
Referenced by match(), and matchGeneric().
double L1MuonMatcherAlgo::deltaR2_ [private] |
Matching cuts.
Definition at line 126 of file L1MuonMatcherAlgo.h.
Referenced by match(), and matchGeneric().
double L1MuonMatcherAlgo::l1PhiOffset_ [private] |
offset to be added to the L1 phi before the match
Definition at line 156 of file L1MuonMatcherAlgo.h.
Referenced by setL1PhiOffset().
Preselection cut to apply to L1 candidates before matching.
Definition at line 123 of file L1MuonMatcherAlgo.h.
Referenced by match().
PropagateToMuon L1MuonMatcherAlgo::prop_ [private] |
Definition at line 119 of file L1MuonMatcherAlgo.h.
Referenced by extrapolate(), init(), and propagatorToMuon().
SortBy L1MuonMatcherAlgo::sortBy_ [private] |
Definition at line 153 of file L1MuonMatcherAlgo.h.
bool L1MuonMatcherAlgo::sortByDeltaPhi_ [private] |
Sort by deltaPhi instead of deltaR.
Definition at line 129 of file L1MuonMatcherAlgo.h.
Referenced by matchGeneric().