CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/QCDAnalysis/ChargedHadronSpectra/interface/PlotRecTracks.h

Go to the documentation of this file.
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