CMS 3D CMS Logo

MuonSegmentMatch.h

Go to the documentation of this file.
00001 #ifndef MuonReco_MuonSegmentMatch_h
00002 #define MuonReco_MuonSegmentMatch_h
00003 
00004 #include <cmath>
00005 
00006 namespace reco {
00007    class MuonSegmentMatch {
00008       public:
00010          static const unsigned int Arbitrated              = 1<<8;     // is arbitrated (multiple muons)
00011          static const unsigned int BestInChamberByDX       = 1<<9;     // best delta x in single muon chamber
00012          static const unsigned int BestInChamberByDR       = 1<<10;    // best delta r in single muon chamber
00013          static const unsigned int BestInChamberByDXSlope  = 1<<11;    // best delta dx/dz in single muon chamber
00014          static const unsigned int BestInChamberByDRSlope  = 1<<12;    // best delta dy/dz in single muon chamber
00015          static const unsigned int BestInStationByDX       = 1<<13;    // best delta x in single muon station
00016          static const unsigned int BestInStationByDR       = 1<<14;    // best delta r in single muon station
00017          static const unsigned int BestInStationByDXSlope  = 1<<15;    // best delta dx/dz in single muon station
00018          static const unsigned int BestInStationByDRSlope  = 1<<16;    // best delta dy/dz in single muon station
00019          static const unsigned int BelongsToTrackByDX      = 1<<17;    // best delta x of multiple muons
00020          static const unsigned int BelongsToTrackByDR      = 1<<18;    // best delta r of multiple muons
00021          static const unsigned int BelongsToTrackByDXSlope = 1<<19;    // best delta dx/dz of multiple muons
00022          static const unsigned int BelongsToTrackByDRSlope = 1<<20;    // best delta dy/dz of multiple muons
00023 
00024          float x;              // X position of the matched segment
00025          float y;              // Y position of the matched segment
00026          float xErr;           // uncertainty in X
00027          float yErr;           // uncertainty in Y
00028          float dXdZ;           // dX/dZ of the matched segment
00029          float dYdZ;           // dY/dZ of the matched segment
00030          float dXdZErr;        // uncertainty in dX/dZ
00031          float dYdZErr;        // uncertainty in dY/dZ
00032          unsigned int mask;    // arbitration mask
00033 
00034          bool isMask( unsigned int flag = Arbitrated ) const { return mask & flag; }
00035          void setMask( unsigned int flag ) { if(!(mask & flag)) mask += flag; }
00036          float t0;
00037       MuonSegmentMatch():x(0),y(0),xErr(0),yErr(0),dXdZ(0),dYdZ(0),
00038       dXdZErr(0),dYdZErr(0) {}
00039 
00040          bool hasZed() const { return ! (fabs(y)<1E-6&&fabs(yErr)<1E-6); }
00041          bool hasPhi() const { return ! (fabs(x)<1E-6&&fabs(xErr)<1E-6); }
00042    };
00043 }
00044 
00045 #endif

Generated on Tue Jun 9 17:31:21 2009 for CMSSW by  doxygen 1.5.4