00001 #ifndef TGET4MESSAGEFULL_H 00002 #define TGET4MESSAGEFULL_H 00003 00004 #include "Rtypes.h" 00005 #include "roc/Message.h" 00006 00007 #define BIN_SIZE_IN_NS 0.05 00008 #define EPOCH_IN_BINS 524288 00009 #define EPOCH_IN_NS 26214.4 00010 #define CYCLE_IN_EPOCHS 1048576 00011 00012 class TGet4MessageFull 00013 { 00014 ClassDef(TGet4MessageFull, 1); //The class title 00015 00016 private: 00017 roc::Message mDataMessages; 00018 00019 UInt_t uRocEpoch; 00020 UInt_t uRocEpochCycle; 00021 00022 UInt_t uLocalEpoch; 00023 UInt_t uLocalEpochCycle; 00024 00025 public: 00026 TGet4MessageFull( void ); 00027 TGet4MessageFull( roc::Message &, UInt_t, UInt_t, UInt_t, UInt_t ); 00028 00029 Bool_t SetMessageFull( roc::Message &, UInt_t, UInt_t, UInt_t, UInt_t ); 00030 Bool_t SetMessage( roc::Message & ); 00031 Bool_t SetRocEpoch( UInt_t ); 00032 Bool_t SetRocCycle( UInt_t ); 00033 Bool_t SetLocalEpoch( UInt_t ); 00034 Bool_t SetLocalCycle( UInt_t ); 00035 00036 roc::Message GetMessage() const; 00037 UInt_t GetRocEpoch() const; 00038 UInt_t GetRocCycle() const; 00039 UInt_t GetLocalEpoch() const; 00040 UInt_t GetLocalCycle() const; 00041 00042 Bool_t RocOrder( const TGet4MessageFull & )const; 00043 Bool_t LocalOrder( const TGet4MessageFull & )const; 00044 00045 /* This is the function used to sort Messages in the filled vectors 00046 * For this, it compares the timestamps, taking into account whether the 00047 * message is a data message or an external synchronization message 00048 */ 00049 bool operator<(const TGet4MessageFull &rhs) const; 00050 //~ { 00051 //~ if( kTRUE == mMsg1.RocOrder( mMsg2 ) ) 00052 //~ return true; 00053 //~ else return false; 00054 //~ } 00055 00056 Double_t RocSpacing( const TGet4MessageFull &) const; 00057 Double_t LocalSpacing( const TGet4MessageFull &) const; 00058 }; 00059 #endif // TGET4MESSAGEFULL_H