CMS 3D CMS Logo

Public Member Functions | Private Types | Private Attributes

L1MuonMatcherAlgo Class Reference

Matcher of reconstructed objects to L1 Muons. More...

#include <MuonAnalysis/MuonAssociators/interface/L1MuonMatcherAlgo.h>

List of all members.

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 PropagateToMuonpropagatorToMuon () const
 Return the propagator to second muon station (in case it's needed)
PropagateToMuonpropagatorToMuon ()
 Return the propagator to second muon station (in case it's needed)
const PropagateToMuonpropagatorToMuon () const
 Return the propagator to second muon station (in case it's needed)
PropagateToMuonpropagatorToMuon ()
 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.

Detailed Description

Matcher of reconstructed objects to L1 Muons.

Author:
Giovanni Petrucciani
Version:
Id:
L1MuonMatcherAlgo.h,v 1.1 2010/04/15 18:37:17 klukas Exp
Author:
Giovanni Petrucciani
Version:
Id:
L1MuonMatcherAlgo.h,v 1.9 2011/04/27 23:13:21 gpetrucc Exp

Definition at line 28 of file L1MuonMatcherAlgo.h.


Member Typedef Documentation

Definition at line 121 of file L1MuonMatcherAlgo.h.

Definition at line 144 of file L1MuonMatcherAlgo.h.


Member Enumeration Documentation

enum L1MuonMatcherAlgo::SortBy [private]

Sort by deltaPhi or deltaEta instead of deltaR.

Enumerator:
SortByDeltaR 
SortByDeltaPhi 
SortByDeltaEta 
SortByPt 

Definition at line 152 of file L1MuonMatcherAlgo.h.


Constructor & Destructor Documentation

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 ( )

Member Function Documentation

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().

                                                    {
    prop_.init(iSetup);
}
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().

                                                                                                                                                                                       {
            propagated = extrapolate(tk, vtxs);
            return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : false;
        }
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().

                                                                                                                                                        {
            propagated = extrapolate(c);
            return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : false;
        }
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().

                                                                                                                                                     {
            propagated = extrapolate(tk);
            return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : false;
        }
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().

                                                                                                                                                        {
            propagated = extrapolate(c);
            return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : false;
        }
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().

                                                                                                                                                     {
            propagated = extrapolate(tk);
            return propagated.isValid() ? match(propagated, l1, deltaR, deltaPhi) : false;
        }
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;
        }
template<typename Collection , typename Selector >
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;
        }
template<typename Collection , typename Selector >
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;
}
template<typename Collection , typename Selector >
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;
        }
template<typename Collection , typename Selector >
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;
        }
template<typename Collection , typename Selector >
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;
        }
template<typename Collection , typename Selector >
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; }

Member Data Documentation

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().

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().

Definition at line 119 of file L1MuonMatcherAlgo.h.

Referenced by extrapolate(), init(), and propagatorToMuon().

Definition at line 153 of file L1MuonMatcherAlgo.h.

Sort by deltaPhi instead of deltaR.

Definition at line 129 of file L1MuonMatcherAlgo.h.

Referenced by matchGeneric().