Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:54:10

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 <vector>
0008 
0009 namespace reco {
0010   class MuonChamberMatch {
0011   public:
0012     std::vector<reco::MuonSegmentMatch> segmentMatches;  // segments matching propagated track trajectory

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

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

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

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

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

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

0019     float x;        // X position of the track

0020     float y;        // Y position of the track

0021     float xErr;     // propagation uncertainty in X

0022     float yErr;     // propagation uncertainty in Y

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

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

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

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

0027     DetId id;       // chamber ID

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

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

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

0039   };
0040 }  // namespace reco

0041 
0042 #endif