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 }
 define arbitration schemes More...
 
- 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

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 globalTrack () const
 reference to Track reconstructed in both tracked and muon detector More...
 
virtual TrackRef innerTrack () 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 isQualityValid () 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...
 
int numberOfChambers () 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...
 
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
 
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
 
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...
 
virtual void setOuterTrack (const TrackRef &t)
 set reference to Track More...
 
virtual void setStandAlone (const TrackRef &t)
 
void setTime (const MuonTime &time)
 set timing information More...
 
virtual void setTrack (const TrackRef &t)
 
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 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
 
unsigned int type () const
 
- Public Member Functions inherited from reco::RecoCandidate
const TrackbestTrack () const
 best track pointer More...
 
TrackBaseRef bestTrackRef () const
 best track RefToBase More...
 
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...
 
 RecoCandidate (Charge q, const LorentzVector &p4, const Point &vtx=Point(0, 0, 0), int pdgId=0, int status=0)
 constructor from values More...
 
 RecoCandidate (Charge q, const PolarLorentzVector &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
 
virtual int charge () const
 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
 energy More...
 
virtual double et () const
 transverse energy More...
 
virtual double eta () const
 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)
 
 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
 is long lived? More...
 
virtual double mass () const
 mass More...
 
virtual bool massConstraint () const
 do mass constraint? More...
 
virtual double massSqr () const
 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
 spatial momentum vector More...
 
virtual const Candidatemother (size_type) const
 return mother at a given position (throws an exception) More...
 
virtual double mt () const
 transverse mass More...
 
virtual double mtSqr () const
 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
 magnitude of momentum vector More...
 
virtual const LorentzVectorp4 () const
 four-momentum Lorentz vector More...
 
virtual int pdgId () const
 PDG identifier. More...
 
virtual double phi () const
 momentum azimuthal angle More...
 
virtual const PolarLorentzVectorpolarP4 () const
 four-momentum Lorentz vector More...
 
virtual double pt () const
 transverse momentum More...
 
virtual double px () const
 x coordinate of momentum vector More...
 
virtual double py () const
 y coordinate of momentum vector More...
 
virtual double pz () const
 z coordinate of momentum vector More...
 
virtual double rapidity () const
 rapidity More...
 
virtual void setCharge (Charge q)
 set electric charge More...
 
virtual void setLongLived ()
 set long lived flag More...
 
virtual void setMass (double m)
 set particle mass More...
 
virtual void setMassConstraint ()
 set mass constraint flag More...
 
virtual void setP4 (const LorentzVector &p4)
 set 4-momentum More...
 
virtual void setP4 (const PolarLorentzVector &p4)
 set 4-momentum More...
 
virtual void setPdgId (int pdgId)
 
virtual void setPz (double pz)
 
virtual void setStatus (int status)
 set status word More...
 
virtual void setThreeCharge (Charge qx3)
 set electric charge More...
 
virtual void setVertex (const Point &vertex)
 set vertex More...
 
virtual CandidatePtr sourceCandidatePtr (size_type i) const
 
virtual int status () const
 status word More...
 
virtual double theta () const
 momentum polar angle More...
 
virtual int threeCharge () const
 electric charge More...
 
virtual const Pointvertex () const
 vertex position 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
 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
 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 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

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...
 
bool qualityValid_
 
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
edm::BoolCache cacheCartesianFixed_
 
edm::BoolCache 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
Version
Id:
Muon.h,v 1.58 2010/06/28 08:06:37 dmytro Exp

Definition at line 25 of file Muon.h.

Member Enumeration Documentation

define arbitration schemes

Enumerator
NoArbitration 
SegmentArbitration 
SegmentAndTrackArbitration 
SegmentAndTrackArbitrationCleaned 

Definition at line 115 of file Muon.h.

Constructor & Destructor Documentation

Muon::Muon ( )

Definition at line 16 of file Muon.cc.

References caloCompatibility_, energyValid_, isolationValid_, matchesValid_, qualityValid_, and type_.

Referenced by clone().

16  {
17  energyValid_ = false;
18  matchesValid_ = false;
19  isolationValid_ = false;
20  qualityValid_ = false;
21  caloCompatibility_ = -9999.;
22  type_ = 0;
23 }
float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:176
unsigned int type_
muon type mask
Definition: Muon.h:181
bool isolationValid_
Definition: Muon.h:173
bool energyValid_
Definition: Muon.h:171
bool qualityValid_
Definition: Muon.h:174
bool matchesValid_
Definition: Muon.h:172
Muon::Muon ( Charge  q,
const LorentzVector p4,
const Point vtx = Point( 0, 0, 0 ) 
)

constructor from values

Definition at line 6 of file Muon.cc.

References caloCompatibility_, energyValid_, isolationValid_, matchesValid_, qualityValid_, and type_.

6  :
7  RecoCandidate( q, p4, vtx, -13 * q ) {
8  energyValid_ = false;
9  matchesValid_ = false;
10  isolationValid_ = false;
11  qualityValid_ = false;
12  caloCompatibility_ = -9999.;
13  type_ = 0;
14 }
float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:176
unsigned int type_
muon type mask
Definition: Muon.h:181
bool isolationValid_
Definition: Muon.h:173
bool energyValid_
Definition: Muon.h:171
bool qualityValid_
Definition: Muon.h:174
RecoCandidate()
default constructor
Definition: RecoCandidate.h:24
bool matchesValid_
Definition: Muon.h:172
virtual const LorentzVector & p4() const
four-momentum Lorentz vector

Member Function Documentation

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 101 of file Muon.h.

References caloCompatibility_.

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

101 { return caloCompatibility_; }
float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:176
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 271 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().

272 {
273  std::vector<const MuonChamberMatch*> chambers;
274  for(std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
275  chamberMatch != muMatches_.end(); chamberMatch++)
276  if(chamberMatch->station()==station && chamberMatch->detector()==muonSubdetId)
277  chambers.push_back(&(*chamberMatch));
278  return chambers;
279 }
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
Muon * Muon::clone ( void  ) const
virtual

create a clone

Reimplemented from reco::RecoCandidate.

Reimplemented in pat::Muon, and pat::Lepton< reco::Muon >.

Definition at line 36 of file Muon.cc.

References Muon().

Referenced by MuonsFromRefitTracksProducer::cloneAndSwitchTrack(), MuonWithPFIsoProducer::produce(), DistortedMuonProducerFromDB::produce(), DistortedMuonProducer::produce(), and UpdatedMuonInnerTrackRef::produce().

36  {
37  return new Muon( * this );
38 }
Muon()
Definition: Muon.cc:16
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 45 of file Muon.h.

References globalTrack().

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

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

get energy deposition information

Definition at line 72 of file Muon.h.

References combinedQuality_.

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

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

Definition at line 337 of file Muon.cc.

References chambers(), and pair().

338 {
339  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
340  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
341  if(! chamberSegmentPair.second->hasPhi()) return 999999;
342  return chamberSegmentPair.first->dXdZ-chamberSegmentPair.second->dXdZ;
343 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::dDyDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 345 of file Muon.cc.

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

346 {
347  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
348  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
349  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
350  if(! chamberSegmentPair.second->hasZed()) return 999999;
351  return chamberSegmentPair.first->dYdZ-chamberSegmentPair.second->dYdZ;
352 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
static const int DT
Definition: MuonSubdetId.h:14
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 320 of file Muon.cc.

References chambers(), and pair().

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

321 {
322  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
323  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
324  if(! chamberSegmentPair.second->hasPhi()) return 999999;
325  return chamberSegmentPair.first->x-chamberSegmentPair.second->x;
326 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::dY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 328 of file Muon.cc.

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

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

329 {
330  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
331  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
332  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
333  if(! chamberSegmentPair.second->hasZed()) return 999999;
334  return chamberSegmentPair.first->y-chamberSegmentPair.second->y;
335 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
static const int DT
Definition: MuonSubdetId.h:14
virtual TrackRef reco::Muon::globalTrack ( ) const
inlinevirtual
virtual TrackRef reco::Muon::innerTrack ( ) const
inlinevirtual

Reimplemented in pat::Muon.

Definition at line 38 of file Muon.h.

References innerTrack_.

Referenced by EwkMuDQM::analyze(), EwkMuLumiMonitorDQM::analyze(), MuonEnergyDepositAnalyzer::analyze(), HLTMuonMatchAndPlot::analyze(), MuonCosmicCompatibilityFiller::backToBack2LegCosmic(), FWMuonBuilder::buildMuon(), FWMuonBuilder::calculateField(), TCMETAlgo::CalculateTCMET(), MuonsFromRefitTracksProducer::cloneAndSwitchTrack(), pat::Muon::embedTrack(), MuonIdProducer::fillTrackerKink(), WMuNuValidator::filter(), LeptonRecoSkim::filter(), MuonMETAlgo::GetMuDepDeltas(), cms::MuonTCMETValueMapProducer::isGoodCaloMuon(), muon::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodTrack(), MuonCosmicCompatibilityFiller::isOverlappingMuon(), BTagHLTOfflineSource::isVBTFMuon(), FourVectorHLTOffline::isVBTFMuon(), MuonIdProducer::makeCaloMuon(), MuonIdProducer::phiOfMuonIneteractionRegion(), helper::MuonCollectionStoreManager::processMuon(), MuonWithPFIsoProducer::produce(), UpdatedMuonInnerTrackRef::produce(), cms::MuonMETValueMapProducer::produce(), cms::MuonTCMETValueMapProducer::produce(), MuonIdProducer::produce(), cms::MuonTCMETValueMapProducer::propagateTrack(), MuonCosmicCompatibilityFiller::pvMatches(), BPhysicsOniaDQM::selGlobalMuon(), BPhysicsOniaDQM::selTrackerMuon(), sigmaSwitch(), tevOptimizedTMR(), track(), and pat::Muon::track().

38 { return innerTrack_; }
TrackRef innerTrack_
reference to Track reconstructed in the tracker only
Definition: Muon.h:157
bool reco::Muon::isCaloCompatibilityValid ( ) const
inline

Definition at line 103 of file Muon.h.

References caloCompatibility_.

Referenced by CaloMuonMerger::produce().

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

Reimplemented from reco::LeafCandidate.

Definition at line 151 of file Muon.h.

References CaloMuon, and type_.

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

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

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

energy deposition

Definition at line 60 of file Muon.h.

References energyValid_.

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

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

Reimplemented from reco::LeafCandidate.

Definition at line 148 of file Muon.h.

References GlobalMuon, and type_.

Referenced by GlbMuQualityCutsAnalysis::analyze(), EwkMuDQM::analyze(), RPCRecHitProbability::analyze(), RPCMonitorDigi::analyze(), EwkMuLumiMonitorDQM::analyze(), MuonEnergyDepositAnalyzer::analyze(), MuonKinVsEtaAnalyzer::analyze(), MuonRecoAnalyzer::analyze(), ZMuMu_efficiencyAnalyzer::analyze(), ZMuMu_vtxAnalyzer::analyze(), MuTriggerAnalyzer::analyze(), HiggsDQM::analyze(), MuonCosmicCompatibilityFiller::backToBack2LegCosmic(), AlignmentMuonSelector::basicCuts(), FWMuonBuilder::buildMuon(), TCMETAlgo::CalculateTCMET(), MuonCosmicCompatibilityFiller::combinedCosmicID(), TauDiscriminationAgainstMuon< TauType, TauDiscriminator >::evaluateMuonVeto(), MuonIdProducer::fillGlbQuality(), EwkMuTauHistManager::fillHistograms(), MuonShowerInformationFiller::fillHitsByStation(), WMuNuValidator::filter(), WMuNuSelector::filter(), LeptonRecoSkim::filter(), MuonMETAlgo::GetMuDepDeltas(), muon::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodMuon(), MuonCosmicCompatibilityFiller::isOverlappingMuon(), DistortedPFCandProducer::produce(), ZMuMuMuonUserData::produce(), ZMuMuUserData::produce(), cms::MuonMETValueMapProducer::produce(), ZToLLEdmNtupleDumper::produce(), cms::MuonTCMETValueMapProducer::produce(), MuonCosmicCompatibilityFiller::pvMatches(), and MuScleFitMuonSelector::selectMuons().

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

Definition at line 112 of file Muon.h.

References isolationValid_.

Referenced by MuonMETAlgo::GetMuDepDeltas().

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

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

Definition at line 89 of file Muon.h.

References matchesValid_.

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

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

Reimplemented from reco::LeafCandidate.

Definition at line 147 of file Muon.h.

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

Definition at line 110 of file Muon.h.

References isolationR05_.

Referenced by EwkMuTauHistManager::fillHistograms().

110 { return isolationR05_; }
MuonIsolation isolationR05_
Definition: Muon.h:179
bool reco::Muon::isQualityValid ( ) const
inline

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

energy deposition

Definition at line 70 of file Muon.h.

References qualityValid_.

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

70 { return qualityValid_; }
bool qualityValid_
Definition: Muon.h:174
bool reco::Muon::isStandAloneMuon ( ) const
inlinevirtual
bool reco::Muon::isTimeValid ( ) const
inline

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

timing information

Definition at line 80 of file Muon.h.

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

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

80 { return (time_.nDof>0); }
int nDof
number of muon stations used
Definition: MuonTime.h:10
MuonTime time_
timing
Definition: Muon.h:169
bool reco::Muon::isTrackerMuon ( ) const
inlinevirtual
std::vector<MuonChamberMatch>& reco::Muon::matches ( )
inline

get muon matching information

Definition at line 91 of file Muon.h.

References muMatches_.

Referenced by MuonIdProducer::fillMuonId(), TrackerMuonHitExtractor::getMuonHits(), numberOfMatches(), MuonIdProducer::overlap(), muon::overlap(), MuonIdProducer::phiOfMuonIneteractionRegion(), MuonIdProducer::produce(), setMatches(), and MuonIdTruthInfo::truthMatchMuon().

91 { return muMatches_;}
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
const std::vector<MuonChamberMatch>& reco::Muon::matches ( ) const
inline

Definition at line 92 of file Muon.h.

References muMatches_.

92 { return muMatches_; }
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
int reco::Muon::numberOfChambers ( ) const
inline

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

number of chambers

Definition at line 121 of file Muon.h.

References muMatches_.

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

121 { return muMatches_.size(); }
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
int Muon::numberOfMatchedStations ( ArbitrationType  type = SegmentAndTrackArbitration) const

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

Definition at line 84 of file Muon.cc.

References stationMask(), and mergeVDriftHistosByStation::stations.

85 {
86  int stations(0);
87 
88  unsigned int theStationMask = stationMask(type);
89  // eight stations, eight bits
90  for(int it = 0; it < 8; ++it)
91  if (theStationMask & 1<<it)
92  ++stations;
93 
94  return stations;
95 }
type
Definition: HCALResponse.h:22
unsigned int stationMask(ArbitrationType type=SegmentAndTrackArbitration) const
Definition: Muon.cc:97
int Muon::numberOfMatches ( ArbitrationType  type = SegmentAndTrackArbitration) const

get number of chambers with matched segments

Definition at line 40 of file Muon.cc.

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

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

41 {
42  int matches(0);
43  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
44  chamberMatch != muMatches_.end(); chamberMatch++ )
45  {
46  if(chamberMatch->segmentMatches.empty()) continue;
47  if(type == NoArbitration) {
48  matches++;
49  continue;
50  }
51 
52  for( std::vector<MuonSegmentMatch>::const_iterator segmentMatch = chamberMatch->segmentMatches.begin();
53  segmentMatch != chamberMatch->segmentMatches.end(); segmentMatch++ )
54  {
56  if(segmentMatch->isMask(MuonSegmentMatch::BestInChamberByDR)) {
57  matches++;
58  break;
59  }
61  if(segmentMatch->isMask(MuonSegmentMatch::BestInChamberByDR) &&
62  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR)) {
63  matches++;
64  break;
65  }
67  if(segmentMatch->isMask(MuonSegmentMatch::BestInChamberByDR) &&
68  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR) &&
69  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByCleaning)) {
70  matches++;
71  break;
72  }
73  if(type > 1<<7)
74  if(segmentMatch->isMask(type)) {
75  matches++;
76  break;
77  }
78  }
79  }
80 
81  return matches;
82 }
type
Definition: HCALResponse.h:22
static const unsigned int BestInChamberByDR
static const unsigned int BelongsToTrackByCleaning
std::vector< MuonChamberMatch > & matches()
get muon matching information
Definition: Muon.h:91
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
static const unsigned int BelongsToTrackByDR
int Muon::numberOfSegments ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

get number of segments

Definition at line 225 of file Muon.cc.

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

226 {
227  int segments(0);
228  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
229  chamberMatch != muMatches_.end(); chamberMatch++ )
230  {
231  if(chamberMatch->segmentMatches.empty()) continue;
232  if(!(chamberMatch->station()==station && chamberMatch->detector()==muonSubdetId)) continue;
233 
234  if(type == NoArbitration) {
235  segments += chamberMatch->segmentMatches.size();
236  continue;
237  }
238 
239  for( std::vector<MuonSegmentMatch>::const_iterator segmentMatch = chamberMatch->segmentMatches.begin();
240  segmentMatch != chamberMatch->segmentMatches.end(); segmentMatch++ )
241  {
242  if(type == SegmentArbitration)
243  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR)) {
244  segments++;
245  break;
246  }
248  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
249  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR)) {
250  segments++;
251  break;
252  }
254  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
255  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR) &&
256  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByCleaning)) {
257  segments++;
258  break;
259  }
260  if(type > 1<<7)
261  if(segmentMatch->isMask(type)) {
262  segments++;
263  break;
264  }
265  }
266  }
267 
268  return segments;
269 }
type
Definition: HCALResponse.h:22
static const unsigned int BestInStationByDR
static const unsigned int BelongsToTrackByCleaning
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
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 25 of file Muon.cc.

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

25  {
26  const RecoCandidate * o = dynamic_cast<const RecoCandidate *>( & c );
27  return ( o != 0 &&
28  ( checkOverlap( track(), o->track() ) ||
31  checkOverlap( standAloneMuon(), o->track() ) ||
32  checkOverlap( combinedMuon(), o->track() ) )
33  );
34 }
bool checkOverlap(const R &r1, const R &r2) const
check if two components overlap
Definition: RecoCandidate.h:67
virtual TrackRef track() const
reference to a Track
Definition: Muon.h:39
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:45
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:42
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 281 of file Muon.cc.

References reco::MuonSegmentMatch::BelongsToTrackByCleaning, reco::MuonSegmentMatch::BelongsToTrackByDR, reco::MuonSegmentMatch::BestInStationByDR, m, NoArbitration, asciidump::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().

283 {
284  MuonChamberMatch* m = 0;
285  MuonSegmentMatch* s = 0;
286  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair(m,s);
287 
288  if(chambers.empty()) return chamberSegmentPair;
289  for( std::vector<const MuonChamberMatch*>::const_iterator chamberMatch = chambers.begin();
290  chamberMatch != chambers.end(); chamberMatch++ )
291  {
292  if((*chamberMatch)->segmentMatches.empty()) continue;
293  if(type == NoArbitration)
294  return std::make_pair(*chamberMatch, &((*chamberMatch)->segmentMatches.front()));
295 
296  for( std::vector<MuonSegmentMatch>::const_iterator segmentMatch = (*chamberMatch)->segmentMatches.begin();
297  segmentMatch != (*chamberMatch)->segmentMatches.end(); segmentMatch++ )
298  {
299  if(type == SegmentArbitration)
300  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR))
301  return std::make_pair(*chamberMatch, &(*segmentMatch));
303  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
304  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR))
305  return std::make_pair(*chamberMatch, &(*segmentMatch));
307  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
308  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR) &&
309  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByCleaning))
310  return std::make_pair(*chamberMatch, &(*segmentMatch));
311  if(type > 1<<7)
312  if(segmentMatch->isMask(type))
313  return std::make_pair(*chamberMatch, &(*segmentMatch));
314  }
315  }
316 
317  return chamberSegmentPair;
318 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
static const unsigned int BestInStationByDR
static const unsigned int BelongsToTrackByCleaning
static const unsigned int BelongsToTrackByDR
string s
Definition: asciidump.py:422
float Muon::pullDxDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration,
bool  includeSegmentError = true 
) const

Definition at line 375 of file Muon.cc.

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

Referenced by muon::isGoodMuon().

376 {
377  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
378  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
379  if(! chamberSegmentPair.second->hasPhi()) return 999999;
380  if(includeSegmentError)
381  return (chamberSegmentPair.first->dXdZ-chamberSegmentPair.second->dXdZ)/sqrt(pow(chamberSegmentPair.first->dXdZErr,2)+pow(chamberSegmentPair.second->dXdZErr,2));
382  return (chamberSegmentPair.first->dXdZ-chamberSegmentPair.second->dXdZ)/chamberSegmentPair.first->dXdZErr;
383 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
T sqrt(T t)
Definition: SSEVec.h:28
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 385 of file Muon.cc.

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

Referenced by muon::isGoodMuon().

386 {
387  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
388  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
389  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
390  if(! chamberSegmentPair.second->hasZed()) return 999999;
391  if(includeSegmentError)
392  return (chamberSegmentPair.first->dYdZ-chamberSegmentPair.second->dYdZ)/sqrt(pow(chamberSegmentPair.first->dYdZErr,2)+pow(chamberSegmentPair.second->dYdZErr,2));
393  return (chamberSegmentPair.first->dYdZ-chamberSegmentPair.second->dYdZ)/chamberSegmentPair.first->dYdZErr;
394 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
T sqrt(T t)
Definition: SSEVec.h:28
static const int DT
Definition: MuonSubdetId.h:14
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 354 of file Muon.cc.

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

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

355 {
356  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
357  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
358  if(! chamberSegmentPair.second->hasPhi()) return 999999;
359  if(includeSegmentError)
360  return (chamberSegmentPair.first->x-chamberSegmentPair.second->x)/sqrt(pow(chamberSegmentPair.first->xErr,2)+pow(chamberSegmentPair.second->xErr,2));
361  return (chamberSegmentPair.first->x-chamberSegmentPair.second->x)/chamberSegmentPair.first->xErr;
362 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
T sqrt(T t)
Definition: SSEVec.h:28
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 364 of file Muon.cc.

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

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

365 {
366  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
367  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
368  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
369  if(! chamberSegmentPair.second->hasZed()) return 999999;
370  if(includeSegmentError)
371  return (chamberSegmentPair.first->y-chamberSegmentPair.second->y)/sqrt(pow(chamberSegmentPair.first->yErr,2)+pow(chamberSegmentPair.second->yErr,2));
372  return (chamberSegmentPair.first->y-chamberSegmentPair.second->y)/chamberSegmentPair.first->yErr;
373 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
T sqrt(T t)
Definition: SSEVec.h:28
static const int DT
Definition: MuonSubdetId.h:14
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
float Muon::segmentDxDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 413 of file Muon.cc.

References chambers(), and pair().

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.second->dXdZ;
419 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::segmentDxDzErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 447 of file Muon.cc.

References chambers(), and pair().

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  return chamberSegmentPair.second->dXdZErr;
453 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::segmentDyDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 421 of file Muon.cc.

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

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.second->dYdZ;
428 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
static const int DT
Definition: MuonSubdetId.h:14
float Muon::segmentDyDzErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 455 of file Muon.cc.

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

456 {
457  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
458  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
459  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
460  if(! chamberSegmentPair.second->hasZed()) return 999999;
461  return chamberSegmentPair.second->dYdZErr;
462 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
static const int DT
Definition: MuonSubdetId.h:14
float Muon::segmentX ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

get (best) segment information If no segment returns 999999

Definition at line 396 of file Muon.cc.

References chambers(), and pair().

Referenced by muon::segmentCompatibility().

397 {
398  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
399  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
400  if(! chamberSegmentPair.second->hasPhi()) return 999999;
401  return chamberSegmentPair.second->x;
402 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::segmentXErr ( 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.second->xErr;
436 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::segmentY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 404 of file Muon.cc.

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

405 {
406  if(station==4 && muonSubdetId==MuonSubdetId::DT) return 999999; // no y information
407  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(chambers(station,muonSubdetId),type);
408  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) return 999999;
409  if(! chamberSegmentPair.second->hasZed()) return 999999;
410  return chamberSegmentPair.second->y;
411 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
static const int DT
Definition: MuonSubdetId.h:14
float Muon::segmentYErr ( 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.second->yErr;
445 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
static const int DT
Definition: MuonSubdetId.h:14
void reco::Muon::setCalEnergy ( const MuonEnergy calEnergy)
inline

set energy deposition information

Definition at line 64 of file Muon.h.

References calEnergy(), calEnergy_, and energyValid_.

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

64 { calEnergy_ = calEnergy; energyValid_ = true; }
MuonEnergy calEnergy_
energy deposition
Definition: Muon.h:163
bool energyValid_
Definition: Muon.h:171
MuonEnergy calEnergy() const
get energy deposition information
Definition: Muon.h:62
void reco::Muon::setCaloCompatibility ( float  input)
inline

Definition at line 102 of file Muon.h.

References caloCompatibility_, and collect_tpl::input.

Referenced by CaloMuonMerger::produce().

float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:176
tuple input
Definition: collect_tpl.py:10
void Muon::setCombined ( const TrackRef t)
virtual

Definition at line 724 of file Muon.cc.

References setGlobalTrack().

Referenced by MuonProducer::produce().

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

set energy deposition information

Definition at line 74 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:72
MuonQuality combinedQuality_
quality block
Definition: Muon.h:165
bool qualityValid_
Definition: Muon.h:174
void Muon::setGlobalTrack ( const TrackRef t)
virtual

set reference to Track

Definition at line 723 of file Muon.cc.

References globalTrack_, and matplotRender::t.

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

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

set reference to Track

Definition at line 720 of file Muon.cc.

References innerTrack_, and matplotRender::t.

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

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

Definition at line 712 of file Muon.cc.

References isolationR03_, isolationR05_, and isolationValid_.

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

713 {
714  isolationR03_ = isoR03;
715  isolationR05_ = isoR05;
716  isolationValid_ = true;
717 }
MuonIsolation isolationR05_
Definition: Muon.h:179
bool isolationValid_
Definition: Muon.h:173
MuonIsolation isolationR03_
Isolation information for two cones with dR=0.3 and dR=0.5.
Definition: Muon.h:178
void reco::Muon::setMatches ( const std::vector< MuonChamberMatch > &  matches)
inline

set muon matching information

Definition at line 94 of file Muon.h.

References matches(), matchesValid_, and muMatches_.

Referenced by MuonIdProducer::fillMuonId().

94 { muMatches_ = matches; matchesValid_ = true; }
std::vector< MuonChamberMatch > & matches()
get muon matching information
Definition: Muon.h:91
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
bool matchesValid_
Definition: Muon.h:172
void Muon::setOuterTrack ( const TrackRef t)
virtual

set reference to Track

Definition at line 719 of file Muon.cc.

References outerTrack_, and matplotRender::t.

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

719 { outerTrack_ = t; }
TrackRef outerTrack_
reference to Track reconstructed in the muon detector only
Definition: Muon.h:159
void Muon::setStandAlone ( const TrackRef t)
virtual

Definition at line 722 of file Muon.cc.

References setOuterTrack().

Referenced by MuonProducer::produce().

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

set timing information

Definition at line 84 of file Muon.h.

References time(), and time_.

84 { time_ = time; }
MuonTime time() const
get timing information
Definition: Muon.h:82
MuonTime time_
timing
Definition: Muon.h:169
void Muon::setTrack ( const TrackRef t)
virtual

Definition at line 721 of file Muon.cc.

References setInnerTrack().

Referenced by MuonProducer::produce().

721 { setInnerTrack(t); }
virtual void setInnerTrack(const TrackRef &t)
set reference to Track
Definition: Muon.cc:720
void reco::Muon::setType ( unsigned int  type)
inline

Definition at line 144 of file Muon.h.

References type(), and type_.

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

144 { type_ = type; }
unsigned int type_
muon type mask
Definition: Muon.h:181
unsigned int type() const
Definition: Muon.h:145
virtual TrackRef reco::Muon::standAloneMuon ( ) const
inlinevirtual
unsigned int Muon::stationGapMaskDistance ( float  distanceCut = 10.) 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 157 of file Muon.cc.

References muMatches_, and plotscripts::stationIndex().

158 {
159  unsigned int totMask(0);
160  for( int stationIndex = 1; stationIndex < 5; stationIndex++ )
161  {
162  for( int detectorIndex = 1; detectorIndex < 4; detectorIndex++ )
163  {
164  unsigned int curMask(0);
165  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
166  chamberMatch != muMatches_.end(); chamberMatch++ )
167  {
168  if(!(chamberMatch->station()==stationIndex && chamberMatch->detector()==detectorIndex)) continue;
169 
170  float edgeX = chamberMatch->edgeX;
171  float edgeY = chamberMatch->edgeY;
172  if(edgeX<0 && fabs(edgeX)>fabs(distanceCut) &&
173  edgeY<0 && fabs(edgeY)>fabs(distanceCut)) // inside the chamber so negates all gaps for this station
174  {
175  curMask = 0;
176  break;
177  }
178  if( ( fabs(edgeX) < fabs(distanceCut) && edgeY < fabs(distanceCut) ) ||
179  ( fabs(edgeY) < fabs(distanceCut) && edgeX < fabs(distanceCut) ) ) // inside gap
180  curMask = 1<<( (stationIndex-1)+4*(detectorIndex-1) );
181  }
182 
183  totMask += curMask; // add to total mask
184  }
185  }
186 
187  return totMask;
188 }
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
def stationIndex
Definition: plotscripts.py:386
unsigned int Muon::stationGapMaskPull ( float  sigmaCut = 3.) const

same as above for given number of sigmas

Definition at line 190 of file Muon.cc.

References muMatches_, and plotscripts::stationIndex().

191 {
192  unsigned int totMask(0);
193  for( int stationIndex = 1; stationIndex < 5; stationIndex++ )
194  {
195  for( int detectorIndex = 1; detectorIndex < 4; detectorIndex++ )
196  {
197  unsigned int curMask(0);
198  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
199  chamberMatch != muMatches_.end(); chamberMatch++ )
200  {
201  if(!(chamberMatch->station()==stationIndex && chamberMatch->detector()==detectorIndex)) continue;
202 
203  float edgeX = chamberMatch->edgeX;
204  float edgeY = chamberMatch->edgeY;
205  float xErr = chamberMatch->xErr+0.000001; // protect against division by zero later
206  float yErr = chamberMatch->yErr+0.000001; // protect against division by zero later
207  if(edgeX<0 && fabs(edgeX/xErr)>fabs(sigmaCut) &&
208  edgeY<0 && fabs(edgeY/yErr)>fabs(sigmaCut)) // inside the chamber so negates all gaps for this station
209  {
210  curMask = 0;
211  break;
212  }
213  if( ( fabs(edgeX/xErr) < fabs(sigmaCut) && edgeY/yErr < fabs(sigmaCut) ) ||
214  ( fabs(edgeY/yErr) < fabs(sigmaCut) && edgeX/xErr < fabs(sigmaCut) ) ) // inside gap
215  curMask = 1<<((stationIndex-1)+4*(detectorIndex-1));
216  }
217 
218  totMask += curMask; // add to total mask
219  }
220  }
221 
222  return totMask;
223 }
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
def stationIndex
Definition: plotscripts.py:386
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 97 of file Muon.cc.

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

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

98 {
99  unsigned int totMask(0);
100  unsigned int curMask(0);
101  for( std::vector<MuonChamberMatch>::const_iterator chamberMatch = muMatches_.begin();
102  chamberMatch != muMatches_.end(); chamberMatch++ )
103  {
104  if(chamberMatch->segmentMatches.empty()) continue;
105  if(type == NoArbitration) {
106  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
107  // do not double count
108  if(!(totMask & curMask))
109  totMask += curMask;
110  continue;
111  }
112 
113  for( std::vector<MuonSegmentMatch>::const_iterator segmentMatch = chamberMatch->segmentMatches.begin();
114  segmentMatch != chamberMatch->segmentMatches.end(); segmentMatch++ )
115  {
116  if(type == SegmentArbitration)
117  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR)) {
118  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
119  // do not double count
120  if(!(totMask & curMask))
121  totMask += curMask;
122  break;
123  }
125  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
126  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR)) {
127  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
128  // do not double count
129  if(!(totMask & curMask))
130  totMask += curMask;
131  break;
132  }
134  if(segmentMatch->isMask(MuonSegmentMatch::BestInStationByDR) &&
135  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByDR) &&
136  segmentMatch->isMask(MuonSegmentMatch::BelongsToTrackByCleaning)) {
137  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
138  // do not double count
139  if(!(totMask & curMask))
140  totMask += curMask;
141  break;
142  }
143  if(type > 1<<7)
144  if(segmentMatch->isMask(type)) {
145  curMask = 1<<( (chamberMatch->station()-1)+4*(chamberMatch->detector()-1) );
146  // do not double count
147  if(!(totMask & curMask))
148  totMask += curMask;
149  break;
150  }
151  }
152  }
153 
154  return totMask;
155 }
type
Definition: HCALResponse.h:22
static const unsigned int BestInStationByDR
static const unsigned int BelongsToTrackByCleaning
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
static const unsigned int BelongsToTrackByDR
float reco::Muon::t0 ( int  n = 0)
inline

Definition at line 231 of file Muon.h.

References i, muMatches_, and n.

231  {
232  int i = 0;
233  for( std::vector<MuonChamberMatch>::const_iterator chamber = muMatches_.begin();
234  chamber != muMatches_.end(); ++chamber )
235  for ( std::vector<reco::MuonSegmentMatch>::const_iterator segment = chamber->segmentMatches.begin();
236  segment != chamber->segmentMatches.end(); ++segment )
237  {
238  if (i==n) return segment->t0;
239  ++i;
240  }
241  return 0;
242  }
int i
Definition: DBlmapReader.cc:9
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:167
MuonTime reco::Muon::time ( ) const
inline

get timing information

Definition at line 82 of file Muon.h.

References time_.

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

82 { return time_; }
MuonTime time_
timing
Definition: Muon.h:169
virtual TrackRef reco::Muon::track ( void  ) const
inlinevirtual
float Muon::trackDist ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 674 of file Muon.cc.

References chambers(), and pair().

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

675 {
676  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
677  if(muonChambers.empty()) return 999999;
678 
679  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
680  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
681  float dist = 999999;
682  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
683  muonChamber != muonChambers.end(); ++muonChamber) {
684  float currDist = (*muonChamber)->dist();
685  if(currDist<dist) dist = currDist;
686  }
687  return dist;
688  } else return chamberSegmentPair.first->dist();
689 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackDistErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 691 of file Muon.cc.

References chambers(), and pair().

Referenced by muon::RequiredStationMask().

692 {
693  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
694  if(muonChambers.empty()) return 999999;
695 
696  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
697  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
698  float dist = 999999;
699  float supVar = 999999;
700  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
701  muonChamber != muonChambers.end(); ++muonChamber) {
702  float currDist = (*muonChamber)->dist();
703  if(currDist<dist) {
704  dist = currDist;
705  supVar = (*muonChamber)->distErr();
706  }
707  }
708  return supVar;
709  } else return chamberSegmentPair.first->distErr();
710 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackDxDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 548 of file Muon.cc.

References chambers(), and pair().

549 {
550  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
551  if(muonChambers.empty()) return 999999;
552 
553  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
554  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
555  float dist = 999999;
556  float supVar = 999999;
557  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
558  muonChamber != muonChambers.end(); ++muonChamber) {
559  float currDist = (*muonChamber)->dist();
560  if(currDist<dist) {
561  dist = currDist;
562  supVar = (*muonChamber)->dXdZ;
563  }
564  }
565  return supVar;
566  } else return chamberSegmentPair.first->dXdZ;
567 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackDxDzErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 632 of file Muon.cc.

References chambers(), and pair().

633 {
634  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
635  if(muonChambers.empty()) return 999999;
636 
637  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
638  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
639  float dist = 999999;
640  float supVar = 999999;
641  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
642  muonChamber != muonChambers.end(); ++muonChamber) {
643  float currDist = (*muonChamber)->dist();
644  if(currDist<dist) {
645  dist = currDist;
646  supVar = (*muonChamber)->dXdZErr;
647  }
648  }
649  return supVar;
650  } else return chamberSegmentPair.first->dXdZErr;
651 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackDyDz ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 569 of file Muon.cc.

References chambers(), and pair().

570 {
571  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
572  if(muonChambers.empty()) return 999999;
573 
574  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
575  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
576  float dist = 999999;
577  float supVar = 999999;
578  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
579  muonChamber != muonChambers.end(); ++muonChamber) {
580  float currDist = (*muonChamber)->dist();
581  if(currDist<dist) {
582  dist = currDist;
583  supVar = (*muonChamber)->dYdZ;
584  }
585  }
586  return supVar;
587  } else return chamberSegmentPair.first->dYdZ;
588 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackDyDzErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 653 of file Muon.cc.

References chambers(), and pair().

654 {
655  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
656  if(muonChambers.empty()) return 999999;
657 
658  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
659  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
660  float dist = 999999;
661  float supVar = 999999;
662  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
663  muonChamber != muonChambers.end(); ++muonChamber) {
664  float currDist = (*muonChamber)->dist();
665  if(currDist<dist) {
666  dist = currDist;
667  supVar = (*muonChamber)->dYdZErr;
668  }
669  }
670  return supVar;
671  } else return chamberSegmentPair.first->dYdZErr;
672 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
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 464 of file Muon.cc.

References chambers(), and pair().

465 {
466  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
467  if(muonChambers.empty()) return 999999;
468 
469  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
470  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
471  float dist = 999999;
472  float supVar = 999999;
473  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
474  muonChamber != muonChambers.end(); ++muonChamber) {
475  float currDist = (*muonChamber)->dist();
476  if(currDist<dist) {
477  dist = currDist;
478  supVar = (*muonChamber)->edgeX;
479  }
480  }
481  return supVar;
482  } else return chamberSegmentPair.first->edgeX;
483 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackEdgeY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 485 of file Muon.cc.

References chambers(), and pair().

486 {
487  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
488  if(muonChambers.empty()) return 999999;
489 
490  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
491  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
492  float dist = 999999;
493  float supVar = 999999;
494  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
495  muonChamber != muonChambers.end(); ++muonChamber) {
496  float currDist = (*muonChamber)->dist();
497  if(currDist<dist) {
498  dist = currDist;
499  supVar = (*muonChamber)->edgeY;
500  }
501  }
502  return supVar;
503  } else return chamberSegmentPair.first->edgeY;
504 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackX ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 506 of file Muon.cc.

References chambers(), and pair().

507 {
508  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
509  if(muonChambers.empty()) return 999999;
510 
511  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
512  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
513  float dist = 999999;
514  float supVar = 999999;
515  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
516  muonChamber != muonChambers.end(); ++muonChamber) {
517  float currDist = (*muonChamber)->dist();
518  if(currDist<dist) {
519  dist = currDist;
520  supVar = (*muonChamber)->x;
521  }
522  }
523  return supVar;
524  } else return chamberSegmentPair.first->x;
525 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackXErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 590 of file Muon.cc.

References chambers(), and pair().

591 {
592  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
593  if(muonChambers.empty()) return 999999;
594 
595  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
596  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
597  float dist = 999999;
598  float supVar = 999999;
599  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
600  muonChamber != muonChambers.end(); ++muonChamber) {
601  float currDist = (*muonChamber)->dist();
602  if(currDist<dist) {
603  dist = currDist;
604  supVar = (*muonChamber)->xErr;
605  }
606  }
607  return supVar;
608  } else return chamberSegmentPair.first->xErr;
609 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackY ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 527 of file Muon.cc.

References chambers(), and pair().

528 {
529  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
530  if(muonChambers.empty()) return 999999;
531 
532  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
533  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
534  float dist = 999999;
535  float supVar = 999999;
536  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
537  muonChamber != muonChambers.end(); ++muonChamber) {
538  float currDist = (*muonChamber)->dist();
539  if(currDist<dist) {
540  dist = currDist;
541  supVar = (*muonChamber)->y;
542  }
543  }
544  return supVar;
545  } else return chamberSegmentPair.first->y;
546 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
float Muon::trackYErr ( int  station,
int  muonSubdetId,
ArbitrationType  type = SegmentAndTrackArbitration 
) const

Definition at line 611 of file Muon.cc.

References chambers(), and pair().

612 {
613  const std::vector<const MuonChamberMatch*> muonChambers = chambers(station, muonSubdetId);
614  if(muonChambers.empty()) return 999999;
615 
616  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> chamberSegmentPair = pair(muonChambers,type);
617  if(chamberSegmentPair.first==0 || chamberSegmentPair.second==0) {
618  float dist = 999999;
619  float supVar = 999999;
620  for(std::vector<const MuonChamberMatch*>::const_iterator muonChamber = muonChambers.begin();
621  muonChamber != muonChambers.end(); ++muonChamber) {
622  float currDist = (*muonChamber)->dist();
623  if(currDist<dist) {
624  dist = currDist;
625  supVar = (*muonChamber)->yErr;
626  }
627  }
628  return supVar;
629  } else return chamberSegmentPair.first->yErr;
630 }
type
Definition: HCALResponse.h:22
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
Definition: Muon.cc:271
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:281
unsigned int reco::Muon::type ( ) const
inline

Member Data Documentation

MuonEnergy reco::Muon::calEnergy_
private

energy deposition

Definition at line 163 of file Muon.h.

Referenced by calEnergy(), and setCalEnergy().

float reco::Muon::caloCompatibility_
private

muon hypothesis compatibility with observer calorimeter energy

Definition at line 176 of file Muon.h.

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

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

Definition at line 143 of file Muon.h.

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

MuonQuality reco::Muon::combinedQuality_
private

quality block

Definition at line 165 of file Muon.h.

Referenced by combinedQuality(), and setCombinedQuality().

bool reco::Muon::energyValid_
private

Definition at line 171 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 140 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 161 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 157 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 178 of file Muon.h.

Referenced by isolationR03(), and setIsolation().

MuonIsolation reco::Muon::isolationR05_
private

Definition at line 179 of file Muon.h.

Referenced by isolationR05(), and setIsolation().

bool reco::Muon::isolationValid_
private

Definition at line 173 of file Muon.h.

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

bool reco::Muon::matchesValid_
private

Definition at line 172 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 167 of file Muon.h.

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

TrackRef reco::Muon::outerTrack_
private

reference to Track reconstructed in the muon detector only

Definition at line 159 of file Muon.h.

Referenced by outerTrack(), and setOuterTrack().

bool reco::Muon::qualityValid_
private

Definition at line 174 of file Muon.h.

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

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

Definition at line 142 of file Muon.h.

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

MuonTime reco::Muon::time_
private

timing

Definition at line 169 of file Muon.h.

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

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

Definition at line 141 of file Muon.h.

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

unsigned int reco::Muon::type_
private