CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/TrackingTools/Producers/interface/SmartPropagatorESProducer.h

Go to the documentation of this file.
00001 #ifndef TrackingTools_GeomPropagators_SmartPropagatorESProducer_H
00002 #define TrackingTools_GeomPropagators_SmartPropagatorESProducer_H
00003 
00012 #include "FWCore/Framework/interface/ESProducer.h"
00013 
00014 #include "TrackingTools/GeomPropagators/interface/SmartPropagator.h"
00015 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h"
00016 
00017 #include <boost/shared_ptr.hpp>
00018   
00019 
00020 namespace edm {class ParameterSet;}
00021 
00022 class TrackingComponentsRecord;
00023 
00024 class  SmartPropagatorESProducer: public edm::ESProducer{
00025 
00026  public:
00027   
00029   SmartPropagatorESProducer(const edm::ParameterSet &);
00030   
00032   virtual ~SmartPropagatorESProducer(); 
00033   
00034   // Operations
00035   boost::shared_ptr<Propagator> produce(const TrackingComponentsRecord &);
00036   
00037  private:
00038   boost::shared_ptr<Propagator> thePropagator;
00039   PropagationDirection thePropagationDirection;
00040   std::string theTrackerPropagatorName;
00041   std::string theMuonPropagatorName;
00042   double theEpsilon;
00043 };
00044 
00045 #endif
00046