00001 #ifndef SeedTransformer_H 00002 #define SeedTransformer_H 00003 00014 // Base class header 00015 #include "FWCore/Framework/interface/ESHandle.h" 00016 #include <vector> 00017 00018 namespace edm { 00019 class ParameterSet; 00020 class EventSetup; 00021 } 00022 class Trajectory; 00023 class TrajectorySeed; 00024 class TrajectoryStateOnSurface; 00025 class GlobalTrackingGeometry; 00026 class MagneticField; 00027 class TrajectoryFitter; 00028 class TransientTrackingRecHitBuilder; 00029 class Propagator; 00030 00031 class SeedTransformer { 00032 public: 00034 SeedTransformer(const edm::ParameterSet&); 00035 00037 virtual ~SeedTransformer(); 00038 00039 // Operations 00041 void setServices(const edm::EventSetup&); 00042 00044 std::vector<Trajectory> seedTransform(const TrajectorySeed&) const; 00045 TrajectoryStateOnSurface seedTransientState(const TrajectorySeed&) const; 00046 00047 protected: 00048 00049 private: 00050 edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry; 00051 edm::ESHandle<MagneticField> theMagneticField; 00052 edm::ESHandle<TrajectoryFitter> theFitter; 00053 edm::ESHandle<TransientTrackingRecHitBuilder> theMuonRecHitBuilder; 00054 edm::ESHandle<Propagator> thePropagator; 00055 00056 std::string theFitterName; 00057 std::string theMuonRecHitBuilderName; 00058 std::string thePropagatorName ; 00059 00061 unsigned int nMinRecHits; 00062 00064 double errorRescale; 00065 00066 bool useSubRecHits; 00067 00068 }; 00069 #endif 00070