00001 #ifndef GsfTrackProducerAlgorithm_h
00002 #define GsfTrackProducerAlgorithm_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
00016
00017 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00018 #include "DataFormats/TrackReco/interface/TrackExtra.h"
00019 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
00020 #include "DataFormats/GsfTrackReco/interface/GsfTrackExtra.h"
00021 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
00022
00023 class MagneticField;
00024 class TrackingGeometry;
00025 class TrajectoryFitter;
00026 class Propagator;
00027 class Trajectory;
00028 class TrajectoryStateOnSurface;
00029 class TransientTrackingRecHitBuilder;
00030
00031
00032 class GsfTrackProducerAlgorithm {
00033
00034 public:
00035 typedef std::pair<Trajectory*, std::pair<reco::GsfTrack*,PropagationDirection> > AlgoProduct;
00036 typedef std::vector< AlgoProduct > AlgoProductCollection;
00037
00038 GsfTrackProducerAlgorithm(const edm::ParameterSet& conf) :
00039 conf_(conf)
00040 { }
00041
00042 ~GsfTrackProducerAlgorithm() {}
00043
00044 void runWithCandidate(const TrackingGeometry *,
00045 const MagneticField *,
00046 const TrackCandidateCollection&,
00047 const TrajectoryFitter *,
00048 const Propagator *,
00049 const TransientTrackingRecHitBuilder*,
00050 AlgoProductCollection &);
00051
00052 void runWithTrack(const TrackingGeometry *,
00053 const MagneticField *,
00054 const reco::TrackCollection&,
00055 const TrajectoryFitter *,
00056 const Propagator *,
00057 const TransientTrackingRecHitBuilder*,
00058 AlgoProductCollection &);
00059
00060 bool buildTrack(const TrajectoryFitter *,
00061 const Propagator *,
00062 AlgoProductCollection& ,
00063 TransientTrackingRecHit::RecHitContainer&,
00064 TrajectoryStateOnSurface& ,
00065 const TrajectorySeed&,
00066 float);
00067
00068 private:
00069 edm::ParameterSet conf_;
00070 };
00071
00072 #endif