CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
reco::Muon Class Reference

#include <DataFormats/MuonReco/interface/Muon.h>

Inheritance diagram for reco::Muon:
reco::RecoCandidate reco::LeafCandidate reco::Candidate pat::PATObject< reco::Muon > pat::Lepton< reco::Muon > pat::Muon

Public Types

enum  ArbitrationType {
  NoArbitration, SegmentArbitration, SegmentAndTrackArbitration, SegmentAndTrackArbitrationCleaned,
  RPCHitAndTrackArbitration
}
 define arbitration schemes More...
 
typedef std::map
< MuonTrackType,
reco::TrackRef
MuonTrackRefMap
 
enum  MuonTrackType {
  None, InnerTrack, OuterTrack, CombinedTrack,
  TPFMS, Picky, DYT
}
 map for Global Muon refitters More...
 
typedef std::pair< TrackRef,
Muon::MuonTrackType
MuonTrackTypePair
 
- Public Types inherited from reco::RecoCandidate
enum  TrackType { noTrackType, recoTrackType, gsfTrackType }
 track type More...
 
- Public Types inherited from reco::LeafCandidate
typedef int Charge
 electric charge type More...
 
typedef CandidateCollection daughters
 collection of daughter candidates More...
 
typedef unsigned int index
 
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector. More...
 
typedef math::XYZPoint Point
 point in the space More...
 
typedef
math::PtEtaPhiMLorentzVector 
PolarLorentzVector
 Lorentz vector. More...
 
typedef math::XYZVector Vector
 point in the space More...
 
- Public Types inherited from reco::Candidate
enum  { dimension = 3 }
 
enum  { size = dimension * (dimension + 1)/2 }
 matix size More...
 
typedef int Charge
 electric charge type More...
 
typedef candidate::const_iterator const_iterator
 
typedef math::Error< dimension >
::type 
CovarianceMatrix
 covariance error matrix (3x3) More...
 
typedef unsigned int index
 index type More...
 
typedef candidate::iterator iterator
 
typedef math::XYZTLorentzVector LorentzVector
 Lorentz vector. More...
 
typedef math::XYZPoint Point
 point in the space More...
 
typedef
math::PtEtaPhiMLorentzVector 
PolarLorentzVector
 Lorentz vector. More...
 
typedef size_t size_type
 
typedef math::XYZVector Vector
 point in the space More...
 

Public Member Functions

virtual const TrackbestTrack () const
 best track pointer More...
 
virtual TrackBaseRef bestTrackRef () const
 best track RefToBase More...
 
MuonEnergy calEnergy () const
 get energy deposition information More...
 
float caloCompatibility () const
 
Muonclone () const
 create a clone More...
 
virtual TrackRef combinedMuon () const
 reference to a stand-alone muon Track More...
 
MuonQuality combinedQuality () const
 get energy deposition information More...
 
float dDxDz (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float dDyDz (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float dX (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float dY (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
virtual TrackRef dytTrack () const
 
virtual TrackRef globalTrack () const
 reference to Track reconstructed in both tracked and muon detector More...
 
virtual TrackRef innerTrack () const
 
bool isAValidMuonTrack (const MuonTrackType &type) const
 
bool isCaloCompatibilityValid () const
 
bool isCaloMuon () const
 
bool isEnergyValid () const
 
bool isGlobalMuon () const
 
bool isIsolationValid () const
 
bool isMatchesValid () const
 
bool isMuon () const
 
const MuonIsolationisolationR03 () const
 
const MuonIsolationisolationR05 () const
 
bool isPFIsolationValid () const
 
bool isPFMuon () const
 
bool isQualityValid () const
 
bool isRPCMuon () const
 
bool isStandAloneMuon () const
 
bool isTimeValid () const
 
bool isTrackerMuon () const
 
std::vector< MuonChamberMatch > & matches ()
 get muon matching information More...
 
const std::vector
< MuonChamberMatch > & 
matches () const
 
 Muon ()
 
 Muon (Charge, const LorentzVector &, const Point &=Point(0, 0, 0))
 constructor from values More...
 
virtual TrackRef muonBestTrack () const
 
virtual MuonTrackType muonBestTrackType () const
 
TrackRef muonTrack (const MuonTrackType &) const
 
TrackRef muonTrackFromMap (const MuonTrackType &type) const
 
int numberOfChambers () const
 
int numberOfChambersNoRPC () const
 number of chambers not including RPC matches (MuonChamberMatches include RPC rolls) More...
 
int numberOfMatchedRPCLayers (ArbitrationType type=RPCHitAndTrackArbitration) const
 
int numberOfMatchedStations (ArbitrationType type=SegmentAndTrackArbitration) const
 
int numberOfMatches (ArbitrationType type=SegmentAndTrackArbitration) const
 get number of chambers with matched segments More...
 
int numberOfSegments (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 get number of segments More...
 
virtual TrackRef outerTrack () const
 reference to Track reconstructed in the muon detector only More...
 
const MuonPFIsolationpfIsolationR03 () const
 
const MuonPFIsolationpfIsolationR04 () const
 
const MuonPFIsolationpfMeanDRIsoProfileR03 () const
 
const MuonPFIsolationpfMeanDRIsoProfileR04 () const
 
reco::Candidate::LorentzVector pfP4 () const
 
const MuonPFIsolationpfSumDRIsoProfileR03 () const
 
const MuonPFIsolationpfSumDRIsoProfileR04 () const
 
virtual TrackRef pickyTrack () const
 
float pullDxDz (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration, bool includeSegmentError=true) const
 
float pullDyDz (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration, bool includeSegmentError=true) const
 
float pullX (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration, bool includeSegmentError=true) const
 
float pullY (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration, bool includeSegmentError=true) const
 
unsigned int RPClayerMask (ArbitrationType type=RPCHitAndTrackArbitration) const
 
float segmentDxDz (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float segmentDxDzErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float segmentDyDz (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float segmentDyDzErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float segmentX (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float segmentXErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float segmentY (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float segmentYErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
virtual void setBestTrack (MuonTrackType muonType)
 
void setCalEnergy (const MuonEnergy &calEnergy)
 set energy deposition information More...
 
void setCaloCompatibility (float input)
 
virtual void setCombined (const TrackRef &t)
 
void setCombinedQuality (const MuonQuality &combinedQuality)
 set energy deposition information More...
 
virtual void setGlobalTrack (const TrackRef &t)
 set reference to Track More...
 
virtual void setInnerTrack (const TrackRef &t)
 set reference to Track More...
 
void setIsolation (const MuonIsolation &isoR03, const MuonIsolation &isoR05)
 
void setMatches (const std::vector< MuonChamberMatch > &matches)
 set muon matching information More...
 
void setMuonTrack (const MuonTrackType &, const TrackRef &)
 
virtual void setOuterTrack (const TrackRef &t)
 set reference to Track More...
 
void setPFIsolation (const std::string &label, const reco::MuonPFIsolation &deposit)
 
virtual void setPFP4 (const reco::Candidate::LorentzVector &p4_)
 
virtual void setStandAlone (const TrackRef &t)
 
void setTime (const MuonTime &time)
 set timing information More...
 
virtual void setTrack (const TrackRef &t)
 
virtual void setTunePBestTrack (MuonTrackType muonType)
 
void setType (unsigned int type)
 
virtual TrackRef standAloneMuon () const
 reference to a stand-alone muon Track More...
 
unsigned int stationGapMaskDistance (float distanceCut=10.) const
 
unsigned int stationGapMaskPull (float sigmaCut=3.) const
 same as above for given number of sigmas More...
 
unsigned int stationMask (ArbitrationType type=SegmentAndTrackArbitration) const
 
float t0 (int n=0)
 
MuonTime time () const
 get timing information More...
 
virtual TrackRef tpfmsTrack () const
 
virtual TrackRef track () const
 reference to a Track More...
 
float trackDist (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackDistErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackDxDz (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackDxDzErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackDyDz (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackDyDzErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackEdgeX (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackEdgeY (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackX (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackXErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackY (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
float trackYErr (int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
 
virtual TrackRef tunePMuonBestTrack () const
 
virtual MuonTrackType tunePMuonBestTrackType () const
 
unsigned int type () const
 
- Public Member Functions inherited from reco::RecoCandidate
virtual TrackType bestTrackType () const
 track type More...
 
virtual CaloTowerRef caloTower () const
 reference to a CaloTower More...
 
virtual reco::GsfTrackRef gsfTrack () const
 reference to a GsfTrack More...
 
virtual size_t numberOfTracks () const
 number of multiple Tracks More...
 
 RecoCandidate ()
 default constructor More...
 
template<typename P4 >
 RecoCandidate (Charge q, const P4 &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0)
 constructor from values More...
 
virtual reco::SuperClusterRef superCluster () const
 reference to a SuperCluster More...
 
virtual reco::TrackRef track (size_t) const
 reference to one of multiple Tracks More...
 
virtual ~RecoCandidate ()
 destructor More...
 
- Public Member Functions inherited from reco::LeafCandidate
virtual const_iterator begin () const
 first daughter const_iterator More...
 
virtual iterator begin ()
 first daughter iterator More...
 
template<typename S >
daughter_iterator< S >::type beginFilter (const S &s) const
 
virtual Vector boostToCM () const GCC11_FINAL
 
virtual int charge () const GCC11_FINAL
 electric charge More...
 
virtual const Candidatedaughter (size_type) const
 return daughter at a given position (throws an exception) More...
 
virtual Candidatedaughter (size_type)
 return daughter at a given position (throws an exception) More...
 
virtual Candidatedaughter (const std::string &s)
 return daughter with a specified role name More...
 
virtual const Candidatedaughter (const std::string &s) const
 return daughter with a specified role name More...
 
virtual const_iterator end () const
 last daughter const_iterator More...
 
virtual iterator end ()
 last daughter iterator More...
 
template<typename S >
daughter_iterator< S >::type endFilter (const S &s) const
 
virtual double energy () const GCC11_FINAL
 energy More...
 
virtual double et () const GCC11_FINAL
 transverse energy More...
 
virtual float eta () const GCC11_FINAL
 momentum pseudorapidity More...
 
virtual void fillVertexCovariance (CovarianceMatrix &v) const
 fill SMatrix More...
 
template<typename T >
T get () const
 get a component More...
 
template<typename T , typename Tag >
T get () const
 get a component More...
 
template<typename T >
T get (size_type i) const
 get a component More...
 
template<typename T , typename Tag >
T get (size_type i) const
 get a component More...
 
virtual bool hasMasterClone () const
 
virtual bool hasMasterClonePtr () const
 
virtual bool isConvertedPhoton () const
 
virtual bool isElectron () const
 
virtual bool isJet () const
 
virtual bool isPhoton () const
 
 LeafCandidate ()
 default constructor More...
 
 LeafCandidate (const Candidate &c)
 
template<typename P4 >
 LeafCandidate (Charge q, const P4 &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from Any values More...
 
 LeafCandidate (Charge q, const PtEtaPhiMass &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values More...
 
 LeafCandidate (Charge q, const LorentzVector &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values More...
 
 LeafCandidate (Charge q, const PolarLorentzVector &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0, bool integerCharge=true)
 constructor from values More...
 
virtual bool longLived () const GCC11_FINAL
 is long lived? More...
 
virtual float mass () const GCC11_FINAL
 mass More...
 
virtual bool massConstraint () const GCC11_FINAL
 do mass constraint? More...
 
virtual float massSqr () const GCC11_FINAL
 mass squared More...
 
virtual const CandidateBaseRefmasterClone () const
 
virtual const CandidatePtrmasterClonePtr () const
 
template<typename Ref >
Ref masterRef () const
 cast master clone reference to a concrete type More...
 
virtual Vector momentum () const GCC11_FINAL
 spatial momentum vector More...
 
virtual const Candidatemother (size_type) const
 return mother at a given position (throws an exception) More...
 
virtual double mt () const GCC11_FINAL
 transverse mass More...
 
virtual double mtSqr () const GCC11_FINAL
 transverse mass squared More...
 
template<typename T >
size_type numberOf () const
 number of components More...
 
template<typename T , typename Tag >
size_type numberOf () const
 number of components More...
 
virtual size_t numberOfDaughters () const
 number of daughters More...
 
virtual size_t numberOfMothers () const
 number of mothers More...
 
virtual size_t numberOfSourceCandidatePtrs () const
 
virtual double p () const GCC11_FINAL
 magnitude of momentum vector More...
 
virtual const LorentzVectorp4 () const GCC11_FINAL
 four-momentum Lorentz vector More...
 
virtual int pdgId () const GCC11_FINAL
 PDG identifier. More...
 
virtual float phi () const GCC11_FINAL
 momentum azimuthal angle More...
 
virtual const PolarLorentzVectorpolarP4 () const GCC11_FINAL
 four-momentum Lorentz vector More...
 
virtual float pt () const GCC11_FINAL
 transverse momentum More...
 
virtual double px () const GCC11_FINAL
 x coordinate of momentum vector More...
 
virtual double py () const GCC11_FINAL
 y coordinate of momentum vector More...
 
virtual double pz () const GCC11_FINAL
 z coordinate of momentum vector More...
 
virtual double rapidity () const GCC11_FINAL
 rapidity More...
 
virtual void setCharge (Charge q) GCC11_FINAL
 set electric charge More...
 
virtual void setLongLived () GCC11_FINAL
 set long lived flag More...
 
virtual void setMass (double m) GCC11_FINAL
 set particle mass More...
 
virtual void setMassConstraint () GCC11_FINAL
 set mass constraint flag More...
 
virtual void setP4 (const LorentzVector &p4) GCC11_FINAL
 set 4-momentum More...
 
virtual void setP4 (const PolarLorentzVector &p4) GCC11_FINAL
 set 4-momentum More...
 
virtual void setPdgId (int pdgId) GCC11_FINAL
 
virtual void setPz (double pz) GCC11_FINAL
 
virtual void setStatus (int status) GCC11_FINAL
 set status word More...
 
virtual void setThreeCharge (Charge qx3) GCC11_FINAL
 set electric charge More...
 
virtual void setVertex (const Point &vertex)
 set vertex More...
 
virtual CandidatePtr sourceCandidatePtr (size_type i) const
 
virtual int status () const GCC11_FINAL
 status word More...
 
virtual double theta () const GCC11_FINAL
 momentum polar angle More...
 
virtual int threeCharge () const GCC11_FINAL
 electric charge More...
 
virtual const Pointvertex () const
 vertex position (overwritten by PF...) More...
 
virtual double vertexChi2 () const
 chi-squares More...
 
virtual double vertexCovariance (int i, int j) const
 (i, j)-th element of error matrix, i, j = 0, ... 2 More...
 
CovarianceMatrix vertexCovariance () const GCC11_FINAL
 return SMatrix More...
 
virtual double vertexNdof () const
 
virtual double vertexNormalizedChi2 () const
 chi-squared divided by n.d.o.f. More...
 
virtual double vx () const
 x coordinate of vertex position More...
 
virtual double vy () const
 y coordinate of vertex position More...
 
virtual double vz () const
 z coordinate of vertex position More...
 
virtual double y () const GCC11_FINAL
 rapidity More...
 
virtual ~LeafCandidate ()
 destructor More...
 
- Public Member Functions inherited from reco::Candidate
template<typename S >
daughter_iterator< S >::type beginFilter (const S &s) const
 
 Candidate ()
 default constructor More...
 
template<typename S >
daughter_iterator< S >::type endFilter (const S &s) const
 
template<typename T >
T get () const
 get a component More...
 
template<typename T , typename Tag >
T get () const
 get a component More...
 
template<typename T >
T get (size_type i) const
 get a component More...
 
template<typename T , typename Tag >
T get (size_type i) const
 get a component More...
 
template<typename Ref >
Ref masterRef () const
 cast master clone reference to a concrete type More...
 
template<typename T >
size_type numberOf () const
 number of components More...
 
template<typename T , typename Tag >
size_type numberOf () const
 number of components More...
 
virtual void setSourceCandidatePtr (const CandidatePtr &ptr)
 Set the ptr to the source Candidate. More...
 
virtual ~Candidate ()
 destructor More...
 

Static Public Attributes

static const unsigned int CaloMuon = 1<<4
 
static const unsigned int GlobalMuon = 1<<1
 
static const unsigned int PFMuon = 1<<5
 
static const unsigned int RPCMuon = 1<<6
 
static const unsigned int StandAloneMuon = 1<<3
 
static const unsigned int TrackerMuon = 1<<2
 
- Static Public Attributes inherited from reco::LeafCandidate
static const unsigned int longLivedTag = 65536
 long lived flag More...
 
static const unsigned int massConstraintTag = 131072
 do mass constraint flag More...
 

Private Member Functions

const std::vector< const
MuonChamberMatch * > 
chambers (int station, int muonSubdetId) const
 get vector of muon chambers for given station and detector More...
 
virtual bool overlap (const Candidate &) const
 check overlap with another candidate More...
 
std::pair< const
MuonChamberMatch *, const
MuonSegmentMatch * > 
pair (const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
 get pointers to best segment and corresponding chamber in vector of chambers More...
 

Private Attributes

MuonTrackType bestTrackType_
 reference to the Track chosen to assign the momentum value to the muon More...
 
MuonTrackType bestTunePTrackType_
 reference to the Track chosen to assign the momentum value to the muon by PF More...
 
MuonEnergy calEnergy_
 energy deposition More...
 
float caloCompatibility_
 muon hypothesis compatibility with observer calorimeter energy More...
 
MuonQuality combinedQuality_
 quality block More...
 
bool energyValid_
 
TrackRef globalTrack_
 reference to Track reconstructed in both tracked and muon detector More...
 
TrackRef innerTrack_
 reference to Track reconstructed in the tracker only More...
 
MuonIsolation isolationR03_
 Isolation information for two cones with dR=0.3 and dR=0.5. More...
 
MuonIsolation isolationR05_
 
bool isolationValid_
 
bool matchesValid_
 
std::vector< MuonChamberMatchmuMatches_
 Information on matching between tracks and segments. More...
 
TrackRef outerTrack_
 reference to Track reconstructed in the muon detector only More...
 
MuonPFIsolation pfIsolationR03_
 PF Isolation information for two cones with dR=0.3 and dR=0.4. More...
 
MuonPFIsolation pfIsolationR04_
 
bool pfIsolationValid_
 
MuonPFIsolation pfIsoMeanDRR03_
 
MuonPFIsolation pfIsoMeanDRR04_
 
MuonPFIsolation pfIsoSumDRR03_
 
MuonPFIsolation pfIsoSumDRR04_
 
reco::Candidate::LorentzVector pfP4_
 
bool qualityValid_
 
MuonTrackRefMap refittedTrackMap_
 reference to the Global Track refitted with dedicated TeV reconstructors More...
 
MuonTime time_
 timing More...
 
unsigned int type_
 muon type mask More...
 

Additional Inherited Members

- Protected Member Functions inherited from reco::RecoCandidate
template<typename R >
bool checkOverlap (const R &r1, const R &r2) const
 check if two components overlap More...
 
- Protected Member Functions inherited from reco::LeafCandidate
void cacheCartesian () const
 set internal cache More...
 
void cachePolar () const
 set internal cache More...
 
void clearCache () const
 clear internal cache More...
 
- Protected Attributes inherited from reco::LeafCandidate
bool cacheCartesianFixed_
 
bool cachePolarFixed_
 has cache been set? More...
 
float eta_
 
float mass_
 
LorentzVector p4Cartesian_
 internal cache for p4 More...
 
PolarLorentzVector p4Polar_
 internal cache for p4 More...
 
int pdgId_
 PDG identifier. More...
 
float phi_
 
float pt_
 four-momentum Lorentz vector More...
 
Charge qx3_
 electric charge More...
 
int status_
 status word More...
 
Point vertex_
 vertex position More...
 

Detailed Description

A reconstructed Muon. contains reference to three fits:

Author
Luca Lista, Claudio Campagnari, Dmytro Kovalskyi, Jake Ribnik, Riccardo Bellan, Michalis Bachtis

Definition at line 27 of file Muon.h.

Member Typedef Documentation

Definition at line 39 of file Muon.h.

Definition at line 40 of file Muon.h.

Member Enumeration Documentation

define arbitration schemes

Enumerator
NoArbitration 
SegmentArbitration 
SegmentAndTrackArbitration 
SegmentAndTrackArbitrationCleaned 
RPCHitAndTrackArbitration 

Definition at line 178 of file Muon.h.

map for Global Muon refitters

Enumerator
None 
InnerTrack 
OuterTrack 
CombinedTrack 
TPFMS 
Picky 
DYT 

Definition at line 38 of file Muon.h.

Constructor & Destructor Documentation

Muon::Muon ( )

Definition at line 20 of file Muon.cc.

References bestTrackType_, bestTunePTrackType_, caloCompatibility_, energyValid_, isolationValid_, matchesValid_, None, pfIsolationValid_, qualityValid_, and type_.

Referenced by clone().

20  {
21  energyValid_ = false;
22  matchesValid_ = false;
23  isolationValid_ = false;
24  pfIsolationValid_ = false;
25  qualityValid_ = false;
26  caloCompatibility_ = -9999.;
27  type_ = 0;
30 
31 }
float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:255
unsigned int type_
muon type mask
Definition: Muon.h:269
bool isolationValid_
Definition: Muon.h:251
MuonTrackType bestTrackType_
reference to the Track chosen to assign the momentum value to the muon
Definition: Muon.h:237
bool energyValid_
Definition: Muon.h:249
bool pfIsolationValid_
Definition: Muon.h:252
bool qualityValid_
Definition: Muon.h:253
bool matchesValid_
Definition: Muon.h:250
MuonTrackType bestTunePTrackType_
reference to the Track chosen to assign the momentum value to the muon by PF
Definition: Muon.h:239
Muon::Muon ( Charge  q,
const LorentzVector p4,
const Point vtx = Point( 0, 0, 0 ) 
)

constructor from values

Definition at line 7 of file Muon.cc.

References bestTrackType_, bestTunePTrackType_, caloCompatibility_, energyValid_, isolationValid_, matchesValid_, None, pfIsolationValid_, qualityValid_, and type_.

7  :
8  RecoCandidate( q, p4, vtx, -13 * q ) {
9  energyValid_ = false;
10  matchesValid_ = false;
11  isolationValid_ = false;
12  pfIsolationValid_ = false;
13  qualityValid_ = false;
14  caloCompatibility_ = -9999.;
15  type_ = 0;
18 }
virtual const LorentzVector & p4() const GCC11_FINAL
four-momentum Lorentz vector
float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:255
unsigned int type_
muon type mask
Definition: Muon.h:269
bool isolationValid_
Definition: Muon.h:251
MuonTrackType bestTrackType_
reference to the Track chosen to assign the momentum value to the muon
Definition: Muon.h:237
bool energyValid_
Definition: Muon.h:249
bool pfIsolationValid_
Definition: Muon.h:252
bool qualityValid_
Definition: Muon.h:253
RecoCandidate()
default constructor
Definition: RecoCandidate.h:23
bool matchesValid_
Definition: Muon.h:250
MuonTrackType bestTunePTrackType_
reference to the Track chosen to assign the momentum value to the muon by PF
Definition: Muon.h:239

Member Function Documentation

virtual const Track* reco::Muon::bestTrack ( ) const
inlinevirtual

best track pointer

Reimplemented from reco::RecoCandidate.

Definition at line 61 of file Muon.h.

References bestTrackType_, edm::Ref< C, T, F >::get(), and muonTrack().

Referenced by muon::isHighPtMuon().

61 {return muonTrack(bestTrackType_).get();}
TrackRef muonTrack(const MuonTrackType &) const
Definition: Muon.cc:857
MuonTrackType bestTrackType_
reference to the Track chosen to assign the momentum value to the muon
Definition: Muon.h:237
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:242
virtual TrackBaseRef reco::Muon::bestTrackRef ( ) const
inlinevirtual

best track RefToBase

Reimplemented from reco::RecoCandidate.

Definition at line 62 of file Muon.h.

References bestTrackType_, and muonTrack().

Referenced by SelectReplacementCandidates::getRawIDsAdvanced().

TrackRef muonTrack(const MuonTrackType &) const
Definition: Muon.cc:857
edm::RefToBase< reco::Track > TrackBaseRef
persistent reference to a Track, using views
Definition: TrackFwd.h:22
MuonTrackType bestTrackType_
reference to the Track chosen to assign the momentum value to the muon
Definition: Muon.h:237
MuonEnergy reco::Muon::calEnergy ( ) const
inline
float reco::Muon::caloCompatibility ( ) const
inline

====================== MUON COMPATIBILITY BLOCK ===========================

Relative likelihood based on ECAL, HCAL, HO energy defined as L_muon/(L_muon+L_not_muon)

Definition at line 150 of file Muon.h.

References caloCompatibility_.

Referenced by muon::caloCompatibility(), TauDiscriminationAgainstMuon< TauType, TauDiscriminator >::evaluateMuonVeto(), and CaloMuonMerger::produce().

150 { return caloCompatibility_; }
float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:255
const std::vector< const MuonChamberMatch * > Muon::chambers ( int  station,
int  muonSubdetId 
) const
private

get vector of muon chambers for given station and detector

Definition at line 364 of file Muon.cc.

References muMatches_.

Referenced by dDxDz(), dDyDz(), dX(), dY(), pullDxDz(), pullDyDz(), pullX(), pullY(), segmentDxDz(), segmentDxDzErr(), segmentDyDz(), segmentDyDzErr(), segmentX(), segmentXErr(), segmentY(), segmentYErr(), trackDist(), trackDistErr(), trackDxDz(), trackDxDzErr(), trackDyDz(), trackDyDzErr(), trackEdgeX(), trackEdgeY(), trackX(), trackXErr(), trackY(), and trackYErr().

365 {
366  std::vector<const MuonChamberMatch*> chambers;
367  for(std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
368  chamberMatch != muMatches_.end(); chamberMatch++)
369  if(chamberMatch->station()==station && chamberMatch->detector()==muonSubdetId)
370  chambers.push_back(&(*chamberMatch));
371  return chambers;
372 }
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
Muon * Muon::clone ( void  ) const
virtual
virtual TrackRef reco::Muon::combinedMuon ( ) const
inlinevirtual

reference to a stand-alone muon Track

Reimplemented from reco::RecoCandidate.

Reimplemented in pat::Muon.

Definition at line 55 of file Muon.h.

References globalTrack().

Referenced by MuonKinVsEtaAnalyzer::analyze(), AlignmentMuonSelector::basicCuts(), MuonIdProducer::fillGlbQuality(), MuonTimingFiller::fillTiming(), overlap(), helper::MuonCollectionStoreManager::processMuon(), and muon::tevOptimized().

55 { return globalTrack(); }
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:54
MuonQuality reco::Muon::combinedQuality ( ) const
inline

get energy deposition information

Definition at line 121 of file Muon.h.

References combinedQuality_.

Referenced by MuonIdProducer::fillGlbQuality(), MuonIdProducer::fillTrackerKink(), muon::isGoodMuon(), and setCombinedQuality().

121 { return combinedQuality_; }
MuonQuality combinedQuality_
quality block
Definition: Muon.h:244
float Muon::dDxDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 430 of file Muon.cc.

References chambers(), and pair().

431 {
432  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
433  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
434  if(! chamberSegmentPair.second->hasPhi()) return 999999;
435  return chamberSegmentPair.first->dXdZ-chamberSegmentPair.second->dXdZ;
436 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::dDyDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 438 of file Muon.cc.

References chambers(), MuonSubdetId::DT, and pair().

439 {
440  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
441  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
442  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
443  if(! chamberSegmentPair.second->hasZed()) return 999999;
444  return chamberSegmentPair.first->dYdZ-chamberSegmentPair.second->dYdZ;
445 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
static const int DT
Definition: MuonSubdetId.h:12
float Muon::dX ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

get deltas between (best) segment and track If no chamber or no segment returns 999999

Definition at line 413 of file Muon.cc.

References chambers(), and pair().

Referenced by muon::isGoodMuon(), and muon::segmentCompatibility().

414 {
415  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
416  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
417  if(! chamberSegmentPair.second->hasPhi()) return 999999;
418  return chamberSegmentPair.first->x-chamberSegmentPair.second->x;
419 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::dY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 421 of file Muon.cc.

References chambers(), MuonSubdetId::DT, and pair().

Referenced by muon::isGoodMuon(), and muon::segmentCompatibility().

422 {
423  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
424  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
425  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
426  if(! chamberSegmentPair.second->hasZed()) return 999999;
427  return chamberSegmentPair.first->y-chamberSegmentPair.second->y;
428 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
static const int DT
Definition: MuonSubdetId.h:12
virtual TrackRef reco::Muon::dytTrack ( ) const
inlinevirtual

Reimplemented in pat::Muon.

Definition at line 59 of file Muon.h.

References DYT, and muonTrackFromMap().

Referenced by pat::Muon::dytTrack(), pat::Muon::embedDytMuon(), and muonTrack().

59 { return muonTrackFromMap(DYT);}
TrackRef muonTrackFromMap(const MuonTrackType &type) const
Definition: Muon.h:73
virtual TrackRef reco::Muon::globalTrack ( ) const
inlinevirtual
virtual TrackRef reco::Muon::innerTrack ( ) const
inlinevirtual

Reimplemented in pat::Muon.

Definition at line 48 of file Muon.h.

References innerTrack_.

Referenced by EwkMuDQM::analyze(), EwkMuLumiMonitorDQM::analyze(), MuonPFAnalyzer::analyze(), HLTMuonMatchAndPlot::analyze(), MuonCosmicCompatibilityFiller::backToBack2LegCosmic(), ZToMuMuGammaAnalyzer::basicMuonSelection(), FWMuonBuilder::buildMuon(), FWMuonBuilder::calculateField(), MuonsFromRefitTracksProducer::cloneAndSwitchTrack(), cms::MuonMETValueMapProducer::determine_deltax_deltay(), pat::Muon::embedTrack(), MuonIdProducer::fillTrackerKink(), WMuNuValidator::filter(), LeptonRecoSkim::filter(), MuonMETAlgo::GetMuDepDeltas(), MuonTrackCleanerBase::getMuonMomentum(), cms::MuonTCMETValueMapProducer::isGoodCaloMuon(), muon::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodTrack(), muon::isHighPtMuon(), MuonCosmicCompatibilityFiller::isOverlappingMuon(), SoftPFMuonTagInfoProducer::isSoftMuon(), muon::isSoftMuon(), SoftPFMuonTagInfoProducer::isTightMuon(), muon::isTightMuon(), BTagHLTOfflineSource::isVBTFMuon(), FourVectorHLTOffline::isVBTFMuon(), MuonIdProducer::makeCaloMuon(), MuonResidualsFromTrack::MuonResidualsFromTrack(), muonTrack(), MuonIdProducer::phiOfMuonIneteractionRegion(), helper::MuonCollectionStoreManager::processMuon(), MuonWithPFIsoProducerCopy::produce(), MuonWithPFIsoProducer::produce(), UpdatedMuonInnerTrackRef::produce(), OutsideInMuonSeeder::produce(), cms::MuonTCMETValueMapProducer::produce(), MuonIdProducer::produce(), GlobalMuonTrackCleaner::produceTrackExtras(), cms::MuonTCMETValueMapProducer::propagateTrack(), MuonCosmicCompatibilityFiller::pvMatches(), BPhysicsOniaDQM::selGlobalMuon(), BPhysicsOniaDQM::selTrackerMuon(), cms::MuonMETValueMapProducer::should_type_MuonCandidateValuesUsed(), sigmaSwitch(), muon::sigmaSwitch(), SoftPFMuonTagInfoProducer::tagMuon(), muon::tevOptimized(), tevOptimizedTMR(), track(), and pat::Muon::track().

48 { return innerTrack_; }
TrackRef innerTrack_
reference to Track reconstructed in the tracker only
Definition: Muon.h:229
bool Muon::isAValidMuonTrack ( const MuonTrackType type) const

Definition at line 853 of file Muon.cc.

References edm::Ref< C, T, F >::isNonnull(), and muonTrack().

Referenced by pat::PATMuonProducer::fillMuon().

853  {
854  return muonTrack(type).isNonnull();
855 }
type
Definition: HCALResponse.h:21
TrackRef muonTrack(const MuonTrackType &) const
Definition: Muon.cc:857
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:250
bool reco::Muon::isCaloCompatibilityValid ( ) const
inline

Definition at line 152 of file Muon.h.

References caloCompatibility_.

Referenced by CaloMuonMerger::produce().

152 { return caloCompatibility_>=0; }
float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:255
bool reco::Muon::isCaloMuon ( ) const
inlinevirtual

Reimplemented from reco::LeafCandidate.

Definition at line 221 of file Muon.h.

References CaloMuon, and type_.

Referenced by TauDiscriminationAgainstMuon< TauType, TauDiscriminator >::evaluateMuonVeto(), and cms::MuonTCMETValueMapProducer::produce().

221 { return type_ & CaloMuon; }
unsigned int type_
muon type mask
Definition: Muon.h:269
static const unsigned int CaloMuon
Definition: Muon.h:210
bool reco::Muon::isEnergyValid ( ) const
inline

====================== ENERGY BLOCK ===========================

energy deposition

Definition at line 109 of file Muon.h.

References energyValid_.

Referenced by MuonTimingFiller::addEcalTime(), FWMuonDetailView::addSceneInfo(), FWMuonLegoProxyBuilder::build(), FWMuonDetailView::build(), MuonIdProducer::makeCaloMuon(), MuonIdProducer::produce(), and FWMuonDetailView::setTextInfo().

109 { return energyValid_; }
bool energyValid_
Definition: Muon.h:249
bool reco::Muon::isGlobalMuon ( ) const
inlinevirtual

Reimplemented from reco::LeafCandidate.

Definition at line 218 of file Muon.h.

References GlobalMuon, and type_.

Referenced by GlbMuQualityCutsAnalysis::analyze(), RPCRecHitProbability::analyze(), RPCMonitorDigi::analyze(), EwkMuDQM::analyze(), EwkMuLumiMonitorDQM::analyze(), ZMuMu_efficiencyAnalyzer::analyze(), ZMuMu_vtxAnalyzer::analyze(), AnaL1CaloCleaner::analyze(), MuonKinVsEtaAnalyzer::analyze(), MuTriggerAnalyzer::analyze(), HiggsDQM::analyze(), TestMuonCaloCleaner::analyze(), AnaMuonCaloCleaner::analyze(), MuonCosmicCompatibilityFiller::backToBack2LegCosmic(), AlignmentMuonSelector::basicCuts(), ZToMuMuGammaAnalyzer::basicMuonSelection(), FWMuonBuilder::buildMuon(), MuonCosmicCompatibilityFiller::combinedCosmicID(), cms::MuonMETValueMapProducer::determine_deltax_deltay(), TauDiscriminationAgainstMuon< TauType, TauDiscriminator >::evaluateMuonVeto(), MuonIdProducer::fillGlbQuality(), EwkMuTauHistManager::fillHistograms(), MuonShowerInformationFiller::fillHitsByStation(), pat::PATMuonProducer::fillMuon(), WMuNuValidator::filter(), WMuNuSelector::filter(), LeptonRecoSkim::filter(), MuonMETAlgo::GetMuDepDeltas(), muon::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodMuon(), muon::isHighPtMuon(), SoftPFMuonTagInfoProducer::isLooseMuon(), muon::isLooseMuon(), MuonCosmicCompatibilityFiller::isOverlappingMuon(), SoftPFMuonTagInfoProducer::isTightMuon(), muon::isTightMuon(), DistortedPFCandProducer::produce(), ZMuMuMuonUserData::produce(), ZMuMuUserData::produce(), ZToLLEdmNtupleDumper::produce(), cms::MuonTCMETValueMapProducer::produce(), MuonProducer::produce(), MuonMCClassifier::produce(), MuonCosmicCompatibilityFiller::pvMatches(), MuScleFitMuonSelector::selectMuons(), cms::MuonMETValueMapProducer::should_type_MuonCandidateValuesUsed(), and PFMuonSelector::TopPag12LjetsCuts().

218 { return type_ & GlobalMuon; }
static const unsigned int GlobalMuon
Definition: Muon.h:207
unsigned int type_
muon type mask
Definition: Muon.h:269
bool reco::Muon::isIsolationValid ( ) const
inline

Definition at line 170 of file Muon.h.

References isolationValid_.

Referenced by MuonMETAlgo::GetMuDepDeltas().

170 { return isolationValid_; }
bool isolationValid_
Definition: Muon.h:251
bool reco::Muon::isMatchesValid ( ) const
inline

====================== MUON MATCH BLOCK ===========================

Definition at line 138 of file Muon.h.

References matchesValid_.

Referenced by FWMuonBuilder::buildMuon(), muon::isGoodMuon(), and MuonIdProducer::overlap().

138 { return matchesValid_; }
bool matchesValid_
Definition: Muon.h:250
bool reco::Muon::isMuon ( ) const
inlinevirtual

Reimplemented from reco::LeafCandidate.

Definition at line 217 of file Muon.h.

217 { return true; }
const MuonIsolation& reco::Muon::isolationR03 ( ) const
inline
const MuonIsolation& reco::Muon::isolationR05 ( ) const
inline

Definition at line 159 of file Muon.h.

References isolationR05_.

Referenced by EwkMuTauHistManager::fillHistograms(), and MuonIsolationDQM::RecordData().

159 { return isolationR05_; }
MuonIsolation isolationR05_
Definition: Muon.h:258
bool reco::Muon::isPFIsolationValid ( ) const
inline

Definition at line 174 of file Muon.h.

References pfIsolationValid_.

174 { return pfIsolationValid_; }
bool pfIsolationValid_
Definition: Muon.h:252
bool reco::Muon::isPFMuon ( ) const
inline

Definition at line 222 of file Muon.h.

References PFMuon, and type_.

Referenced by MuonPFAnalyzer::analyze(), SoftPFMuonTagInfoProducer::isLooseMuon(), muon::isLooseMuon(), SoftPFMuonTagInfoProducer::isTightMuon(), muon::isTightMuon(), and MuonProducer::produce().

222 {return type_ & PFMuon;} //fix me ! Has to go to type
unsigned int type_
muon type mask
Definition: Muon.h:269
static const unsigned int PFMuon
Definition: Muon.h:211
bool reco::Muon::isQualityValid ( ) const
inline

====================== Quality BLOCK ===========================

energy deposition

Definition at line 119 of file Muon.h.

References qualityValid_.

Referenced by MuonIdProducer::fillTrackerKink(), and muon::isGoodMuon().

119 { return qualityValid_; }
bool qualityValid_
Definition: Muon.h:253
bool reco::Muon::isRPCMuon ( ) const
inline

Definition at line 223 of file Muon.h.

References RPCMuon, and type_.

Referenced by MuonIdProducer::fillMuonId(), and muon::isGoodMuon().

223 {return type_ & RPCMuon;}
unsigned int type_
muon type mask
Definition: Muon.h:269
static const unsigned int RPCMuon
Definition: Muon.h:212
bool reco::Muon::isStandAloneMuon ( ) const
inlinevirtual
bool reco::Muon::isTimeValid ( ) const
inline

====================== TIMING BLOCK ===========================

timing information

Definition at line 129 of file Muon.h.

References reco::MuonTime::nDof, and time_.

Referenced by MuonCosmicCompatibilityFiller::muonTiming(), and MuonIdProducer::produce().

129 { return (time_.nDof>0); }
int nDof
number of muon stations used
Definition: MuonTime.h:10
MuonTime time_
timing
Definition: Muon.h:248
bool reco::Muon::isTrackerMuon ( ) const
inlinevirtual

Reimplemented from reco::LeafCandidate.

Definition at line 219 of file Muon.h.

References TrackerMuon, and type_.

Referenced by GlbMuQualityCutsAnalysis::analyze(), EwkMuDQM::analyze(), MuonKinVsEtaAnalyzer::analyze(), HiggsDQM::analyze(), HLTMuonMatchAndPlot::analyze(), MuonAssociatorByHits::associateMuons(), MuonCosmicCompatibilityFiller::backToBack2LegCosmic(), AlignmentMuonSelector::basicCuts(), FWMuonBuilder::buildMuon(), cms::MuonMETValueMapProducer::determine_deltax_deltay(), TauDiscriminationAgainstMuon< TauType, TauDiscriminator >::evaluateMuonVeto(), EwkMuTauHistManager::fillHistograms(), MuonIdProducer::fillMuonId(), WMuNuValidator::filter(), WMuNuSelector::filter(), LeptonRecoSkim::filter(), MuonMETAlgo::GetMuDepDeltas(), muon::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodMuon(), SoftPFMuonTagInfoProducer::isLooseMuon(), muon::isLooseMuon(), FourVectorHLTOffline::isVBTFMuon(), MuonResidualsFromTrack::MuonResidualsFromTrack(), ZToMuMuGammaAnalyzer::muonSelection(), DistortedPFCandProducer::produce(), ZMuMuMuonUserData::produce(), ZToLLEdmNtupleDumper::produce(), cms::MuonTCMETValueMapProducer::produce(), MuonProducer::produce(), MuonCosmicCompatibilityFiller::pvMatches(), MuScleFitMuonSelector::selectMuons(), cms::MuonMETValueMapProducer::should_type_MuonCandidateValuesUsed(), and PFMuonSelector::TopPag12LjetsCuts().

219 { return type_ & TrackerMuon; }
unsigned int type_
muon type mask
Definition: Muon.h:269
static const unsigned int TrackerMuon
Definition: Muon.h:208
std::vector<MuonChamberMatch>& reco::Muon::matches ( )
inline
const std::vector<MuonChamberMatch>& reco::Muon::matches ( ) const
inline

Definition at line 141 of file Muon.h.

References muMatches_.

141 { return muMatches_; }
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
virtual TrackRef reco::Muon::muonBestTrack ( ) const
inlinevirtual

Definition at line 63 of file Muon.h.

References bestTrackType_, and muonTrack().

Referenced by pat::Muon::embedMuonBestTrack(), muon::isHighPtMuon(), SoftPFMuonTagInfoProducer::isSoftMuon(), SoftPFMuonTagInfoProducer::isTightMuon(), and muon::isTightMuon().

63 {return muonTrack(bestTrackType_);}
TrackRef muonTrack(const MuonTrackType &) const
Definition: Muon.cc:857
MuonTrackType bestTrackType_
reference to the Track chosen to assign the momentum value to the muon
Definition: Muon.h:237
virtual MuonTrackType reco::Muon::muonBestTrackType ( ) const
inlinevirtual

Definition at line 64 of file Muon.h.

References bestTrackType_.

Referenced by MuonPFAnalyzer::muonTrackType().

64 {return bestTrackType_;}
MuonTrackType bestTrackType_
reference to the Track chosen to assign the momentum value to the muon
Definition: Muon.h:237
TrackRef Muon::muonTrack ( const MuonTrackType type) const

Definition at line 857 of file Muon.cc.

References CombinedTrack, DYT, dytTrack(), globalTrack(), InnerTrack, innerTrack(), muonTrackFromMap(), OuterTrack, Picky, pickyTrack(), standAloneMuon(), TPFMS, and tpfmsTrack().

Referenced by bestTrack(), bestTrackRef(), isAValidMuonTrack(), muonBestTrack(), and tunePMuonBestTrack().

857  {
858  switch (type) {
859  case InnerTrack: return innerTrack();
860  case OuterTrack: return standAloneMuon();
861  case CombinedTrack: return globalTrack();
862  case TPFMS: return tpfmsTrack();
863  case Picky: return pickyTrack();
864  case DYT: return dytTrack();
865  default: return muonTrackFromMap(type);
866  }
867 }
type
Definition: HCALResponse.h:21
virtual TrackRef innerTrack() const
Definition: Muon.h:48
virtual TrackRef tpfmsTrack() const
Definition: Muon.h:57
virtual TrackRef pickyTrack() const
Definition: Muon.h:58
virtual TrackRef dytTrack() const
Definition: Muon.h:59
TrackRef muonTrackFromMap(const MuonTrackType &type) const
Definition: Muon.h:73
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:54
virtual TrackRef standAloneMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:52
TrackRef reco::Muon::muonTrackFromMap ( const MuonTrackType type) const
inline

Definition at line 73 of file Muon.h.

References refittedTrackMap_.

Referenced by dytTrack(), muonTrack(), pickyTrack(), and tpfmsTrack().

73  {
74  MuonTrackRefMap::const_iterator iter = refittedTrackMap_.find(type);
75  if (iter != refittedTrackMap_.end())
76  return iter->second;
77  else
78  return TrackRef();
79  }
type
Definition: HCALResponse.h:21
MuonTrackRefMap refittedTrackMap_
reference to the Global Track refitted with dedicated TeV reconstructors
Definition: Muon.h:235
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:14
int reco::Muon::numberOfChambers ( ) const
inline

====================== USEFUL METHODs ===========================

number of chambers (MuonChamberMatches include RPC rolls)

Definition at line 184 of file Muon.h.

References muMatches_.

Referenced by numberOfChambersNoRPC(), ZMuMuMuonUserData::produce(), and ZToLLEdmNtupleDumper::produce().

184 { return muMatches_.size(); }
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
int Muon::numberOfChambersNoRPC ( ) const

number of chambers not including RPC matches (MuonChamberMatches include RPC rolls)

Definition at line 48 of file Muon.cc.

References matches(), numberOfChambers(), MuonSubdetId::RPC, and pileupDistInMC::total.

49 {
50  int total = 0;
51  int nAll = numberOfChambers();
52  for (int iC = 0; iC < nAll; ++iC){
53  if (matches()[iC].detector() == MuonSubdetId::RPC) continue;
54  total++;
55  }
56 
57  return total;
58 }
int numberOfChambers() const
Definition: Muon.h:184
std::vector< MuonChamberMatch > & matches()
get muon matching information
Definition: Muon.h:140
static const int RPC
Definition: MuonSubdetId.h:14
int Muon::numberOfMatchedRPCLayers ( ArbitrationType  type = RPCHitAndTrackArbitration) const

get bit map of stations with tracks within given distance (in cm) of chamber edges bit assignments are same as above

Definition at line 203 of file Muon.cc.

References RPClayerMask().

Referenced by MuonIdProducer::isGoodRPCMuon().

204 {
205  int layers(0);
206 
207  unsigned int theRPCLayerMask = RPClayerMask(type);
208  // maximum ten layers because of 6 layers in barrel and 3 (4) layers in each endcap before (after) upscope
209  for(int it = 0; it < 10; ++it)
210  if (theRPCLayerMask & 1<<it)
211  ++layers;
212 
213  return layers;
214 }
type
Definition: HCALResponse.h:21
unsigned int RPClayerMask(ArbitrationType type=RPCHitAndTrackArbitration) const
Definition: Muon.cc:216
int Muon::numberOfMatchedStations ( ArbitrationType  type = SegmentAndTrackArbitration) const

get number of stations with matched segments just adds the bits returned by stationMask

Definition at line 110 of file Muon.cc.

References stationMask(), and mergeVDriftHistosByStation::stations.

Referenced by muon::isHighPtMuon(), SoftPFMuonTagInfoProducer::isTightMuon(), and muon::isTightMuon().

111 {
112  int stations(0);
113 
114  unsigned int theStationMask = stationMask(type);
115  // eight stations, eight bits
116  for(int it = 0; it < 8; ++it)
117  if (theStationMask & 1<<it)
118  ++stations;
119 
120  return stations;
121 }
type
Definition: HCALResponse.h:21
unsigned int stationMask(ArbitrationType type=SegmentAndTrackArbitration) const
Definition: Muon.cc:123
int Muon::numberOfMatches ( ArbitrationType  type = SegmentAndTrackArbitration) const

get number of chambers with matched segments

Definition at line 60 of file Muon.cc.

References reco::MuonSegmentMatch::BelongsToTrackByCleaning, reco::MuonSegmentMatch::BelongsToTrackByDR, reco::MuonSegmentMatch::BestInChamberByDR, matches(), muMatches_, NoArbitration, RPCHitAndTrackArbitration, SegmentAndTrackArbitration, SegmentAndTrackArbitrationCleaned, and SegmentArbitration.

Referenced by EwkMuDQM::analyze(), MuonCosmicCompatibilityFiller::checkMuonSegments(), TauDiscriminationAgainstMuon< TauType, TauDiscriminator >::evaluateMuonVeto(), MuonVPlusJetsIDSelectionFunctor::fall10Cuts(), MuonIdProducer::fillMuonId(), TrackerMuonHitExtractor::getMuonHits(), muon::isGoodMuon(), MuonIdProducer::isGoodTrackerMuon(), BTagHLTOfflineSource::isVBTFMuon(), FourVectorHLTOffline::isVBTFMuon(), MuonVPlusJetsIDSelectionFunctor::kitQCDCuts(), ZToMuMuGammaAnalyzer::muonSelection(), muon::overlap(), ZMuMuMuonUserData::produce(), ZToLLEdmNtupleDumper::produce(), and PFMuonSelector::TopPag12LjetsCuts().

61 {
62  int matches(0);
63  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
64  chamberMatch != muMatches_.end(); chamberMatch++ )
65  {
67  if(chamberMatch->rpcMatches.empty()) continue;
68  matches += chamberMatch->rpcMatches.size();
69  continue;
70  }
71 
72  if(chamberMatch->segmentMatches.empty()) continue;
73  if(type == NoArbitration) {
74  matches++;
75  continue;
76  }
77 
78  for( std::vector<MuonSegmentMatch>::const_iterator segmentMatch = chamberMatch->segmentMatches.begin();
79  segmentMatch != chamberMatch->segmentMatches.end(); segmentMatch++ )
80  {
82  if(segmentMatch->isMask(MuonSegmentMatch::BestInChamberByDR)) {
83  matches++;
84  break;
85  }
87  if(segmentMatch->isMask(MuonSegmentMatch::BestInChamberByDR) &&
88  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR)) {
89  matches++;
90  break;
91  }
93  if(segmentMatch->isMask(MuonSegmentMatch::BestInChamberByDR) &&
94  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR) &&
95  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByCleaning)) {
96  matches++;
97  break;
98  }
99  if(type > 1<<7)
100  if(segmentMatch->isMask(type)) {
101  matches++;
102  break;
103  }
104  }
105  }
106 
107  return matches;
108 }
type
Definition: HCALResponse.h:21
static const unsigned int BestInChamberByDR
static const unsigned int BelongsToTrackByCleaning
std::vector< MuonChamberMatch > & matches()
get muon matching information
Definition: Muon.h:140
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
static const unsigned int BelongsToTrackByDR
int Muon::numberOfSegments ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

get number of segments

Definition at line 318 of file Muon.cc.

References reco::MuonSegmentMatch::BelongsToTrackByCleaning, reco::MuonSegmentMatch::BelongsToTrackByDR, reco::MuonSegmentMatch::BestInStationByDR, muMatches_, NoArbitration, SegmentAndTrackArbitration, SegmentAndTrackArbitrationCleaned, and SegmentArbitration.

319 {
320  int segments(0);
321  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
322  chamberMatch != muMatches_.end(); chamberMatch++ )
323  {
324  if(chamberMatch->segmentMatches.empty()) continue;
325  if(!(chamberMatch->station()==station && chamberMatch->detector()==muonSubdetId)) continue;
326 
327  if(type == NoArbitration) {
328  segments += chamberMatch->segmentMatches.size();
329  continue;
330  }
331 
332  for( std::vector<MuonSegmentMatch>::const_iterator segmentMatch = chamberMatch->segmentMatches.begin();
333  segmentMatch != chamberMatch->segmentMatches.end(); segmentMatch++ )
334  {
335  if(type == SegmentArbitration)
336  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR)) {
337  segments++;
338  break;
339  }
341  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
342  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR)) {
343  segments++;
344  break;
345  }
347  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
348  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR) &&
349  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByCleaning)) {
350  segments++;
351  break;
352  }
353  if(type > 1<<7)
354  if(segmentMatch->isMask(type)) {
355  segments++;
356  break;
357  }
358  }
359  }
360 
361  return segments;
362 }
type
Definition: HCALResponse.h:21
static const unsigned int BestInStationByDR
static const unsigned int BelongsToTrackByCleaning
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
static const unsigned int BelongsToTrackByDR
virtual TrackRef reco::Muon::outerTrack ( ) const
inlinevirtual
bool Muon::overlap ( const Candidate c) const
privatevirtual

check overlap with another candidate

Implements reco::RecoCandidate.

Definition at line 33 of file Muon.cc.

References trackerHits::c, reco::RecoCandidate::checkOverlap(), reco::RecoCandidate::combinedMuon(), combinedMuon(), python.connectstrParser::o, reco::RecoCandidate::standAloneMuon(), standAloneMuon(), reco::RecoCandidate::track(), and track().

33  {
34  const RecoCandidate * o = dynamic_cast<const RecoCandidate *>( & c );
35  return ( o != 0 &&
36  ( checkOverlap( track(), o->track() ) ||
39  checkOverlap( standAloneMuon(), o->track() ) ||
40  checkOverlap( combinedMuon(), o->track() ) )
41  );
42 }
bool checkOverlap(const R &r1, const R &r2) const
check if two components overlap
Definition: RecoCandidate.h:63
virtual TrackRef track() const
reference to a Track
Definition: Muon.h:49
virtual reco::TrackRef standAloneMuon() const
reference to a stand-alone muon Track
virtual reco::TrackRef track() const
reference to a Track
virtual TrackRef combinedMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:55
virtual reco::TrackRef combinedMuon() const
reference to a stand-alone muon Track
virtual TrackRef standAloneMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:52
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > Muon::pair ( const std::vector< const MuonChamberMatch * > &  chambers,
ArbitrationType  type = SegmentAndTrackArbitration 
) const
private

get pointers to best segment and corresponding chamber in vector of chambers

Definition at line 374 of file Muon.cc.

References reco::MuonSegmentMatch::BelongsToTrackByCleaning, reco::MuonSegmentMatch::BelongsToTrackByDR, reco::MuonSegmentMatch::BestInStationByDR, m, NoArbitration, alignCSCRings::s, SegmentAndTrackArbitration, SegmentAndTrackArbitrationCleaned, and SegmentArbitration.

Referenced by dDxDz(), dDyDz(), dX(), dY(), pullDxDz(), pullDyDz(), pullX(), pullY(), segmentDxDz(), segmentDxDzErr(), segmentDyDz(), segmentDyDzErr(), segmentX(), segmentXErr(), segmentY(), segmentYErr(), trackDist(), trackDistErr(), trackDxDz(), trackDxDzErr(), trackDyDz(), trackDyDzErr(), trackEdgeX(), trackEdgeY(), trackX(), trackXErr(), trackY(), and trackYErr().

376 {
377  MuonChamberMatch* m = 0;
378  MuonSegmentMatch* s = 0;
379  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair(m,s);
380 
381  if(chambers.empty()) return chamberSegmentPair;
382  for( std::vector<const MuonChamberMatch*>::const_iterator chamberMatch = chambers.begin();
383  chamberMatch != chambers.end(); chamberMatch++ )
384  {
385  if((*chamberMatch)->segmentMatches.empty()) continue;
386  if(type == NoArbitration)
387  return std::make_pair(*chamberMatch, &((*chamberMatch)->segmentMatches.front()));
388 
389  for( std::vector<MuonSegmentMatch>::const_iterator segmentMatch = (*chamberMatch)->segmentMatches.begin();
390  segmentMatch != (*chamberMatch)->segmentMatches.end(); segmentMatch++ )
391  {
392  if(type == SegmentArbitration)
393  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR))
394  return std::make_pair(*chamberMatch, &(*segmentMatch));
396  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
397  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR))
398  return std::make_pair(*chamberMatch, &(*segmentMatch));
400  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
401  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR) &&
402  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByCleaning))
403  return std::make_pair(*chamberMatch, &(*segmentMatch));
404  if(type > 1<<7)
405  if(segmentMatch->isMask(type))
406  return std::make_pair(*chamberMatch, &(*segmentMatch));
407  }
408  }
409 
410  return chamberSegmentPair;
411 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
static const unsigned int BestInStationByDR
static const unsigned int BelongsToTrackByCleaning
static const unsigned int BelongsToTrackByDR
const MuonPFIsolation& reco::Muon::pfIsolationR03 ( ) const
inline

Definition at line 161 of file Muon.h.

References pfIsolationR03_.

Referenced by MuonIsolationDQM::RecordData().

161 { return pfIsolationR03_; }
MuonPFIsolation pfIsolationR03_
PF Isolation information for two cones with dR=0.3 and dR=0.4.
Definition: Muon.h:261
const MuonPFIsolation& reco::Muon::pfIsolationR04 ( ) const
inline

Definition at line 164 of file Muon.h.

References pfIsolationR04_.

Referenced by MuonIsolationDQM::RecordData().

164 { return pfIsolationR04_; }
MuonPFIsolation pfIsolationR04_
Definition: Muon.h:264
const MuonPFIsolation& reco::Muon::pfMeanDRIsoProfileR03 ( ) const
inline

Definition at line 162 of file Muon.h.

References pfIsoMeanDRR03_.

162 { return pfIsoMeanDRR03_; }
MuonPFIsolation pfIsoMeanDRR03_
Definition: Muon.h:262
const MuonPFIsolation& reco::Muon::pfMeanDRIsoProfileR04 ( ) const
inline

Definition at line 165 of file Muon.h.

References pfIsoMeanDRR04_.

Referenced by MuonIsolationDQM::RecordData().

165 { return pfIsoMeanDRR04_; }
MuonPFIsolation pfIsoMeanDRR04_
Definition: Muon.h:265
reco::Candidate::LorentzVector reco::Muon::pfP4 ( ) const
inline

set reference to PFCandidate

====================== PF BLOCK ===========================

Definition at line 102 of file Muon.h.

References pfP4_.

Referenced by RecoMuonValidator::MuonME::fill(), and MuonProducer::produce().

102 {return pfP4_;}
reco::Candidate::LorentzVector pfP4_
Definition: Muon.h:272
const MuonPFIsolation& reco::Muon::pfSumDRIsoProfileR03 ( ) const
inline

Definition at line 163 of file Muon.h.

References pfIsoSumDRR03_.

163 { return pfIsoSumDRR03_; }
MuonPFIsolation pfIsoSumDRR03_
Definition: Muon.h:263
const MuonPFIsolation& reco::Muon::pfSumDRIsoProfileR04 ( ) const
inline

Definition at line 166 of file Muon.h.

References pfIsoSumDRR04_.

Referenced by MuonIsolationDQM::RecordData().

166 { return pfIsoSumDRR04_; }
MuonPFIsolation pfIsoSumDRR04_
Definition: Muon.h:266
virtual TrackRef reco::Muon::pickyTrack ( ) const
inlinevirtual

Reimplemented in pat::Muon.

Definition at line 58 of file Muon.h.

References muonTrackFromMap(), and Picky.

Referenced by pat::Muon::embedPickyMuon(), muonTrack(), pat::Muon::pickyTrack(), and muon::tevOptimized().

58 { return muonTrackFromMap(Picky);}
TrackRef muonTrackFromMap(const MuonTrackType &type) const
Definition: Muon.h:73
float Muon::pullDxDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration,
bool  includeSegmentError = true 
) const

Definition at line 468 of file Muon.cc.

References chambers(), pair(), funct::pow(), and mathSSE::sqrt().

Referenced by muon::isGoodMuon().

469 {
470  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
471  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
472  if(! chamberSegmentPair.second->hasPhi()) return 999999;
473  if(includeSegmentError)
474  return (chamberSegmentPair.first->dXdZ-chamberSegmentPair.second->dXdZ)/sqrt(pow(chamberSegmentPair.first->dXdZErr,2)+pow(chamberSegmentPair.second->dXdZErr,2));
475  return (chamberSegmentPair.first->dXdZ-chamberSegmentPair.second->dXdZ)/chamberSegmentPair.first->dXdZErr;
476 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
T sqrt(T t)
Definition: SSEVec.h:48
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
float Muon::pullDyDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration,
bool  includeSegmentError = true 
) const

Definition at line 478 of file Muon.cc.

References chambers(), MuonSubdetId::DT, pair(), funct::pow(), and mathSSE::sqrt().

Referenced by muon::isGoodMuon().

479 {
480  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
481  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
482  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
483  if(! chamberSegmentPair.second->hasZed()) return 999999;
484  if(includeSegmentError)
485  return (chamberSegmentPair.first->dYdZ-chamberSegmentPair.second->dYdZ)/sqrt(pow(chamberSegmentPair.first->dYdZErr,2)+pow(chamberSegmentPair.second->dYdZErr,2));
486  return (chamberSegmentPair.first->dYdZ-chamberSegmentPair.second->dYdZ)/chamberSegmentPair.first->dYdZErr;
487 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
T sqrt(T t)
Definition: SSEVec.h:48
static const int DT
Definition: MuonSubdetId.h:12
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
float Muon::pullX ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration,
bool  includeSegmentError = true 
) const

Definition at line 447 of file Muon.cc.

References chambers(), pair(), funct::pow(), and mathSSE::sqrt().

Referenced by muon::isGoodMuon(), and muon::segmentCompatibility().

448 {
449  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
450  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
451  if(! chamberSegmentPair.second->hasPhi()) return 999999;
452  if(includeSegmentError)
453  return (chamberSegmentPair.first->x-chamberSegmentPair.second->x)/sqrt(pow(chamberSegmentPair.first->xErr,2)+pow(chamberSegmentPair.second->xErr,2));
454  return (chamberSegmentPair.first->x-chamberSegmentPair.second->x)/chamberSegmentPair.first->xErr;
455 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
T sqrt(T t)
Definition: SSEVec.h:48
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
float Muon::pullY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration,
bool  includeSegmentError = true 
) const

Definition at line 457 of file Muon.cc.

References chambers(), MuonSubdetId::DT, pair(), funct::pow(), and mathSSE::sqrt().

Referenced by muon::isGoodMuon(), and muon::segmentCompatibility().

458 {
459  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
460  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
461  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
462  if(! chamberSegmentPair.second->hasZed()) return 999999;
463  if(includeSegmentError)
464  return (chamberSegmentPair.first->y-chamberSegmentPair.second->y)/sqrt(pow(chamberSegmentPair.first->yErr,2)+pow(chamberSegmentPair.second->yErr,2));
465  return (chamberSegmentPair.first->y-chamberSegmentPair.second->y)/chamberSegmentPair.first->yErr;
466 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
T sqrt(T t)
Definition: SSEVec.h:48
static const int DT
Definition: MuonSubdetId.h:12
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
unsigned int Muon::RPClayerMask ( ArbitrationType  type = RPCHitAndTrackArbitration) const

Definition at line 216 of file Muon.cc.

References RPCDetId::layer(), muMatches_, DetId::rawId(), and RPCDetId::region().

Referenced by numberOfMatchedRPCLayers().

217 {
218  unsigned int totMask(0);
219  unsigned int curMask(0);
220  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
221  chamberMatch != muMatches_.end(); chamberMatch++ )
222  {
223  if(chamberMatch->rpcMatches.empty()) continue;
224 
225  RPCDetId rollId = chamberMatch->id.rawId();
226  const int region = rollId.region();
227 
228  const int layer = rollId.layer();
229  int rpcLayer = chamberMatch->station();
230  if (region==0) {
231  rpcLayer = chamberMatch->station()-1 + chamberMatch->station()*layer;
232  if ((chamberMatch->station()==2 && layer==2) || (chamberMatch->station()==4 && layer==1)) rpcLayer -= 1;
233  } else rpcLayer += 6;
234 
235  for( std::vector<MuonRPCHitMatch>::const_iterator rpcMatch = chamberMatch->rpcMatches.begin();
236  rpcMatch != chamberMatch->rpcMatches.end(); rpcMatch++ )
237  {
238  curMask = 1<<(rpcLayer-1);
239 
240  // do not double count
241  if(!(totMask & curMask))
242  totMask += curMask;
243  }
244  }
245 
246  return totMask;
247 
248 }
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
int layer() const
Definition: RPCDetId.h:108
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.
Definition: RPCDetId.h:63
float Muon::segmentDxDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 506 of file Muon.cc.

References chambers(), and pair().

507 {
508  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
509  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
510  if(! chamberSegmentPair.second->hasPhi()) return 999999;
511  return chamberSegmentPair.second->dXdZ;
512 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::segmentDxDzErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 540 of file Muon.cc.

References chambers(), and pair().

541 {
542  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
543  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
544  if(! chamberSegmentPair.second->hasPhi()) return 999999;
545  return chamberSegmentPair.second->dXdZErr;
546 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::segmentDyDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 514 of file Muon.cc.

References chambers(), MuonSubdetId::DT, and pair().

515 {
516  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
517  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
518  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
519  if(! chamberSegmentPair.second->hasZed()) return 999999;
520  return chamberSegmentPair.second->dYdZ;
521 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
static const int DT
Definition: MuonSubdetId.h:12
float Muon::segmentDyDzErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 548 of file Muon.cc.

References chambers(), MuonSubdetId::DT, and pair().

549 {
550  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
551  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
552  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
553  if(! chamberSegmentPair.second->hasZed()) return 999999;
554  return chamberSegmentPair.second->dYdZErr;
555 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
static const int DT
Definition: MuonSubdetId.h:12
float Muon::segmentX ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

get (best) segment information If no segment returns 999999

Definition at line 489 of file Muon.cc.

References chambers(), and pair().

Referenced by muon::segmentCompatibility().

490 {
491  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
492  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
493  if(! chamberSegmentPair.second->hasPhi()) return 999999;
494  return chamberSegmentPair.second->x;
495 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::segmentXErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 523 of file Muon.cc.

References chambers(), and pair().

524 {
525  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
526  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
527  if(! chamberSegmentPair.second->hasPhi()) return 999999;
528  return chamberSegmentPair.second->xErr;
529 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::segmentY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 497 of file Muon.cc.

References chambers(), MuonSubdetId::DT, and pair().

498 {
499  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
500  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
501  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
502  if(! chamberSegmentPair.second->hasZed()) return 999999;
503  return chamberSegmentPair.second->y;
504 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
static const int DT
Definition: MuonSubdetId.h:12
float Muon::segmentYErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 531 of file Muon.cc.

References chambers(), MuonSubdetId::DT, and pair().

532 {
533  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
534  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
535  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
536  if(! chamberSegmentPair.second->hasZed()) return 999999;
537  return chamberSegmentPair.second->yErr;
538 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
static const int DT
Definition: MuonSubdetId.h:12
virtual void reco::Muon::setBestTrack ( MuonTrackType  muonType)
inlinevirtual

Definition at line 91 of file Muon.h.

References bestTrackType_.

Referenced by MuonsFromRefitTracksProducer::cloneAndSwitchTrack(), MuonIdProducer::makeMuon(), and MuonProducer::produce().

91 {bestTrackType_ = muonType;}
MuonTrackType bestTrackType_
reference to the Track chosen to assign the momentum value to the muon
Definition: Muon.h:237
void reco::Muon::setCalEnergy ( const MuonEnergy calEnergy)
inline

set energy deposition information

Definition at line 113 of file Muon.h.

References calEnergy(), calEnergy_, and energyValid_.

Referenced by MuonIdProducer::fillMuonId(), and CaloMuonMerger::produce().

113 { calEnergy_ = calEnergy; energyValid_ = true; }
MuonEnergy calEnergy_
energy deposition
Definition: Muon.h:242
bool energyValid_
Definition: Muon.h:249
MuonEnergy calEnergy() const
get energy deposition information
Definition: Muon.h:111
void reco::Muon::setCaloCompatibility ( float  input)
inline

Definition at line 151 of file Muon.h.

References caloCompatibility_, and input.

Referenced by CaloMuonMerger::produce().

float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:255
static std::string const input
Definition: EdmProvDump.cc:44
void Muon::setCombined ( const TrackRef t)
virtual

Definition at line 850 of file Muon.cc.

References setGlobalTrack().

Referenced by GlobalMuonToMuonProducer::produce().

850 { setGlobalTrack(t); }
virtual void setGlobalTrack(const TrackRef &t)
set reference to Track
Definition: Muon.cc:849
void reco::Muon::setCombinedQuality ( const MuonQuality combinedQuality)
inline

set energy deposition information

Definition at line 123 of file Muon.h.

References combinedQuality(), combinedQuality_, and qualityValid_.

Referenced by MuonIdProducer::fillGlbQuality(), and MuonIdProducer::fillTrackerKink().

MuonQuality combinedQuality() const
get energy deposition information
Definition: Muon.h:121
MuonQuality combinedQuality_
quality block
Definition: Muon.h:244
bool qualityValid_
Definition: Muon.h:253
void Muon::setGlobalTrack ( const TrackRef t)
virtual

set reference to Track

Definition at line 849 of file Muon.cc.

References globalTrack_, and lumiQTWidget::t.

Referenced by MuonsFromRefitTracksProducer::cloneAndSwitchTrack(), MuonIdProducer::makeMuon(), MuonsFromRefitTracksProducer::produce(), setCombined(), and setMuonTrack().

849 { globalTrack_ = t; }
TrackRef globalTrack_
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:233
void Muon::setInnerTrack ( const TrackRef t)
virtual

set reference to Track

Definition at line 846 of file Muon.cc.

References innerTrack_, and lumiQTWidget::t.

Referenced by MuonsFromRefitTracksProducer::cloneAndSwitchTrack(), MuonIdProducer::makeMuon(), UpdatedMuonInnerTrackRef::produce(), CaloMuonMerger::produce(), MuonsFromRefitTracksProducer::produce(), setMuonTrack(), and setTrack().

846 { innerTrack_ = t; }
TrackRef innerTrack_
reference to Track reconstructed in the tracker only
Definition: Muon.h:229
void Muon::setIsolation ( const MuonIsolation isoR03,
const MuonIsolation isoR05 
)

Definition at line 805 of file Muon.cc.

References isolationR03_, isolationR05_, and isolationValid_.

Referenced by MuonIdProducer::fillMuonIsolation(), MuonWithPFIsoProducerCopy::produce(), and MuonWithPFIsoProducer::produce().

806 {
807  isolationR03_ = isoR03;
808  isolationR05_ = isoR05;
809  isolationValid_ = true;
810 }
MuonIsolation isolationR05_
Definition: Muon.h:258
bool isolationValid_
Definition: Muon.h:251
MuonIsolation isolationR03_
Isolation information for two cones with dR=0.3 and dR=0.5.
Definition: Muon.h:257
void reco::Muon::setMatches ( const std::vector< MuonChamberMatch > &  matches)
inline

set muon matching information

Definition at line 143 of file Muon.h.

References matches(), matchesValid_, and muMatches_.

Referenced by MuonIdProducer::fillMuonId().

143 { muMatches_ = matches; matchesValid_ = true; }
std::vector< MuonChamberMatch > & matches()
get muon matching information
Definition: Muon.h:140
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
bool matchesValid_
Definition: Muon.h:250
void Muon::setMuonTrack ( const MuonTrackType type,
const TrackRef t 
)

Definition at line 869 of file Muon.cc.

References CombinedTrack, InnerTrack, OuterTrack, refittedTrackMap_, setGlobalTrack(), setInnerTrack(), setStandAlone(), lumiQTWidget::t, and type().

Referenced by MuonIdProducer::makeMuon().

869  {
870 
871  switch (type) {
872  case InnerTrack: setInnerTrack(t); break;
873  case OuterTrack: setStandAlone(t); break;
874  case CombinedTrack: setGlobalTrack(t); break;
875  default: refittedTrackMap_[type] = t; break;
876  }
877 
878 }
type
Definition: HCALResponse.h:21
virtual void setInnerTrack(const TrackRef &t)
set reference to Track
Definition: Muon.cc:846
virtual void setStandAlone(const TrackRef &t)
Definition: Muon.cc:848
MuonTrackRefMap refittedTrackMap_
reference to the Global Track refitted with dedicated TeV reconstructors
Definition: Muon.h:235
unsigned int type() const
Definition: Muon.h:215
virtual void setGlobalTrack(const TrackRef &t)
set reference to Track
Definition: Muon.cc:849
void Muon::setOuterTrack ( const TrackRef t)
virtual

set reference to Track

Definition at line 845 of file Muon.cc.

References outerTrack_, and lumiQTWidget::t.

Referenced by MuonsFromRefitTracksProducer::cloneAndSwitchTrack(), MuonIdProducer::makeMuon(), MuonsFromRefitTracksProducer::produce(), and setStandAlone().

845 { outerTrack_ = t; }
TrackRef outerTrack_
reference to Track reconstructed in the muon detector only
Definition: Muon.h:231
void Muon::setPFIsolation ( const std::string &  label,
const reco::MuonPFIsolation deposit 
)

Definition at line 813 of file Muon.cc.

References pfIsolationR03_, pfIsolationR04_, pfIsolationValid_, pfIsoMeanDRR03_, pfIsoMeanDRR04_, pfIsoSumDRR03_, and pfIsoSumDRR04_.

Referenced by MuPFIsoHelper::embedPFIsolation().

814 {
815  if(label=="pfIsolationR03")
816  pfIsolationR03_ = deposit;
817 
818  if(label=="pfIsolationR04")
819  pfIsolationR04_ = deposit;
820 
821  if(label=="pfIsoMeanDRProfileR03")
822  pfIsoMeanDRR03_ = deposit;
823 
824  if(label=="pfIsoMeanDRProfileR04")
825  pfIsoMeanDRR04_ = deposit;
826 
827  if(label=="pfIsoSumDRProfileR03")
828  pfIsoSumDRR03_ = deposit;
829 
830  if(label=="pfIsoSumDRProfileR04")
831  pfIsoSumDRR04_ = deposit;
832 
833  pfIsolationValid_ = true;
834 }
MuonPFIsolation pfIsoSumDRR03_
Definition: Muon.h:263
MuonPFIsolation pfIsoMeanDRR04_
Definition: Muon.h:265
MuonPFIsolation pfIsolationR04_
Definition: Muon.h:264
MuonPFIsolation pfIsolationR03_
PF Isolation information for two cones with dR=0.3 and dR=0.4.
Definition: Muon.h:261
MuonPFIsolation pfIsoSumDRR04_
Definition: Muon.h:266
bool pfIsolationValid_
Definition: Muon.h:252
MuonPFIsolation pfIsoMeanDRR03_
Definition: Muon.h:262
void Muon::setPFP4 ( const reco::Candidate::LorentzVector p4_)
virtual

Definition at line 837 of file Muon.cc.

References reco::LeafCandidate::p4(), PFMuon, pfP4_, and type_.

Referenced by MuonProducer::produce().

838 {
839  pfP4_ = p4;
840  type_ = type_ | PFMuon;
841 }
reco::Candidate::LorentzVector pfP4_
Definition: Muon.h:272
virtual const LorentzVector & p4() const GCC11_FINAL
four-momentum Lorentz vector
unsigned int type_
muon type mask
Definition: Muon.h:269
static const unsigned int PFMuon
Definition: Muon.h:211
void Muon::setStandAlone ( const TrackRef t)
virtual

Definition at line 848 of file Muon.cc.

References setOuterTrack().

Referenced by GlobalMuonToMuonProducer::produce(), and setMuonTrack().

848 { setOuterTrack(t); }
virtual void setOuterTrack(const TrackRef &t)
set reference to Track
Definition: Muon.cc:845
void reco::Muon::setTime ( const MuonTime time)
inline

set timing information

Definition at line 133 of file Muon.h.

References time(), and time_.

133 { time_ = time; }
MuonTime time() const
get timing information
Definition: Muon.h:131
MuonTime time_
timing
Definition: Muon.h:248
void Muon::setTrack ( const TrackRef t)
virtual

Definition at line 847 of file Muon.cc.

References setInnerTrack().

Referenced by GlobalMuonToMuonProducer::produce().

847 { setInnerTrack(t); }
virtual void setInnerTrack(const TrackRef &t)
set reference to Track
Definition: Muon.cc:846
virtual void reco::Muon::setTunePBestTrack ( MuonTrackType  muonType)
inlinevirtual

Definition at line 93 of file Muon.h.

References bestTunePTrackType_.

Referenced by MuonIdProducer::makeMuon().

93 {bestTunePTrackType_ = muonType;}
MuonTrackType bestTunePTrackType_
reference to the Track chosen to assign the momentum value to the muon by PF
Definition: Muon.h:239
void reco::Muon::setType ( unsigned int  type)
inline

Definition at line 214 of file Muon.h.

References type(), and type_.

Referenced by CaloMuonMerger::produce(), and MuonIdProducer::produce().

214 { type_ = type; }
unsigned int type_
muon type mask
Definition: Muon.h:269
unsigned int type() const
Definition: Muon.h:215
virtual TrackRef reco::Muon::standAloneMuon ( ) const
inlinevirtual
unsigned int Muon::stationGapMaskDistance ( float  distanceCut = 10.) const

Definition at line 250 of file Muon.cc.

References muMatches_, and plotscripts::stationIndex().

251 {
252  unsigned int totMask(0);
253  for( int stationIndex = 1; stationIndex < 5; stationIndex++ )
254  {
255  for( int detectorIndex = 1; detectorIndex < 4; detectorIndex++ )
256  {
257  unsigned int curMask(0);
258  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
259  chamberMatch != muMatches_.end(); chamberMatch++ )
260  {
261  if(!(chamberMatch->station()==stationIndex && chamberMatch->detector()==detectorIndex)) continue;
262 
263  float edgeX = chamberMatch->edgeX;
264  float edgeY = chamberMatch->edgeY;
265  if(edgeX<0 && fabs(edgeX)>fabs(distanceCut) &&
266  edgeY<0 && fabs(edgeY)>fabs(distanceCut)) // inside the chamber so negates all gaps for this station
267  {
268  curMask = 0;
269  break;
270  }
271  if( ( fabs(edgeX) < fabs(distanceCut) && edgeY < fabs(distanceCut) ) ||
272  ( fabs(edgeY) < fabs(distanceCut) && edgeX < fabs(distanceCut) ) ) // inside gap
273  curMask = 1<<( (stationIndex-1)+4*(detectorIndex-1) );
274  }
275 
276  totMask += curMask; // add to total mask
277  }
278  }
279 
280  return totMask;
281 }
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
def stationIndex
Definition: plotscripts.py:353
unsigned int Muon::stationGapMaskPull ( float  sigmaCut = 3.) const

same as above for given number of sigmas

Definition at line 283 of file Muon.cc.

References muMatches_, and plotscripts::stationIndex().

284 {
285  unsigned int totMask(0);
286  for( int stationIndex = 1; stationIndex < 5; stationIndex++ )
287  {
288  for( int detectorIndex = 1; detectorIndex < 4; detectorIndex++ )
289  {
290  unsigned int curMask(0);
291  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
292  chamberMatch != muMatches_.end(); chamberMatch++ )
293  {
294  if(!(chamberMatch->station()==stationIndex && chamberMatch->detector()==detectorIndex)) continue;
295 
296  float edgeX = chamberMatch->edgeX;
297  float edgeY = chamberMatch->edgeY;
298  float xErr = chamberMatch->xErr+0.000001; // protect against division by zero later
299  float yErr = chamberMatch->yErr+0.000001; // protect against division by zero later
300  if(edgeX<0 && fabs(edgeX/xErr)>fabs(sigmaCut) &&
301  edgeY<0 && fabs(edgeY/yErr)>fabs(sigmaCut)) // inside the chamber so negates all gaps for this station
302  {
303  curMask = 0;
304  break;
305  }
306  if( ( fabs(edgeX/xErr) < fabs(sigmaCut) && edgeY/yErr < fabs(sigmaCut) ) ||
307  ( fabs(edgeY/yErr) < fabs(sigmaCut) && edgeX/xErr < fabs(sigmaCut) ) ) // inside gap
308  curMask = 1<<((stationIndex-1)+4*(detectorIndex-1));
309  }
310 
311  totMask += curMask; // add to total mask
312  }
313  }
314 
315  return totMask;
316 }
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
def stationIndex
Definition: plotscripts.py:353
unsigned int Muon::stationMask ( ArbitrationType  type = SegmentAndTrackArbitration) const

get bit map of stations with matched segments bits 0-1-2-3 = DT stations 1-2-3-4 bits 4-5-6-7 = CSC stations 1-2-3-4

Definition at line 123 of file Muon.cc.

References reco::MuonSegmentMatch::BelongsToTrackByCleaning, reco::MuonSegmentMatch::BelongsToTrackByDR, reco::MuonSegmentMatch::BestInStationByDR, muMatches_, NoArbitration, DetId::rawId(), RPCDetId::region(), RPCHitAndTrackArbitration, SegmentAndTrackArbitration, SegmentAndTrackArbitrationCleaned, and SegmentArbitration.

Referenced by muon::isGoodMuon(), and numberOfMatchedStations().

124 {
125  unsigned int totMask(0);
126  unsigned int curMask(0);
127 
128  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
129  chamberMatch != muMatches_.end(); chamberMatch++ )
130  {
132  if(chamberMatch->rpcMatches.empty()) continue;
133 
134  RPCDetId rollId = chamberMatch->id.rawId();
135  const int region = rollId.region();
136  int rpcIndex = 1; if (region!=0) rpcIndex = 2;
137 
138  for( std::vector<MuonRPCHitMatch>::const_iterator rpcMatch = chamberMatch->rpcMatches.begin();
139  rpcMatch != chamberMatch->rpcMatches.end(); rpcMatch++ )
140  {
141  curMask = 1<<( (chamberMatch->station()-1)+4*(rpcIndex-1) );
142 
143  // do not double count
144  if(!(totMask & curMask))
145  totMask += curMask;
146  }
147  continue;
148  }
149 
150  if(chamberMatch->segmentMatches.empty()) continue;
151  if(type == NoArbitration) {
152  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
153  // do not double count
154  if(!(totMask & curMask))
155  totMask += curMask;
156  continue;
157  }
158 
159  for( std::vector<MuonSegmentMatch>::const_iterator segmentMatch = chamberMatch->segmentMatches.begin();
160  segmentMatch != chamberMatch->segmentMatches.end(); segmentMatch++ )
161  {
162  if(type == SegmentArbitration)
163  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR)) {
164  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
165  // do not double count
166  if(!(totMask & curMask))
167  totMask += curMask;
168  break;
169  }
171  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
172  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR)) {
173  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
174  // do not double count
175  if(!(totMask & curMask))
176  totMask += curMask;
177  break;
178  }
180  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
181  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR) &&
182  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByCleaning)) {
183  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
184  // do not double count
185  if(!(totMask & curMask))
186  totMask += curMask;
187  break;
188  }
189  if(type > 1<<7)
190  if(segmentMatch->isMask(type)) {
191  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
192  // do not double count
193  if(!(totMask & curMask))
194  totMask += curMask;
195  break;
196  }
197  }
198  }
199 
200  return totMask;
201 }
type
Definition: HCALResponse.h:21
static const unsigned int BestInStationByDR
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
static const unsigned int BelongsToTrackByCleaning
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
static const unsigned int BelongsToTrackByDR
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.
Definition: RPCDetId.h:63
float reco::Muon::t0 ( int  n = 0)
inline

Definition at line 322 of file Muon.h.

References i, muMatches_, and n.

322  {
323  int i = 0;
324  for( std::vector<MuonChamberMatch>::const_iterator chamber = muMatches_.begin();
325  chamber != muMatches_.end(); ++chamber )
326  for ( std::vector<reco::MuonSegmentMatch>::const_iterator segment = chamber->segmentMatches.begin();
327  segment != chamber->segmentMatches.end(); ++segment )
328  {
329  if (i==n) return segment->t0;
330  ++i;
331  }
332  return 0;
333  }
int i
Definition: DBlmapReader.cc:9
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:246
MuonTime reco::Muon::time ( ) const
inline

get timing information

Definition at line 131 of file Muon.h.

References time_.

Referenced by MuonCosmicCompatibilityFiller::muonTiming(), MuonIdProducer::produce(), and setTime().

131 { return time_; }
MuonTime time_
timing
Definition: Muon.h:248
virtual TrackRef reco::Muon::tpfmsTrack ( ) const
inlinevirtual

Reimplemented in pat::Muon.

Definition at line 57 of file Muon.h.

References muonTrackFromMap(), and TPFMS.

Referenced by pat::Muon::embedTpfmsMuon(), muonTrack(), muon::tevOptimized(), and pat::Muon::tpfmsTrack().

57 { return muonTrackFromMap(TPFMS);}
TrackRef muonTrackFromMap(const MuonTrackType &type) const
Definition: Muon.h:73
virtual TrackRef reco::Muon::track ( void  ) const
inlinevirtual
float Muon::trackDist ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 767 of file Muon.cc.

References chambers(), and pair().

Referenced by muon::RequiredStationMask(), and muon::segmentCompatibility().

768 {
769  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
770  if(muonChambers.empty()) return 999999;
771 
772  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
773  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
774  float dist = 999999;
775  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
776  muonChamber != muonChambers.end(); ++muonChamber) {
777  float currDist = (*muonChamber)->dist();
778  if(currDist<dist) dist = currDist;
779  }
780  return dist;
781  } else return chamberSegmentPair.first->dist();
782 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackDistErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 784 of file Muon.cc.

References chambers(), and pair().

Referenced by muon::RequiredStationMask().

785 {
786  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
787  if(muonChambers.empty()) return 999999;
788 
789  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
790  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
791  float dist = 999999;
792  float supVar = 999999;
793  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
794  muonChamber != muonChambers.end(); ++muonChamber) {
795  float currDist = (*muonChamber)->dist();
796  if(currDist<dist) {
797  dist = currDist;
798  supVar = (*muonChamber)->distErr();
799  }
800  }
801  return supVar;
802  } else return chamberSegmentPair.first->distErr();
803 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackDxDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 641 of file Muon.cc.

References chambers(), and pair().

642 {
643  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
644  if(muonChambers.empty()) return 999999;
645 
646  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
647  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
648  float dist = 999999;
649  float supVar = 999999;
650  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
651  muonChamber != muonChambers.end(); ++muonChamber) {
652  float currDist = (*muonChamber)->dist();
653  if(currDist<dist) {
654  dist = currDist;
655  supVar = (*muonChamber)->dXdZ;
656  }
657  }
658  return supVar;
659  } else return chamberSegmentPair.first->dXdZ;
660 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackDxDzErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 725 of file Muon.cc.

References chambers(), and pair().

726 {
727  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
728  if(muonChambers.empty()) return 999999;
729 
730  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
731  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
732  float dist = 999999;
733  float supVar = 999999;
734  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
735  muonChamber != muonChambers.end(); ++muonChamber) {
736  float currDist = (*muonChamber)->dist();
737  if(currDist<dist) {
738  dist = currDist;
739  supVar = (*muonChamber)->dXdZErr;
740  }
741  }
742  return supVar;
743  } else return chamberSegmentPair.first->dXdZErr;
744 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackDyDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 662 of file Muon.cc.

References chambers(), and pair().

663 {
664  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
665  if(muonChambers.empty()) return 999999;
666 
667  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
668  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
669  float dist = 999999;
670  float supVar = 999999;
671  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
672  muonChamber != muonChambers.end(); ++muonChamber) {
673  float currDist = (*muonChamber)->dist();
674  if(currDist<dist) {
675  dist = currDist;
676  supVar = (*muonChamber)->dYdZ;
677  }
678  }
679  return supVar;
680  } else return chamberSegmentPair.first->dYdZ;
681 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackDyDzErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 746 of file Muon.cc.

References chambers(), and pair().

747 {
748  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
749  if(muonChambers.empty()) return 999999;
750 
751  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
752  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
753  float dist = 999999;
754  float supVar = 999999;
755  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
756  muonChamber != muonChambers.end(); ++muonChamber) {
757  float currDist = (*muonChamber)->dist();
758  if(currDist<dist) {
759  dist = currDist;
760  supVar = (*muonChamber)->dYdZErr;
761  }
762  }
763  return supVar;
764  } else return chamberSegmentPair.first->dYdZErr;
765 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackEdgeX ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

get track information in chamber that contains (best) segment If no segment, get track information in chamber that has the most negative distance between the track and the nearest chamber edge (the chamber with the deepest track) If no chamber returns 999999

Definition at line 557 of file Muon.cc.

References chambers(), and pair().

558 {
559  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
560  if(muonChambers.empty()) return 999999;
561 
562  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
563  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
564  float dist = 999999;
565  float supVar = 999999;
566  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
567  muonChamber != muonChambers.end(); ++muonChamber) {
568  float currDist = (*muonChamber)->dist();
569  if(currDist<dist) {
570  dist = currDist;
571  supVar = (*muonChamber)->edgeX;
572  }
573  }
574  return supVar;
575  } else return chamberSegmentPair.first->edgeX;
576 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackEdgeY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 578 of file Muon.cc.

References chambers(), and pair().

579 {
580  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
581  if(muonChambers.empty()) return 999999;
582 
583  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
584  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
585  float dist = 999999;
586  float supVar = 999999;
587  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
588  muonChamber != muonChambers.end(); ++muonChamber) {
589  float currDist = (*muonChamber)->dist();
590  if(currDist<dist) {
591  dist = currDist;
592  supVar = (*muonChamber)->edgeY;
593  }
594  }
595  return supVar;
596  } else return chamberSegmentPair.first->edgeY;
597 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackX ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 599 of file Muon.cc.

References chambers(), and pair().

600 {
601  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
602  if(muonChambers.empty()) return 999999;
603 
604  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
605  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
606  float dist = 999999;
607  float supVar = 999999;
608  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
609  muonChamber != muonChambers.end(); ++muonChamber) {
610  float currDist = (*muonChamber)->dist();
611  if(currDist<dist) {
612  dist = currDist;
613  supVar = (*muonChamber)->x;
614  }
615  }
616  return supVar;
617  } else return chamberSegmentPair.first->x;
618 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackXErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 683 of file Muon.cc.

References chambers(), and pair().

684 {
685  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
686  if(muonChambers.empty()) return 999999;
687 
688  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
689  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
690  float dist = 999999;
691  float supVar = 999999;
692  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
693  muonChamber != muonChambers.end(); ++muonChamber) {
694  float currDist = (*muonChamber)->dist();
695  if(currDist<dist) {
696  dist = currDist;
697  supVar = (*muonChamber)->xErr;
698  }
699  }
700  return supVar;
701  } else return chamberSegmentPair.first->xErr;
702 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 620 of file Muon.cc.

References chambers(), and pair().

621 {
622  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
623  if(muonChambers.empty()) return 999999;
624 
625  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
626  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
627  float dist = 999999;
628  float supVar = 999999;
629  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
630  muonChamber != muonChambers.end(); ++muonChamber) {
631  float currDist = (*muonChamber)->dist();
632  if(currDist<dist) {
633  dist = currDist;
634  supVar = (*muonChamber)->y;
635  }
636  }
637  return supVar;
638  } else return chamberSegmentPair.first->y;
639 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
float Muon::trackYErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 704 of file Muon.cc.

References chambers(), and pair().

705 {
706  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
707  if(muonChambers.empty()) return 999999;
708 
709  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
710  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
711  float dist = 999999;
712  float supVar = 999999;
713  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
714  muonChamber != muonChambers.end(); ++muonChamber) {
715  float currDist = (*muonChamber)->dist();
716  if(currDist<dist) {
717  dist = currDist;
718  supVar = (*muonChamber)->yErr;
719  }
720  }
721  return supVar;
722  } else return chamberSegmentPair.first->yErr;
723 }
type
Definition: HCALResponse.h:21
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:364
std::pair< const MuonChamberMatch *, const MuonSegmentMatch * > pair(const std::vector< const MuonChamberMatch * > &, ArbitrationType type=SegmentAndTrackArbitration) const
get pointers to best segment and corresponding chamber in vector of chambers
Definition: Muon.cc:374
virtual TrackRef reco::Muon::tunePMuonBestTrack ( ) const
inlinevirtual

Definition at line 65 of file Muon.h.

References bestTunePTrackType_, and muonTrack().

Referenced by MuonPFAnalyzer::analyze().

TrackRef muonTrack(const MuonTrackType &) const
Definition: Muon.cc:857
MuonTrackType bestTunePTrackType_
reference to the Track chosen to assign the momentum value to the muon by PF
Definition: Muon.h:239
virtual MuonTrackType reco::Muon::tunePMuonBestTrackType ( ) const
inlinevirtual

Definition at line 66 of file Muon.h.

References bestTunePTrackType_.

Referenced by MuonPFAnalyzer::muonTrackType().

66 {return bestTunePTrackType_;}
MuonTrackType bestTunePTrackType_
reference to the Track chosen to assign the momentum value to the muon by PF
Definition: Muon.h:239
unsigned int reco::Muon::type ( ) const
inline

Member Data Documentation

MuonTrackType reco::Muon::bestTrackType_
private

reference to the Track chosen to assign the momentum value to the muon

Definition at line 237 of file Muon.h.

Referenced by bestTrack(), bestTrackRef(), Muon(), muonBestTrack(), muonBestTrackType(), and setBestTrack().

MuonTrackType reco::Muon::bestTunePTrackType_
private

reference to the Track chosen to assign the momentum value to the muon by PF

Definition at line 239 of file Muon.h.

Referenced by Muon(), setTunePBestTrack(), tunePMuonBestTrack(), and tunePMuonBestTrackType().

MuonEnergy reco::Muon::calEnergy_
private

energy deposition

Definition at line 242 of file Muon.h.

Referenced by calEnergy(), and setCalEnergy().

float reco::Muon::caloCompatibility_
private

muon hypothesis compatibility with observer calorimeter energy

Definition at line 255 of file Muon.h.

Referenced by caloCompatibility(), isCaloCompatibilityValid(), Muon(), and setCaloCompatibility().

const unsigned int reco::Muon::CaloMuon = 1<<4
static

Definition at line 210 of file Muon.h.

Referenced by isCaloMuon(), and CaloMuonMerger::produce().

MuonQuality reco::Muon::combinedQuality_
private

quality block

Definition at line 244 of file Muon.h.

Referenced by combinedQuality(), and setCombinedQuality().

bool reco::Muon::energyValid_
private

Definition at line 249 of file Muon.h.

Referenced by isEnergyValid(), Muon(), and setCalEnergy().

const unsigned int reco::Muon::GlobalMuon = 1<<1
static

muon type - type of the algorithm that reconstructed this muon multiple algorithms can reconstruct the same muon

Definition at line 207 of file Muon.h.

Referenced by isGlobalMuon(), and MuonIdProducer::produce().

TrackRef reco::Muon::globalTrack_
private

reference to Track reconstructed in both tracked and muon detector

Definition at line 233 of file Muon.h.

Referenced by globalTrack(), and setGlobalTrack().

TrackRef reco::Muon::innerTrack_
private

reference to Track reconstructed in the tracker only

Definition at line 229 of file Muon.h.

Referenced by innerTrack(), and setInnerTrack().

MuonIsolation reco::Muon::isolationR03_
private

Isolation information for two cones with dR=0.3 and dR=0.5.

Definition at line 257 of file Muon.h.

Referenced by isolationR03(), and setIsolation().

MuonIsolation reco::Muon::isolationR05_
private

Definition at line 258 of file Muon.h.

Referenced by isolationR05(), and setIsolation().

bool reco::Muon::isolationValid_
private

Definition at line 251 of file Muon.h.

Referenced by isIsolationValid(), Muon(), and setIsolation().

bool reco::Muon::matchesValid_
private

Definition at line 250 of file Muon.h.

Referenced by isMatchesValid(), Muon(), and setMatches().

std::vector<MuonChamberMatch> reco::Muon::muMatches_
private

Information on matching between tracks and segments.

Definition at line 246 of file Muon.h.

Referenced by chambers(), matches(), numberOfChambers(), numberOfMatches(), numberOfSegments(), RPClayerMask(), setMatches(), stationGapMaskDistance(), stationGapMaskPull(), stationMask(), and t0().

TrackRef reco::Muon::outerTrack_
private

reference to Track reconstructed in the muon detector only

Definition at line 231 of file Muon.h.

Referenced by outerTrack(), and setOuterTrack().

MuonPFIsolation reco::Muon::pfIsolationR03_
private

PF Isolation information for two cones with dR=0.3 and dR=0.4.

Definition at line 261 of file Muon.h.

Referenced by pfIsolationR03(), and setPFIsolation().

MuonPFIsolation reco::Muon::pfIsolationR04_
private

Definition at line 264 of file Muon.h.

Referenced by pfIsolationR04(), and setPFIsolation().

bool reco::Muon::pfIsolationValid_
private

Definition at line 252 of file Muon.h.

Referenced by isPFIsolationValid(), Muon(), and setPFIsolation().

MuonPFIsolation reco::Muon::pfIsoMeanDRR03_
private

Definition at line 262 of file Muon.h.

Referenced by pfMeanDRIsoProfileR03(), and setPFIsolation().

MuonPFIsolation reco::Muon::pfIsoMeanDRR04_
private

Definition at line 265 of file Muon.h.

Referenced by pfMeanDRIsoProfileR04(), and setPFIsolation().

MuonPFIsolation reco::Muon::pfIsoSumDRR03_
private

Definition at line 263 of file Muon.h.

Referenced by pfSumDRIsoProfileR03(), and setPFIsolation().

MuonPFIsolation reco::Muon::pfIsoSumDRR04_
private

Definition at line 266 of file Muon.h.

Referenced by pfSumDRIsoProfileR04(), and setPFIsolation().

const unsigned int reco::Muon::PFMuon = 1<<5
static

Definition at line 211 of file Muon.h.

Referenced by isPFMuon(), and setPFP4().

reco::Candidate::LorentzVector reco::Muon::pfP4_
private

Definition at line 272 of file Muon.h.

Referenced by pfP4(), and setPFP4().

bool reco::Muon::qualityValid_
private

Definition at line 253 of file Muon.h.

Referenced by isQualityValid(), Muon(), and setCombinedQuality().

MuonTrackRefMap reco::Muon::refittedTrackMap_
private

reference to the Global Track refitted with dedicated TeV reconstructors

Definition at line 235 of file Muon.h.

Referenced by muonTrackFromMap(), and setMuonTrack().

const unsigned int reco::Muon::RPCMuon = 1<<6
static

Definition at line 212 of file Muon.h.

Referenced by isRPCMuon(), and MuonIdProducer::produce().

const unsigned int reco::Muon::StandAloneMuon = 1<<3
static

Definition at line 209 of file Muon.h.

Referenced by isStandAloneMuon(), and MuonIdProducer::produce().

MuonTime reco::Muon::time_
private

timing

Definition at line 248 of file Muon.h.

Referenced by isTimeValid(), setTime(), and time().

const unsigned int reco::Muon::TrackerMuon = 1<<2
static

Definition at line 208 of file Muon.h.

Referenced by isTrackerMuon(), and MuonIdProducer::produce().

unsigned int reco::Muon::type_
private