CMS 3D CMS Logo

MuonSegmentMatch.h
Go to the documentation of this file.
1 #ifndef MuonReco_MuonSegmentMatch_h
2 #define MuonReco_MuonSegmentMatch_h
3 
4 #include <cmath>
5 
10 
11 namespace reco {
13  public:
15  static const unsigned int Arbitrated = 1 << 8; // is arbitrated (multiple muons)
16  static const unsigned int BestInChamberByDX = 1 << 9; // best delta x in single muon chamber
17  static const unsigned int BestInChamberByDR = 1 << 10; // best delta r in single muon chamber
18  static const unsigned int BestInChamberByDXSlope = 1 << 11; // best delta dx/dz in single muon chamber
19  static const unsigned int BestInChamberByDRSlope = 1 << 12; // best delta dy/dz in single muon chamber
20  static const unsigned int BestInStationByDX = 1 << 13; // best delta x in single muon station
21  static const unsigned int BestInStationByDR = 1 << 14; // best delta r in single muon station
22  static const unsigned int BestInStationByDXSlope = 1 << 15; // best delta dx/dz in single muon station
23  static const unsigned int BestInStationByDRSlope = 1 << 16; // best delta dy/dz in single muon station
24  static const unsigned int BelongsToTrackByDX = 1 << 17; // best delta x of multiple muons
25  static const unsigned int BelongsToTrackByDR = 1 << 18; // best delta r of multiple muons
26  static const unsigned int BelongsToTrackByDXSlope = 1 << 19; // best delta dx/dz of multiple muons
27  static const unsigned int BelongsToTrackByDRSlope = 1 << 20; // best delta dy/dz of multiple muons
28  static const unsigned int BelongsToTrackByME1aClean = 1 << 21; // won ME1a segment sharing cleaning
29  static const unsigned int BelongsToTrackByOvlClean = 1 << 22; // won chamber overlap segment sharing cleaning
30  static const unsigned int BelongsToTrackByClusClean = 1 << 23; // won cluster sharing cleaning
31  // won any arbitration cleaning type, including defaults
32  static const unsigned int BelongsToTrackByCleaning = 1 << 24;
33 
34  float x; // X position of the matched segment
35  float y; // Y position of the matched segment
36  float xErr; // uncertainty in X
37  float yErr; // uncertainty in Y
38  float dXdZ; // dX/dZ of the matched segment
39  float dYdZ; // dY/dZ of the matched segment
40  float dXdZErr; // uncertainty in dX/dZ
41  float dYdZErr; // uncertainty in dY/dZ
42  unsigned int mask; // arbitration mask
43  bool hasZed_; // contains local y information (only relevant for segments in DT)
44  bool hasPhi_; // contains local x information (only relevant for segments in DT)
45 
46  bool isMask(unsigned int flag = Arbitrated) const { return (mask & flag) == flag; }
47  void setMask(unsigned int flag) { mask |= flag; }
48  float t0;
49 
54  MuonSegmentMatch() : x(0), y(0), xErr(0), yErr(0), dXdZ(0), dYdZ(0), dXdZErr(0), dYdZErr(0) {}
55 
56  bool hasZed() const { return hasZed_; }
57  bool hasPhi() const { return hasPhi_; }
58  };
59 } // namespace reco
60 
61 #endif
static const unsigned int BelongsToTrackByME1aClean
GEMSegmentRef gemSegmentRef
DTRecSegment4DRef dtSegmentRef
CSCSegmentRef cscSegmentRef
static const unsigned int Arbitrated
segment mask flags
static const unsigned int BestInStationByDRSlope
static const unsigned int BelongsToTrackByDXSlope
static const unsigned int BestInStationByDR
static const unsigned int BestInChamberByDX
bool isMask(unsigned int flag=Arbitrated) const
static const unsigned int BestInChamberByDR
ME0SegmentRef me0SegmentRef
static const unsigned int BestInStationByDXSlope
void setMask(unsigned int flag)
static const unsigned int BelongsToTrackByCleaning
static const unsigned int BestInChamberByDXSlope
static const unsigned int BelongsToTrackByOvlClean
static const unsigned int BelongsToTrackByDRSlope
static const unsigned int BelongsToTrackByDR
static const unsigned int BelongsToTrackByDX
fixed size matrix
static const unsigned int BestInStationByDX
static const unsigned int BelongsToTrackByClusClean
static const unsigned int BestInChamberByDRSlope