#ifdef __GNUG__ #pragma implementation #endif #include "Stntuple/obj/TStnTrack.hh" #include "Stntuple/obj/TStnTofMatch.hh" ClassImp(TStnTofMatch) //------------------------------------------------------------------------------ void TStnTofMatch::Streamer(TBuffer &R__b) { UInt_t R__s, R__c; // Stream an object of class TStnTofMatch if (R__b.IsReading()) { Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { } if (R__v == 1){ TObject::Streamer(R__b); R__b >> fNumber; R__b >> fTofNPulses; R__b >> fPathLength; R__b >> fArcLength; R__b >> fMomentum; R__b >> fArrivalTime; R__b >> fArrivalTimeError; R__b >> fTof; R__b >> fTofErr; R__b >> fTofZBar; R__b >> fTZero; R__b >> fTZeroError; R__b >> fTZeroZpos; R__b >> fTofNBar; R__b >> fTrind; } R__b.CheckByteCount(R__s, R__c, TStnTofMatch::IsA()); }else { R__c = R__b.WriteVersion(TStnTofMatch::IsA(), kTRUE); TObject::Streamer(R__b); R__b << fNumber; R__b << fTofNPulses; R__b << fPathLength; R__b << fArcLength; R__b << fMomentum; R__b << fArrivalTime; R__b << fArrivalTimeError; R__b << fTof; R__b << fTofErr; R__b << fTofZBar; R__b << fTZero; R__b << fTZeroError; R__b << fTZeroZpos; R__b << fTofNBar; R__b << fTrind; R__b.SetByteCount(R__c, kTRUE); } } //------------------------------------------------------------------------------ TStnTofMatch::TStnTofMatch(Int_t Number) : fNumber(Number) { Reset(); } //------------------------------------------------------------------------------ /* TStnTofMatch::TStnTofMatch(TStnTofMatch *right) { fNumber = right->fNumber; fTofNPulses = right->fTofNPulses; fPathLength = right->fPathLength; fArcLength = right->fArcLength; fMomentum = right->fMomentum; fArrivalTime = right->fArrivalTime; fArrivalTimeError = right->fArrivalTimeError; fTof = right->fTof; fTofErr = right->fTofErr; fTZero = right->fTZero; fTZeroError = right->fTZeroError; fTrind = right->fTrind; fTofZBar = right->fTofZBar; fTofNBar = right->fTofNBar; fTofMatches = right->fTofMatches; fTrack = right->fTrack; } */ //------------------------------------------------------------------------------ void TStnTofMatch::Reset() { fTofNPulses = -1; fPathLength = -999.; fArcLength = -999.; fMomentum = -999.; fArrivalTime = -999.; fArrivalTimeError = -999.; fTof = -999.; fTofErr = -999.; fTZero = -999.; fTZeroError = -999.; fTZeroZpos = -999.; fTofZBar = -999.; fTofNBar = -1; fTrind = -1; fTofMatches = NULL; fTrack = NULL; } //------------------------------------------------------------------------------ TStnTofMatch::~TStnTofMatch() { } Int_t TStnTofMatch::Compare(const TObject* match) const { // compare 2 matches based on the number of associated tracks Float_t mom = fMomentum - ((TStnTofMatch*) match)->Momentum(); if (mom < 0) return 1; else if (mom > 0) return -1; else return 0; } //------------------------------------------------------------------------------ void TStnTofMatch::Print(Option_t* option) const { if ((strcmp(option,"") == 0) || strstr(option,"banner")) { // print banner printf(" TrkId NPulses"); printf(" Tof TofErr Arclen\n"); } if ((strcmp(option,"") == 0) || strstr(option,"data")) { printf("%6d %7d",fTrind,fTofNPulses); printf("%7.3f %7.3f %7.3f %7.3f %7.3f\n",fTof,fTofErr,fArcLength); } }