00001 #ifndef PixelTrackBuilder_H
00002 #define PixelTrackBuilder_H
00003
00004 #include <vector>
00005 #include <string>
00006 #include "DataFormats/TrackReco/interface/Track.h"
00007 #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h"
00008 class TrackingRecHit;
00009 class MagneticField;
00010 class TrajectoryStateOnSurface;
00011 class FreeTrajectoryState;
00012
00013 class PixelTrackBuilder {
00014 public:
00015 reco::Track * build(
00016 const Measurement1D & pt,
00017 const Measurement1D & phi,
00018 const Measurement1D & cotTheta,
00019 const Measurement1D & tip,
00020 const Measurement1D & zip,
00021 float chi2,
00022 int charge,
00023 const std::vector<const TrackingRecHit* >& hits,
00024 const MagneticField * mf) const;
00025
00026 private:
00027 std::string print(const reco::Track & track) const;
00028 std::string print(const TrajectoryStateOnSurface & state) const;
00029 std::string print( const Measurement1D & pt,
00030 const Measurement1D & phi,
00031 const Measurement1D & cotTheta,
00032 const Measurement1D & tip,
00033 const Measurement1D & zip,
00034 float chi2,
00035 int charge) const;
00036
00037 void checkState(const TrajectoryStateOnSurface & state, const MagneticField* mf) const;
00038
00039 };
00040
00041 #endif