CMS 3D CMS Logo

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 SteppingHelixPropagator;
00032 class MuonServiceProxy;
00033 
00034 #include "RecoVertex/KalmanVertexFit/interface/SingleTrackVertexConstraint.h"
00035 #include "TrackingTools/TransientTrack/interface/TransientTrackFromFTSFactory.h"
00036 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00037 
00038 #include <string>
00039 
00040 namespace edm {class ParameterSet; class Event;}
00041 
00042 class MuonUpdatorAtVertex {
00043 public:
00045   MuonUpdatorAtVertex(const edm::ParameterSet& pset, const MuonServiceProxy *service);
00046 
00048   virtual ~MuonUpdatorAtVertex();
00049 
00050   // Operations
00051   
00053   std::pair<bool,FreeTrajectoryState>
00054     propagate(const TrajectoryStateOnSurface &tsos, 
00055               const GlobalPoint &vtxPosition);
00056   
00058   std::pair<bool,FreeTrajectoryState>
00059     propagate(const TrajectoryStateOnSurface &tsos, const reco::BeamSpot & beamSpot);
00060 
00062   std::pair<bool,FreeTrajectoryState> 
00063     update(const reco::TransientTrack &track, const reco::BeamSpot & beamSpot);
00064   
00066   std::pair<bool,FreeTrajectoryState>
00067     update(const FreeTrajectoryState& ftsAtVtx, const reco::BeamSpot & beamSpot);
00068 
00070   std::pair<bool,FreeTrajectoryState>
00071     propagateWithUpdate(const TrajectoryStateOnSurface &tsos, 
00072                         const GlobalPoint &vtxPosition,
00073                         const reco::BeamSpot & beamSpot);
00074   
00076   std::pair<bool,FreeTrajectoryState>
00077     propagateWithUpdate(const TrajectoryStateOnSurface &tsos,
00078                         const reco::BeamSpot & beamSpot);
00079 
00081   std::pair<bool,FreeTrajectoryState>
00082     propagateToNominalLine(const TrajectoryStateOnSurface &tsos);
00083 
00085   std::pair<bool,FreeTrajectoryState>
00086     propagate(const TrajectoryStateOnSurface &tsos) __attribute__((deprecated));
00087 
00088   
00089 
00090 protected:
00091 
00092 private:
00093 
00094   const MuonServiceProxy *theService;
00095 
00096   // FIXME
00097   // The SteppingHelixPropagator must be used explicitly since the method propagate(TSOS,GlobalPoint)
00098   // is only in its specific interface. Once the interface of the Propagator base class  will be
00099   // updated, then thePropagator will become generic. 
00100   SteppingHelixPropagator *thePropagator;
00101   std::string thePropagatorName;
00102 
00103   // FIXME
00104   // remove the flag as the Propagator base class will gains the propagate(TSOS,Position) method
00105   bool theFirstTime;
00106   
00107   // FIXME
00108   // remove this method as the Propagator will gains the propagate(TSOS,Position) method
00109   void setPropagator();
00110 
00111   TransientTrackFromFTSFactory theTransientTrackFactory;
00112   SingleTrackVertexConstraint theConstrictor;
00113   double theChi2Cut;
00114 
00115   GlobalError thePositionErrors;
00116   GlobalPoint thePosition;
00117 };
00118 #endif
00119 

Generated on Tue Jun 9 17:44:34 2009 for CMSSW by  doxygen 1.5.4