CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/Validation/RecoMuon/src/MuonSeedTrack.h

Go to the documentation of this file.
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