Go to the documentation of this file.00001 #include "DataFormats/ParticleFlowReco/interface/PFRecTrack.h"
00002 #include "Math/GenVector/PositionVector3D.h"
00003 #include "DataFormats/Math/interface/Point3D.h"
00004
00005
00006 using namespace reco;
00007
00008
00009 PFRecTrack::PFRecTrack() :
00010 PFTrack(),
00011 algoType_(PFRecTrack::Unknown),
00012 trackId_(-1)
00013 {}
00014
00015
00016
00017 PFRecTrack::PFRecTrack(double charge,
00018 AlgoType_t algoType,
00019 int trackId,
00020 const reco::TrackRef& trackRef ) :
00021 PFTrack(charge),
00022 algoType_(algoType),
00023 trackId_(trackId),
00024 trackRef_(trackRef)
00025 {}
00026
00027
00028
00029 PFRecTrack::PFRecTrack(double charge, AlgoType_t algoType) :
00030 PFTrack(charge),
00031 algoType_(algoType),
00032 trackId_(-1)
00033 {}
00034
00035
00036 std::ostream& reco::operator<<(std::ostream& out,
00037 const PFRecTrack& track) {
00038 if (!out) return out;
00039
00040 const reco::PFTrajectoryPoint& closestApproach =
00041 track.trajectoryPoint(reco::PFTrajectoryPoint::ClosestApproach);
00042
00043 out << "Reco track charge = " << track.charge()
00044 << ", type = " << track.algoType()
00045 << ", Pt = " << closestApproach.momentum().Pt()
00046 << ", P = " << closestApproach.momentum().P() << std::endl
00047 << "\tR0 = " << closestApproach.position().Rho()
00048 <<" Z0 = " << closestApproach.position().Z() << std::endl
00049 << "\tnumber of tracker measurements = "
00050 << track.nTrajectoryMeasurements() << std::endl
00051 <<"\tnumber of points total = "
00052 << track.trajectoryPoints_.size()<< std::endl;
00053
00054 for(unsigned i=0; i<track.trajectoryPoints_.size(); i++)
00055 out<<track.trajectoryPoints_[i]<<std::endl;
00056
00057
00058 return out;
00059 }