Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-08-23 02:46:05

0001 #ifndef MuonReco_MuonChamberMatch_h
0002 #define MuonReco_MuonChamberMatch_h
0003 
0004 #include "DataFormats/DetId/interface/DetId.h"
0005 #include "DataFormats/MuonReco/interface/MuonSegmentMatch.h"
0006 #include "DataFormats/MuonReco/interface/MuonRPCHitMatch.h"
0007 #include "DataFormats/MuonReco/interface/MuonGEMHitMatch.h"
0008 #include <vector>
0009 
0010 namespace reco {
0011   class MuonChamberMatch {
0012   public:
0013     std::vector<reco::MuonSegmentMatch> segmentMatches;  // segments matching propagated track trajectory

0014     std::vector<reco::MuonSegmentMatch> gemMatches;      // segments matching propagated track trajectory

0015     std::vector<reco::MuonGEMHitMatch> gemHitMatches;    // segments matching propagated track trajectory

0016     std::vector<reco::MuonSegmentMatch> me0Matches;      // segments matching propagated track trajectory

0017     std::vector<reco::MuonSegmentMatch> truthMatches;    // SimHit projection matching propagated track trajectory

0018     std::vector<reco::MuonRPCHitMatch> rpcMatches;       // rpc hits matching propagated track trajectory

0019     float edgeX;    // distance to closest edge in X (negative - inside, positive - outside)

0020     float edgeY;    // distance to closest edge in Y (negative - inside, positive - outside)

0021     float x;        // X position of the track

0022     float y;        // Y position of the track

0023     float xErr;     // propagation uncertainty in X

0024     float yErr;     // propagation uncertainty in Y

0025     float dXdZ;     // dX/dZ of the track

0026     float dYdZ;     // dY/dZ of the track

0027     float dXdZErr;  // propagation uncertainty in dX/dZ

0028     float dYdZErr;  // propagation uncertainty in dY/dZ

0029     DetId id;       // chamber ID

0030 
0031     int nDigisInRange;  // # of DT/CSC digis in the chamber close-by to the propagated track

0032 
0033     int detector() const { return id.subdetId(); }
0034     int station() const;
0035 
0036     std::pair<float, float> getDistancePair(float edgeX, float edgeY, float xErr, float yErr) const;
0037     float dist() const { return getDistancePair(edgeX, edgeY, xErr, yErr).first; }  // distance to absolute closest edge

0038     float distErr() const {
0039       return getDistancePair(edgeX, edgeY, xErr, yErr).second;
0040     }  // propagation uncertainty in above distance

0041   };
0042 }  // namespace reco

0043 
0044 #endif