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
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