00001 #ifndef TransientInitialStateEstimator_H 00002 #define TransientInitialStateEstimator_H 00003 00004 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00005 #include "FWCore/Framework/interface/ESHandle.h" 00006 00007 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00008 00009 #include <utility> 00010 00011 class Propagator; 00012 class GeomDet; 00013 class Trajectory; 00014 namespace edm { class EventSetup;} 00015 00019 00020 class TransientInitialStateEstimator { 00021 public: 00022 00023 typedef TrajectoryStateOnSurface TSOS; 00024 00025 TransientInitialStateEstimator( const edm::EventSetup& es, const edm::ParameterSet& conf); 00027 void setEventSetup( const edm::EventSetup& es ); 00028 00029 std::pair<TrajectoryStateOnSurface, const GeomDet*> 00030 innerState( const Trajectory& traj, bool doBackFit=true) const; 00031 00032 00033 private: 00034 std::string thePropagatorAlongName; 00035 std::string thePropagatorOppositeName; 00036 edm::ESHandle<Propagator> thePropagatorAlong; 00037 edm::ESHandle<Propagator> thePropagatorOpposite; 00038 int theNumberMeasurementsForFit; 00039 }; 00040 00041 #endif