00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "StMtdHit.h"
00021 #include "StTrack.h"
00022
00023 ClassImp(StMtdHit)
00024
00025 StMtdHit::StMtdHit()
00026 {
00027 mBackLeg = 0;
00028 mModule = 0;
00029 mCell = 0;
00030 mLeadingEdgeTime.first = 0.;
00031 mTrailingEdgeTime.second = 0.;
00032 mLeadingEdgeTime.first = 0.;
00033 mTrailingEdgeTime.second = 0.;
00034
00035 mAssociatedTrack = 0;
00036 mIdTruth = 0;
00037 mQuality = 0;
00038 }
00039
00040 StMtdHit::~StMtdHit() {}
00041
00042 int
00043 StMtdHit::backleg() const { return mBackLeg; }
00044
00045 int
00046 StMtdHit::module() const { return mModule; }
00047
00048 int
00049 StMtdHit::cell() const { return mCell; }
00050
00051 pair<double,double>
00052 StMtdHit::leadingEdgeTime() const { return mLeadingEdgeTime; }
00053
00054 pair<double,double>
00055 StMtdHit::trailingEdgeTime() const { return mTrailingEdgeTime; }
00056
00057 pair<double,double>
00058 StMtdHit::tot() const { return pair<double,double>(mTrailingEdgeTime.first - mLeadingEdgeTime.first, mTrailingEdgeTime.second - mLeadingEdgeTime.second); }
00059
00060 double StMtdHit::tof() const { return 0.5*(mLeadingEdgeTime.first+mLeadingEdgeTime.second); }
00061
00062 StTrack*
00063 StMtdHit::associatedTrack() { return mAssociatedTrack; }
00064
00065 const StTrack*
00066 StMtdHit::associatedTrack() const { return mAssociatedTrack; }
00067
00068 int
00069 StMtdHit::idTruth() const { return mIdTruth; }
00070
00071 int
00072 StMtdHit::qaTruth() const { return mQuality; }
00073
00074 void
00075 StMtdHit::setBackleg(unsigned char backlegId) { mBackLeg = backlegId; }
00076
00077 void
00078 StMtdHit::setModule(unsigned char moduleId) { mModule = moduleId; }
00079
00080 void
00081 StMtdHit::setCell(unsigned char cellId) { mCell = cellId; }
00082
00083 void
00084 StMtdHit::setLeadingEdgeTime(pair<double,double> time) { mLeadingEdgeTime = time; }
00085
00086 void
00087 StMtdHit::setTrailingEdgeTime(pair<double,double> time) { mTrailingEdgeTime = time; }
00088
00089 void
00090 StMtdHit::setAssociatedTrack(StTrack* val) { mAssociatedTrack = val; }
00091
00092 void
00093 StMtdHit::setIdTruth(int idtru,int qatru)
00094 {
00095 if (qatru==0) qatru = (idtru>>16);
00096 idtru = idtru&((1<<16)-1);
00097 mIdTruth = static_cast<UShort_t>(idtru);
00098 mQuality = static_cast<UShort_t>(qatru);
00099 }
00100
00101 ostream&
00102 operator<<(ostream &os, const StMtdHit& hit)
00103 {
00104 os << " Backleg:" << hit.backleg() << " Module:" << hit.module()
00105 << " Cell:" << hit.cell() << endl
00106 << " LeTime " << hit.leadingEdgeTime().first << " " << hit.leadingEdgeTime().second
00107 << " TeTime " << hit.trailingEdgeTime().first << " " << hit.trailingEdgeTime().second << endl
00108 << " Track " << (hit.associatedTrack() ? hit.associatedTrack()->key() : 0) << endl
00109 << " IdTruth " << hit.idTruth() << " Quality " << hit.qaTruth() << endl;
00110 return os;
00111 }