00001 #ifndef PixelTrackProducerWithZPos_H 00002 #define PixelTrackProducerWithZPos_H 00003 00004 #include "FWCore/Framework/interface/EDProducer.h" 00005 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00006 #include "RecoPixelVertexing/PixelTrackFitting/interface/TracksWithHits.h" 00007 00008 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" 00009 #include "TrackingTools/TransientTrack/interface/TransientTrack.h" 00010 #include "TrackingTools/Records/interface/TransientTrackRecord.h" 00011 00012 #include "DataFormats/VertexReco/interface/Vertex.h" 00013 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00014 00015 class PixelFitter; 00016 class PixelTrackCleaner; 00017 class TrackHitsFilter; 00018 class HitsFilter; 00019 class OrderedHitsGenerator; 00020 class TrackingRegionProducer; 00021 class Track; 00022 00023 00024 namespace edm { class Event; class EventSetup; } 00025 00026 class PixelTrackProducerWithZPos : public edm::EDProducer 00027 { 00028 public: 00029 explicit PixelTrackProducerWithZPos(const edm::ParameterSet& conf); 00030 ~PixelTrackProducerWithZPos(); 00031 virtual void produce(edm::Event& ev, const edm::EventSetup& es); 00032 00033 private: 00034 void beginJob(const edm::EventSetup& es); 00035 std::pair<float,float> refitWithVertex (const reco::Track & recTrack, 00036 const reco::VertexCollection* vertices); 00037 00038 void store(edm::Event& ev, 00039 const pixeltrackfitting::TracksWithRecHits & selectedTracks); 00040 00041 edm::ParameterSet ps; 00042 00043 const PixelFitter * theFitter; 00044 const TrackHitsFilter * theFilter; 00045 const TrackHitsFilter * theHitsFilter; 00046 PixelTrackCleaner * theCleaner; 00047 OrderedHitsGenerator * theGenerator; 00048 TrackingRegionProducer* theRegionProducer; 00049 00050 const TransientTrackBuilder * theTTBuilder; 00051 bool theUseFoundVertices; 00052 // bool theUseChi2Cut; 00053 00054 double thePtMin, theOriginRadius; 00055 }; 00056 #endif