00001 #ifndef GlobalTrackingTools_GlobalTrackQualityProducer_h 00002 #define GlobalTrackingTools_GlobalTrackQualityProducer_h 00003 00004 #include <string> 00005 #include <vector> 00006 00007 #include "FWCore/Framework/interface/Frameworkfwd.h" 00008 #include "DataFormats/Common/interface/ValueMap.h" 00009 #include "DataFormats/Common/interface/Handle.h" 00010 #include "DataFormats/TrackReco/interface/Track.h" 00011 00012 #include "FWCore/Framework/interface/EDProducer.h" 00013 #include "FWCore/Framework/interface/Event.h" 00014 #include "FWCore/Framework/interface/EventSetup.h" 00015 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00016 00017 #include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h" 00018 #include "RecoMuon/GlobalTrackingTools/interface/GlobalMuonRefitter.h" 00019 #include "RecoMuon/GlobalTrackingTools/interface/GlobalMuonTrackMatcher.h" 00020 00021 #include "TrackingTools/PatternTools/interface/MeasurementEstimator.h" 00022 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h" 00023 00024 class GlobalMuonRefitter; 00025 00026 class GlobalTrackQualityProducer : public edm::EDProducer { 00027 public: 00028 explicit GlobalTrackQualityProducer(const edm::ParameterSet& iConfig); 00029 00030 virtual ~GlobalTrackQualityProducer(); // {} 00031 00032 private: 00033 virtual void produce(edm::Event&, const edm::EventSetup&); 00034 virtual std::pair<double,double> kink(Trajectory& muon) const ; 00035 virtual std::pair<double,double> newChi2(Trajectory& muon) const; 00036 virtual double trackProbability(Trajectory& track) const; 00037 00038 edm::InputTag inputCollection_; 00039 edm::InputTag inputLinksCollection_; 00040 MuonServiceProxy* theService; 00041 GlobalMuonRefitter* theGlbRefitter; 00042 GlobalMuonTrackMatcher* theGlbMatcher; 00043 MeasurementEstimator *theEstimator; 00044 //muon::SelectionType selectionType_; 00045 }; 00046 #endif