Go to the documentation of this file.00001 #ifndef RecoMuon_GlobalTrackingTools_GlobalMuonTrackMatcher_H
00002 #define RecoMuon_GlobalTrackingTools_GlobalMuonTrackMatcher_H
00003
00027 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00028
00029 class TrajectoryStateOnSurface;
00030 class MuonServiceProxy;
00031 class Trajectory;
00032
00033 namespace edm {class ParameterSet;}
00034
00035
00036
00037
00038
00039 class GlobalMuonTrackMatcher {
00040
00041 public:
00042
00043 typedef std::pair<const Trajectory*,reco::TrackRef> TrackCand;
00044
00046 GlobalMuonTrackMatcher(const edm::ParameterSet&,
00047 const MuonServiceProxy*);
00048
00050 virtual ~GlobalMuonTrackMatcher();
00051
00053 bool matchTight(const TrackCand& sta,
00054 const TrackCand& track) const;
00055
00059 double match(const TrackCand& sta,
00060 const TrackCand& track,
00061 int matchOption = 0,
00062 int surfaceOption = 1) const;
00063
00065 std::vector<TrackCand> match(const TrackCand& sta,
00066 const std::vector<TrackCand>& tracks) const;
00067
00069 std::vector<TrackCand>::const_iterator matchOne(const TrackCand& sta,
00070 const std::vector<TrackCand>& tracks) const;
00071
00072 double match_R_IP(const TrackCand&, const TrackCand&) const;
00073 double match_D(const TrajectoryStateOnSurface&, const TrajectoryStateOnSurface&) const;
00074 double match_d(const TrajectoryStateOnSurface&, const TrajectoryStateOnSurface&) const;
00075 double match_Rmom(const TrajectoryStateOnSurface&, const TrajectoryStateOnSurface&) const;
00076 double match_Rpos(const TrajectoryStateOnSurface&, const TrajectoryStateOnSurface&) const;
00077 double match_Chi2(const TrajectoryStateOnSurface&, const TrajectoryStateOnSurface&) const;
00078 double match_dist(const TrajectoryStateOnSurface&, const TrajectoryStateOnSurface&) const;
00079
00080 std::pair<TrajectoryStateOnSurface,TrajectoryStateOnSurface> convertToTSOSTk(const TrackCand&, const TrackCand&) const;
00081 std::pair<TrajectoryStateOnSurface,TrajectoryStateOnSurface> convertToTSOSMuHit(const TrackCand&, const TrackCand&) const;
00082 std::pair<TrajectoryStateOnSurface,TrajectoryStateOnSurface> convertToTSOSTkHit(const TrackCand&, const TrackCand&) const;
00083 bool samePlane(const TrajectoryStateOnSurface&, const TrajectoryStateOnSurface&) const;
00084
00085 private:
00086
00087 double theMinP;
00088 double theMinPt;
00089 double thePt_threshold1;
00090 double thePt_threshold2;
00091 double theEta_threshold;
00092 double theChi2_1;
00093 double theChi2_2;
00094 double theChi2_3;
00095 double theLocChi2;
00096 double theDeltaD_1;
00097 double theDeltaD_2;
00098 double theDeltaD_3;
00099 double theDeltaR_1;
00100 double theDeltaR_2;
00101 double theDeltaR_3;
00102 double theQual_1;
00103 double theQual_2;
00104 double theQual_3;
00105
00106 const MuonServiceProxy* theService;
00107 std::string theOutPropagatorName;
00108
00109 };
00110
00111 #endif