CMS 3D CMS Logo

Muon.h
Go to the documentation of this file.
1 #ifndef MuonReco_Muon_h
2 #define MuonReco_Muon_h
3 
24 
25 namespace reco {
26 
27  class Muon : public RecoCandidate {
28  public:
29  Muon();
31  Muon( Charge, const LorentzVector &, const Point & = Point( 0, 0, 0 ) );
33  Muon * clone() const override;
34 
35 
36 
39  typedef std::map<MuonTrackType, reco::TrackRef> MuonTrackRefMap;
40  typedef std::pair<TrackRef, Muon::MuonTrackType> MuonTrackTypePair;
41 
42 
48  virtual TrackRef innerTrack() const { return innerTrack_; }
49  TrackRef track() const override { return innerTrack(); }
51  virtual TrackRef outerTrack() const { return outerTrack_; }
52  TrackRef standAloneMuon() const override { return outerTrack(); }
54  virtual TrackRef globalTrack() const { return globalTrack_; }
55  TrackRef combinedMuon() const override { return globalTrack(); }
56 
57  virtual TrackRef tpfmsTrack() const { return muonTrackFromMap(TPFMS);}
58  virtual TrackRef pickyTrack() const { return muonTrackFromMap(Picky);}
59  virtual TrackRef dytTrack() const { return muonTrackFromMap(DYT);}
60 
61  const Track * bestTrack() const override {return muonTrack(bestTrackType_).get();}
63  virtual TrackRef muonBestTrack() const {return muonTrack(bestTrackType_);}
67 
68 
69 
70  bool isAValidMuonTrack(const MuonTrackType& type) const;
71  TrackRef muonTrack(const MuonTrackType&) const;
72 
74  MuonTrackRefMap::const_iterator iter = refittedTrackMap_.find(type);
75  if (iter != refittedTrackMap_.end())
76  return iter->second;
77  else
78  return TrackRef();
79  }
80 
82  virtual void setInnerTrack( const TrackRef & t );
83  virtual void setTrack( const TrackRef & t );
85  virtual void setOuterTrack( const TrackRef & t );
86  virtual void setStandAlone( const TrackRef & t );
88  virtual void setGlobalTrack( const TrackRef & t );
89  virtual void setCombined( const TrackRef & t );
90  // set reference to the Best Track
91  virtual void setBestTrack(MuonTrackType muonType) {bestTrackType_ = muonType;}
92  // set reference to the Best Track by PF
93  virtual void setTunePBestTrack(MuonTrackType muonType) {bestTunePTrackType_ = muonType;}
94 
95  void setMuonTrack(const MuonTrackType&, const TrackRef&);
96 
101 
103  virtual void setPFP4( const reco::Candidate::LorentzVector& p4_ );
104 
109  bool isEnergyValid() const { return energyValid_; }
111  MuonEnergy calEnergy() const { return calEnergy_; }
114 
119  bool isQualityValid() const { return qualityValid_; }
124 
129  bool isTimeValid() const { return (time_.nDof>0); }
131  MuonTime time() const { return time_; }
133  void setTime( const MuonTime& time ) { time_ = time; }
135  MuonTime rpcTime() const { return rpcTime_; }
137  void setRPCTime( const MuonTime& time ) { rpcTime_ = time; }
138 
142  bool isMatchesValid() const { return matchesValid_; }
144  std::vector<MuonChamberMatch>& matches() { return muMatches_;}
145  const std::vector<MuonChamberMatch>& matches() const { return muMatches_; }
147  void setMatches( const std::vector<MuonChamberMatch>& matches ) { muMatches_ = matches; matchesValid_ = true; }
148 
154  float caloCompatibility() const { return caloCompatibility_; }
156  bool isCaloCompatibilityValid() const { return caloCompatibility_>=0; }
157 
162  const MuonIsolation& isolationR03() const { return isolationR03_; }
163  const MuonIsolation& isolationR05() const { return isolationR05_; }
164 
165  const MuonPFIsolation& pfIsolationR03() const { return pfIsolationR03_; }
168  const MuonPFIsolation& pfIsolationR04() const { return pfIsolationR04_; }
171 
172 
173  void setIsolation( const MuonIsolation& isoR03, const MuonIsolation& isoR05 );
174  bool isIsolationValid() const { return isolationValid_; }
175  void setPFIsolation(const std::string& label,const reco::MuonPFIsolation& deposit);
176 
177 
178  bool isPFIsolationValid() const { return pfIsolationValid_; }
179 
180 
182  // WARNING: There can be not more than 7 arbritration types. If
183  // have more it will break the matching logic for types
184  // defined in MuonSegmentMatch
185 
188 
192  enum Selector {
193  CutBasedIdLoose = 1UL<< 0,
194  CutBasedIdMedium = 1UL<< 1,
195  CutBasedIdMediumPrompt = 1UL<< 2, // medium with IP cuts
196  CutBasedIdTight = 1UL<< 3,
197  CutBasedIdGlobalHighPt = 1UL<< 4, // high pt muon for Z',W' (better momentum resolution)
198  CutBasedIdTrkHighPt = 1UL<< 5, // high pt muon for boosted Z (better efficiency)
199  PFIsoVeryLoose = 1UL<< 6, // reliso<0.40
200  PFIsoLoose = 1UL<< 7, // reliso<0.25
201  PFIsoMedium = 1UL<< 8, // reliso<0.20
202  PFIsoTight = 1UL<< 9, // reliso<0.15
203  PFIsoVeryTight = 1UL<<10, // reliso<0.10
204  TkIsoLoose = 1UL<<11, // reliso<0.10
205  TkIsoTight = 1UL<<12, // reliso<0.05
206  SoftCutBasedId = 1UL<<13,
207  SoftMvaId = 1UL<<14,
208  MvaLoose = 1UL<<15,
209  MvaMedium = 1UL<<16,
210  MvaTight = 1UL<<17,
211  MiniIsoLoose = 1UL<<18, // reliso<0.40
212  MiniIsoMedium = 1UL<<19, // reliso<0.20
213  MiniIsoTight = 1UL<<20, // reliso<0.10
214  MiniIsoVeryTight = 1UL<<21, // reliso<0.05
215  TriggerIdLoose = 1UL<<22, // robust selector for HLT
216  InTimeMuon = 1UL<<23,
217  PFIsoVeryVeryTight = 1UL<<24, // reliso<0.05
218  MultiIsoLoose = 1UL<<25, // miniIso with ptRatio and ptRel
219  MultiIsoMedium = 1UL<<26, // miniIso with ptRatio and ptRel
220  PuppiIsoLoose = 1UL<<27,
221  PuppiIsoMedium = 1UL<<28,
222  PuppiIsoTight = 1UL<<29,
223  MvaVTight = 1UL<<30,
224  MvaVVTight = 1UL<<31,
225  LowPtMvaLoose = 1UL<<32,
226  LowPtMvaMedium = 1UL<<33,
227  };
228 
229  bool passed( uint64_t selection ) const { return (selectors_ & selection)==selection; }
230  bool passed( Selector selection ) const { return passed(static_cast<unsigned int>(selection)); }
231  uint64_t selectors() const { return selectors_; }
233  void setSelector(Selector selector, bool passed){
234  if (passed)
235  selectors_ |= selector;
236  else
237  selectors_ &= ~selector;
238  }
239 
244  int numberOfChambers() const { return muMatches_.size(); }
246  int numberOfChambersCSCorDT() const;
254  unsigned int expectedNnumberOfMatchedStations( float minDistanceFromEdge = 10.0 ) const;
258  unsigned int stationMask( ArbitrationType type = SegmentAndTrackArbitration ) const;
263  unsigned int RPClayerMask( ArbitrationType type = RPCHitAndTrackArbitration ) const;
264  unsigned int stationGapMaskDistance( float distanceCut = 10. ) const;
266  unsigned int stationGapMaskPull( float sigmaCut = 3. ) const;
268  int nDigisInStation( int station, int muonSubdetId) const;
270  bool hasShowerInStation( int station, int muonSubdetId, int nDtDigisCut = 20, int nCscDigisCut = 36 ) const;
272  int numberOfShowers( int nDtDigisCut = 20, int nCscDigisCut = 36 ) const;
273 
276  static const unsigned int GlobalMuon = 1<<1;
277  static const unsigned int TrackerMuon = 1<<2;
278  static const unsigned int StandAloneMuon = 1<<3;
279  static const unsigned int CaloMuon = 1<<4;
280  static const unsigned int PFMuon = 1<<5;
281  static const unsigned int RPCMuon = 1<<6;
282  static const unsigned int GEMMuon = 1<<7;
283  static const unsigned int ME0Muon = 1<<8;
284 
285  void setType( unsigned int type ) { type_ = type; }
286  unsigned int type() const { return type_; }
287 
288 
289  // override of method in base class reco::Candidate
290  bool isMuon() const override { return true; }
291  bool isGlobalMuon() const override { return type_ & GlobalMuon; }
292  bool isTrackerMuon() const override { return type_ & TrackerMuon; }
293  bool isStandAloneMuon() const override { return type_ & StandAloneMuon; }
294  bool isCaloMuon() const override { return type_ & CaloMuon; }
295  bool isPFMuon() const {return type_ & PFMuon;} //fix me ! Has to go to type
296  bool isRPCMuon() const {return type_ & RPCMuon;}
297  bool isGEMMuon() const {return type_ & GEMMuon;}
298  bool isME0Muon() const {return type_ & ME0Muon;}
299 
300  private:
302  bool overlap( const Candidate & ) const override;
310  MuonTrackRefMap refittedTrackMap_;
315 
321  std::vector<MuonChamberMatch> muMatches_;
335 
343 
345  unsigned int type_;
346 
347  //PF muon p4
349 
350  // FixMe: Still missing trigger information
351 
353  const std::vector<const MuonChamberMatch*> chambers( int station, int muonSubdetId ) const;
355  std::pair<const MuonChamberMatch*,const MuonSegmentMatch*> pair( const std::vector<const MuonChamberMatch*> &,
359  public:
361  int numberOfSegments( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
364  float dX ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
365  float dY ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
366  float dDxDz ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
367  float dDyDz ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
368  float pullX ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration, bool includeSegmentError = true ) const;
369  float pullY ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration, bool includeSegmentError = true ) const;
370  float pullDxDz ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration, bool includeSegmentError = true ) const;
371  float pullDyDz ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration, bool includeSegmentError = true ) const;
374  float segmentX ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
375  float segmentY ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
376  float segmentDxDz ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
377  float segmentDyDz ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
378  float segmentXErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
379  float segmentYErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
380  float segmentDxDzErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
381  float segmentDyDzErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
386  float trackEdgeX ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
387  float trackEdgeY ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
388  float trackX ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
389  float trackY ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
390  float trackDxDz ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
391  float trackDyDz ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
392  float trackXErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
393  float trackYErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
394  float trackDxDzErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
395  float trackDyDzErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
396  float trackDist ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
397  float trackDistErr ( int station, int muonSubdetId, ArbitrationType type = SegmentAndTrackArbitration ) const;
398 
399  float t0(int n=0) {
400  int i = 0;
401  for( std::vector<MuonChamberMatch>::const_iterator chamber = muMatches_.begin();
402  chamber != muMatches_.end(); ++chamber )
403  for ( std::vector<reco::MuonSegmentMatch>::const_iterator segment = chamber->segmentMatches.begin();
404  segment != chamber->segmentMatches.end(); ++segment )
405  {
406  if (i==n) return segment->t0;
407  ++i;
408  }
409  return 0;
410  }
411  };
412 
413 }
414 
415 
416 #endif
MuonPFIsolation pfIsoSumDRR03_
Definition: Muon.h:339
float dDyDz(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
type
Definition: HCALResponse.h:21
MuonEnergy calEnergy_
energy deposition
Definition: Muon.h:317
int Charge
electric charge type
Definition: Candidate.h:35
float segmentX(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
bool isMuon() const override
Definition: Muon.h:290
int numberOfMatchedRPCLayers(ArbitrationType type=RPCHitAndTrackArbitration) const
static const unsigned int GlobalMuon
Definition: Muon.h:276
reco::Candidate::LorentzVector pfP4_
Definition: Muon.h:348
unsigned int stationGapMaskPull(float sigmaCut=3.) const
same as above for given number of sigmas
TrackRef track() const override
reference to a Track
Definition: Muon.h:49
float trackY(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
bool isStandAloneMuon() const override
Definition: Muon.h:293
virtual MuonTrackType muonBestTrackType() const
Definition: Muon.h:64
void setType(unsigned int type)
Definition: Muon.h:285
MuonIsolation isolationR05_
Definition: Muon.h:334
virtual TrackRef innerTrack() const
Definition: Muon.h:48
float caloCompatibility_
muon hypothesis compatibility with observer calorimeter energy
Definition: Muon.h:331
bool isCaloCompatibilityValid() const
Definition: Muon.h:156
const MuonPFIsolation & pfSumDRIsoProfileR04() const
Definition: Muon.h:170
unsigned int type_
muon type mask
Definition: Muon.h:345
bool isolationValid_
Definition: Muon.h:327
MuonPFIsolation pfIsoMeanDRR04_
Definition: Muon.h:341
const MuonPFIsolation & pfMeanDRIsoProfileR04() const
Definition: Muon.h:169
selection
main part
Definition: corrVsCorr.py:100
int numberOfSegments(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
get number of segments
int numberOfChambersCSCorDT() const
number of chambers CSC or DT matches only (MuonChamberMatches include RPC rolls)
int numberOfShowers(int nDtDigisCut=20, int nCscDigisCut=36) const
count the number of showers along a muon track
bool passed(uint64_t selection) const
Definition: Muon.h:229
MuonPFIsolation pfIsolationR04_
Definition: Muon.h:340
bool isMatchesValid() const
Definition: Muon.h:142
MuonPFIsolation pfIsolationR03_
PF Isolation information for two cones with dR=0.3 and dR=0.4.
Definition: Muon.h:337
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
float segmentDxDzErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
void setCalEnergy(const MuonEnergy &calEnergy)
set energy deposition information
Definition: Muon.h:113
const MuonIsolation & isolationR05() const
Definition: Muon.h:163
MuonTime rpcTime_
Definition: Muon.h:324
reco::Candidate::LorentzVector pfP4() const
Definition: Muon.h:102
const Track * bestTrack() const override
Definition: Muon.h:61
virtual TrackRef tpfmsTrack() const
Definition: Muon.h:57
MuonTime time() const
get DT/CSC combined timing information
Definition: Muon.h:131
bool isME0Muon() const
Definition: Muon.h:298
static std::string const input
Definition: EdmProvDump.cc:48
void setSelector(Selector selector, bool passed)
Definition: Muon.h:233
virtual reco::TrackRef track() const
reference to a Track
bool isTrackerMuon() const override
Definition: Muon.h:292
virtual void setTunePBestTrack(MuonTrackType muonType)
Definition: Muon.h:93
float segmentYErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
float trackEdgeX(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
unsigned int expectedNnumberOfMatchedStations(float minDistanceFromEdge=10.0) const
virtual void setInnerTrack(const TrackRef &t)
set reference to Track
bool isRPCMuon() const
Definition: Muon.h:296
char const * label
MuonTrackRefMap refittedTrackMap_
reference to the Global Track refitted with dedicated TeV reconstructors
Definition: Muon.h:310
virtual void setStandAlone(const TrackRef &t)
TrackBaseRef bestTrackRef() const override
best track RefToBase
Definition: Muon.h:62
float trackDistErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
float dY(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
virtual TrackRef muonBestTrack() const
Definition: Muon.h:63
TrackRef innerTrack_
reference to Track reconstructed in the tracker only
Definition: Muon.h:304
Definition: Muon.py:1
void setSelectors(uint64_t selectors)
Definition: Muon.h:232
edm::RefToBase< reco::Track > TrackBaseRef
persistent reference to a Track, using views
Definition: TrackFwd.h:36
bool isGlobalMuon() const override
Definition: Muon.h:291
void setCaloCompatibility(float input)
Definition: Muon.h:155
static const unsigned int ME0Muon
Definition: Muon.h:283
virtual void setCombined(const TrackRef &t)
const MuonPFIsolation & pfIsolationR03() const
Definition: Muon.h:165
ArbitrationType
define arbitration schemes
Definition: Muon.h:186
float pullDxDz(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration, bool includeSegmentError=true) const
TrackRef muonTrack(const MuonTrackType &) const
float segmentY(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
bool isPFIsolationValid() const
Definition: Muon.h:178
unsigned int stationGapMaskDistance(float distanceCut=10.) const
MuonQuality combinedQuality() const
get energy deposition information
Definition: Muon.h:121
float segmentDyDz(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
int nDof
number of muon stations used
Definition: MuonTime.h:10
MuonPFIsolation pfIsoSumDRR04_
Definition: Muon.h:342
const std::vector< MuonChamberMatch > & matches() const
Definition: Muon.h:145
MuonTrackType bestTrackType_
reference to the Track chosen to assign the momentum value to the muon
Definition: Muon.h:312
float trackEdgeY(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
virtual TrackRef pickyTrack() const
Definition: Muon.h:58
void setPFIsolation(const std::string &label, const reco::MuonPFIsolation &deposit)
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:243
bool isQualityValid() const
Definition: Muon.h:119
Functor that operates on <T>
Definition: Selector.h:23
MuonQuality combinedQuality_
quality block
Definition: Muon.h:319
bool energyValid_
Definition: Muon.h:325
float dX(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
float pullY(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration, bool includeSegmentError=true) const
void setTime(const MuonTime &time)
set DT/CSC combined timing information
Definition: Muon.h:133
virtual TrackRef outerTrack() const
reference to Track reconstructed in the muon detector only
Definition: Muon.h:51
float trackDyDz(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
void setMuonTrack(const MuonTrackType &, const TrackRef &)
bool isEnergyValid() const
Definition: Muon.h:109
TrackRef standAloneMuon() const override
reference to a stand-alone muon Track
Definition: Muon.h:52
unsigned int stationMask(ArbitrationType type=SegmentAndTrackArbitration) const
int numberOfMatchedStations(ArbitrationType type=SegmentAndTrackArbitration) const
MuonEnergy calEnergy() const
get energy deposition information
Definition: Muon.h:111
const std::vector< const MuonChamberMatch * > chambers(int station, int muonSubdetId) const
get vector of muon chambers for given station and detector
float trackYErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
static const unsigned int RPCMuon
Definition: Muon.h:281
float trackXErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
float trackDyDzErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
bool isAValidMuonTrack(const MuonTrackType &type) const
void setRPCTime(const MuonTime &time)
set RPC timing information
Definition: Muon.h:137
float segmentDyDzErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
bool isTimeValid() const
Definition: Muon.h:129
static const unsigned int TrackerMuon
Definition: Muon.h:277
float trackX(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
unsigned long long uint64_t
Definition: Time.h:15
float trackDxDz(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
int numberOfChambers() const
Definition: Muon.h:244
const MuonPFIsolation & pfIsolationR04() const
Definition: Muon.h:168
bool isGEMMuon() const
Definition: Muon.h:297
const MuonPFIsolation & pfSumDRIsoProfileR03() const
Definition: Muon.h:167
std::map< MuonTrackType, reco::TrackRef > MuonTrackRefMap
Definition: Muon.h:39
bool pfIsolationValid_
Definition: Muon.h:328
TrackRef combinedMuon() const override
reference to a stand-alone muon Track
Definition: Muon.h:55
uint64_t selectors() const
Definition: Muon.h:231
void setCombinedQuality(const MuonQuality &combinedQuality)
set energy deposition information
Definition: Muon.h:123
static const unsigned int PFMuon
Definition: Muon.h:280
MuonIsolation isolationR03_
Isolation information for two cones with dR=0.3 and dR=0.5.
Definition: Muon.h:333
std::vector< MuonChamberMatch > & matches()
get muon matching information
Definition: Muon.h:144
bool qualityValid_
Definition: Muon.h:329
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
int numberOfMatches(ArbitrationType type=SegmentAndTrackArbitration) const
get number of chambers with matched segments
float t0(int n=0)
Definition: Muon.h:399
MuonTime rpcTime() const
get RPC timing information
Definition: Muon.h:135
TrackRef outerTrack_
reference to Track reconstructed in the muon detector only
Definition: Muon.h:306
virtual TrackRef dytTrack() const
Definition: Muon.h:59
std::vector< MuonChamberMatch > muMatches_
Information on matching between tracks and segments.
Definition: Muon.h:321
virtual void setOuterTrack(const TrackRef &t)
set reference to Track
bool overlap(const Candidate &) const override
check overlap with another candidate
virtual MuonTrackType tunePMuonBestTrackType() const
Definition: Muon.h:66
float pullDyDz(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration, bool includeSegmentError=true) const
static const unsigned int CaloMuon
Definition: Muon.h:279
uint64_t selectors_
selector bitmap
Definition: Muon.h:358
void setIsolation(const MuonIsolation &isoR03, const MuonIsolation &isoR05)
fixed size matrix
virtual void setBestTrack(MuonTrackType muonType)
Definition: Muon.h:91
virtual void setTrack(const TrackRef &t)
float segmentDxDz(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:55
static const unsigned int GEMMuon
Definition: Muon.h:282
MuonTime time_
timing
Definition: Muon.h:323
float trackDxDzErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
float trackDist(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
int nDigisInStation(int station, int muonSubdetId) const
of digis in a given station layer
float segmentXErr(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
unsigned int type() const
Definition: Muon.h:286
bool isPFMuon() const
Definition: Muon.h:295
virtual void setPFP4(const reco::Candidate::LorentzVector &p4_)
virtual TrackRef tunePMuonBestTrack() const
Definition: Muon.h:65
bool matchesValid_
Definition: Muon.h:326
TrackRef globalTrack_
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:308
MuonTrackType bestTunePTrackType_
reference to the Track chosen to assign the momentum value to the muon by PF
Definition: Muon.h:314
MuonTrackType
map for Global Muon refitters
Definition: Muon.h:38
const MuonPFIsolation & pfMeanDRIsoProfileR03() const
Definition: Muon.h:166
static const unsigned int StandAloneMuon
Definition: Muon.h:278
bool isCaloMuon() const override
Definition: Muon.h:294
float dDxDz(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration) const
unsigned int RPClayerMask(ArbitrationType type=RPCHitAndTrackArbitration) const
std::pair< TrackRef, Muon::MuonTrackType > MuonTrackTypePair
Definition: Muon.h:40
void setMatches(const std::vector< MuonChamberMatch > &matches)
set muon matching information
Definition: Muon.h:147
bool hasShowerInStation(int station, int muonSubdetId, int nDtDigisCut=20, int nCscDigisCut=36) const
tag a shower in a given station layer
bool isIsolationValid() const
Definition: Muon.h:174
MuonPFIsolation pfIsoMeanDRR03_
Definition: Muon.h:338
Muon * clone() const override
create a clone
virtual void setGlobalTrack(const TrackRef &t)
set reference to Track
float caloCompatibility() const
Definition: Muon.h:154
const MuonIsolation & isolationR03() const
Definition: Muon.h:162
TrackRef muonTrackFromMap(const MuonTrackType &type) const
Definition: Muon.h:73
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:54
bool passed(Selector selection) const
Definition: Muon.h:230
float pullX(int station, int muonSubdetId, ArbitrationType type=SegmentAndTrackArbitration, bool includeSegmentError=true) const