CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoMuon/GlobalTrackingTools/interface/GlobalMuonTrackMatcher.h

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 //              -- Class Interface --
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