CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/RecoMuon/TrackingTools/interface/MuonUpdatorAtVertex.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_TrackingTools_MuonUpdatorAtVertex_H
00002 #define RecoMuon_TrackingTools_MuonUpdatorAtVertex_H
00003 
00029 class TrajectoryStateOnSurface;
00030 class FreeTrajectoryState;
00031 class MuonServiceProxy;
00032 
00033 #include "RecoVertex/KalmanVertexFit/interface/SingleTrackVertexConstraint.h"
00034 #include "TrackingTools/TransientTrack/interface/TransientTrackFromFTSFactory.h"
00035 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00036 
00037 #include <string>
00038 
00039 namespace edm {class ParameterSet; class Event;}
00040 
00041 class MuonUpdatorAtVertex {
00042 public:
00044   MuonUpdatorAtVertex(const edm::ParameterSet& pset, const MuonServiceProxy *service);
00045 
00047   virtual ~MuonUpdatorAtVertex();
00048 
00049   // Operations
00050   
00052   std::pair<bool,FreeTrajectoryState>
00053     propagate(const TrajectoryStateOnSurface &tsos, const reco::BeamSpot & beamSpot) const;
00054 
00056   std::pair<bool,FreeTrajectoryState> 
00057     update(const reco::TransientTrack &track, const reco::BeamSpot & beamSpot) const;
00058   
00060   std::pair<bool,FreeTrajectoryState>
00061     update(const FreeTrajectoryState& ftsAtVtx, const reco::BeamSpot & beamSpot) const;
00062 
00064   std::pair<bool,FreeTrajectoryState>
00065     propagateWithUpdate(const TrajectoryStateOnSurface &tsos,
00066                         const reco::BeamSpot & beamSpot) const;
00067 
00069   std::pair<bool,FreeTrajectoryState>
00070     propagateToNominalLine(const TrajectoryStateOnSurface &tsos) const;
00071 
00073   std::pair<bool,FreeTrajectoryState>
00074     propagate(const TrajectoryStateOnSurface &tsos) const __attribute__((deprecated));
00075 
00076   
00077 
00078 protected:
00079 
00080 private:
00081 
00082   const MuonServiceProxy *theService;
00083   std::string thePropagatorName;
00084  
00085   TransientTrackFromFTSFactory theTransientTrackFactory;
00086   SingleTrackVertexConstraint theConstrictor;
00087   double theChi2Cut;
00088 
00089   GlobalError thePositionErrors;
00090 };
00091 #endif
00092