00001 #ifndef _ChargedHadronSpectra_PlotRecTracks_h_ 00002 #define _ChargedHadronSpectra_PlotRecTracks_h_ 00003 00004 #include <fstream> 00005 #include <vector> 00006 00007 namespace edm { class Event; class EventSetup; } 00008 class TrackingRecHit; 00009 class TrackerGeometry; 00010 class TrackerHitAssociator; 00011 class FreeTrajectoryState; 00012 class MagneticField; 00013 class Propagator; 00014 00015 class TrajectoryFitter; 00016 00017 namespace reco { class Track; } 00018 00019 class PlotRecTracks 00020 { 00021 public: 00022 explicit PlotRecTracks(const edm::EventSetup& es_, 00023 std::string trackProducer_, std::ofstream& file_); 00024 ~PlotRecTracks(); 00025 void printRecTracks(const edm::Event& ev); 00026 00027 private: 00028 std::string getPixelInfo(const TrackingRecHit* recHit, 00029 const std::ostringstream& o, 00030 const std::ostringstream& d); 00031 std::string getStripInfo(const TrackingRecHit* recHit, 00032 const std::ostringstream& o, 00033 const std::ostringstream& d); 00034 FreeTrajectoryState getTrajectoryAtOuterPoint(const reco::Track& track); 00035 00036 const edm::EventSetup& es; 00037 std::string trackProducer; 00038 std::ofstream& file; 00039 00040 const TrackerGeometry* theTracker; 00041 const MagneticField* theMagField; 00042 const Propagator* thePropagator; 00043 const TrajectoryFitter* theFitter; 00044 00045 TrackerHitAssociator * theHitAssociator; 00046 }; 00047 00048 #endif