00001 #include "TrgConverter/TrgTrackStreamer.h"
00002
00003 std::ostream& str::trgTrack(const TrgTrack& gtrack, std::ostream& os) {
00004
00005 os << str::trgTrackHeader(gtrack,os) << std::endl;
00006 os << str::trgTrackFields(gtrack,os) << std::endl;
00007 os << str::trgStates(gtrack.otherStates(),os) <<std::endl;
00008 os << str::trgTrackReferences(gtrack,os);
00009 return os;
00010 }
00011
00012 std::ostream& str::trgTrackHeader(const TrgTrack& gtrack, std::ostream& os)
00013 {
00014 os << " chi2 \t" << gtrack.chiSquared() << std::endl;
00015 os << " ndof \t" << gtrack.degreeOfFreedom() << std::endl;
00016 os << " first state \t"
00017 << str::trgState(gtrack.firstState(),os) << std::endl;
00018 os << " flags \t " << gtrack.flags() << std::endl;
00019 os << " nStates \t" << gtrack.otherStates().size();
00020 return os;
00021 }
00022
00023 std::ostream& str::trgStates(const std::vector<TrgState>& states,
00024 std::ostream& os)
00025 {
00026 os << " states \t " << states.size() << std::endl;
00027 for (std::vector<TrgState>::const_iterator it = states.begin();
00028 it != states.end(); it++) {
00029 const TrgState& gstate = *it;
00030 os << str::trgState(gstate,os) << std::endl;
00031 }
00032 return os;
00033 }
00034
00035 std::ostream& str::trgTrackReferences(const TrgTrack& gtrack,
00036 std::ostream& os)
00037 {
00038 os << " references :" << std::endl;
00039 const std::vector< std::pair<VeloChannelID,int> >& vref
00040 = gtrack.veloReference();
00041 for (std::vector< std::pair<VeloChannelID,int> >::const_iterator
00042 it = vref.begin(); it != vref.end(); it++) {
00043 const std::pair<VeloChannelID,int>& velo = *it;
00044 os << " \t velo id "<<velo.first.channelID()
00045 << " size " << velo.second << std::endl;
00046 }
00047 const std::vector< std::pair<ITChannelID,int> >& itref
00048 = gtrack.itReference();
00049 for (std::vector< std::pair<ITChannelID,int> >::const_iterator
00050 it = itref.begin(); it != itref.end(); it++) {
00051 const std::pair<ITChannelID,int>& si = *it;
00052 os << " \t si id "<< si.first.channelID()
00053 << " size " << si.second << std::endl;
00054 }
00055 const std::vector< std::pair<OTChannelID,int> >& otref
00056 = gtrack.otReference();
00057 for (std::vector< std::pair<OTChannelID,int> >::const_iterator
00058 it = otref.begin(); it != otref.end(); it++) {
00059 const std::pair<VeloChannelID,int>& ot = *it;
00060 os << " \t ot id "<< ot.first.channelID()
00061 << " size " << ot.second << std::endl;
00062 }
00063 return os;
00064 }
00065
00066
00067 std::ostream& str::trgTrackFields(const TrgTrack& gtrack, std::ostream& os) {
00068
00069
00070 TrgTrack::TrgTrackType gtype = (TrgTrack::TrgTrackType) gtrack.type();
00071
00072 if (gtype == TrgTrack::TypeVeloR) os << "T:VeloR, ";
00073 if (gtype == TrgTrack::TypeVelo3D) os << "T:Velo3D, ";
00074 if (gtype == TrgTrack::TypeVeloTT) os << "T:VeloTT, ";
00075 if (gtype == TrgTrack::TypeLong) os << "T:Long, ";
00076 if (gtype == TrgTrack::TypeDownstream) os << "T:Downstream, ";
00077 if (gtype == TrgTrack::TypeKShort) os << "T:KShort, ";
00078
00079 if (gtrack.badTrack()) os << "F:BadTrack, ";
00080 if (gtrack.alreadyUsed()) os << "F:AlreadyUsed, ";
00081 if (gtrack.backward()) os << "F:Backward, ";
00082 if (gtrack.selectedIP2D()) os << "F:SelectedIP2D, ";
00083 if (gtrack.selectedMuon2D()) os << "F:SelectedMuon2D, ";
00084
00085 return os;
00086 }
00087
00088 std::ostream& str::trgState(const TrgState& state, std::ostream& os) {
00089 os << " z " << state.z() << std::endl;
00090 os << " state " << state.stateVector();
00091
00092 return os;
00093 }
00094