![]() |
![]() |
00001 #ifndef Validation_RecoMuon_MuonSeedTrack_H 00002 #define Validation_RecoMuon_MuonSeedTrack_H 00003 00019 // system include files 00020 #include <memory> 00021 00022 // user include files 00023 #include "FWCore/Framework/interface/Frameworkfwd.h" 00024 #include "FWCore/Framework/interface/EDProducer.h" 00025 00026 #include "FWCore/Framework/interface/Event.h" 00027 #include "FWCore/Framework/interface/MakerMacros.h" 00028 00029 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00030 00031 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00032 00033 namespace reco {class Track;} 00034 00035 class MuonServiceProxy; 00036 class TrajectorySeed; 00037 class MuonUpdatorAtVertex; 00038 00039 // 00040 // class decleration 00041 // 00042 00043 class MuonSeedTrack : public edm::EDProducer { 00044 public: 00046 explicit MuonSeedTrack(const edm::ParameterSet&); 00047 00049 ~MuonSeedTrack(); 00050 00051 private: 00053 virtual void beginJob() ; 00054 00056 virtual void produce(edm::Event&, const edm::EventSetup&); 00057 00059 virtual void endJob() ; 00060 00062 TrajectoryStateOnSurface getSeedTSOS(const TrajectorySeed& seed) const; 00063 00065 void setAlias( std::string alias ){ 00066 alias.erase( alias.size() - 1, alias.size() ); 00067 theAlias=alias; 00068 } 00069 00071 double computeNDOF(const TrajectorySeed&) const; 00072 00074 std::pair<bool,reco::Track> buildTrackAtPCA(const TrajectorySeed&) const; 00075 00076 // ----------member data --------------------------- 00077 00079 MuonServiceProxy* theService; 00080 00082 MuonUpdatorAtVertex *theUpdatorAtVtx; 00083 00085 std::string theAlias; 00086 00088 //std::string theSeedPropagatorName; 00089 00091 edm::InputTag theSeedsLabel; 00092 00094 bool theAllowNoVtxFlag; 00095 }; 00096 00097 #endif