00001 #ifndef TrajectoryStateTransform_H 00002 #define TrajectoryStateTransform_H 00003 00004 #include "DataFormats/TrajectoryState/interface/PTrajectoryStateOnDet.h" 00005 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00006 00007 class TrajectoryStateOnSurface; 00008 class FreeTrajectoryState; 00009 class TrackingGeometry; 00010 class Surface; 00011 class MagneticField; 00012 00013 class TrajectoryStateTransform { 00014 public: 00015 00016 PTrajectoryStateOnDet* persistentState( const TrajectoryStateOnSurface& ts, 00017 unsigned int detid) const; 00018 00019 TrajectoryStateOnSurface transientState( const PTrajectoryStateOnDet& ts, 00020 const Surface* surface, 00021 const MagneticField* field) const; 00022 00025 FreeTrajectoryState initialFreeState( const reco::Track& tk, 00026 const MagneticField* field) const; 00027 00028 FreeTrajectoryState innerFreeState( const reco::Track& tk, 00029 const MagneticField* field) const; 00030 FreeTrajectoryState outerFreeState( const reco::Track& tk, 00031 const MagneticField* field) const; 00032 00035 TrajectoryStateOnSurface innerStateOnSurface( const reco::Track& tk, 00036 const TrackingGeometry& geom, 00037 const MagneticField* field) const; 00038 TrajectoryStateOnSurface outerStateOnSurface( const reco::Track& tk, 00039 const TrackingGeometry& geom, 00040 const MagneticField* field) const; 00041 00042 }; 00043 00044 #endif