00001 #ifndef PXXReadoutDataRecord__H__ 00002 #define PXXReadoutDataRecord__H__ 00003 00010 00011 #include "payloads-unpacker/payloads/PXXVRecord.h" 00012 #include "payloads-unpacker/payloads/PXXSourceID4B.h" 00013 #include "payloads-unpacker/payloads/PXXUTCTime8B.h" 00014 #include <vector> 00015 using namespace std; 00016 00017 class PXXReadoutDataRecord : public PXXVRecord 00018 { 00019 public: 00020 00021 SET_LOGGER("PXXReadoutDataRecord"); 00022 00026 PXXReadoutDataRecord(); 00027 //------------------------------------------------------------------------------ 00028 00032 virtual ~PXXReadoutDataRecord(); 00033 //------------------------------------------------------------------------------ 00034 00040 virtual Int32b_t GetUID() const; 00041 //------------------------------------------------------------------------------ 00042 00046 virtual Short16b_t GetPayloadNumber() const; 00047 //------------------------------------------------------------------------------ 00048 00053 virtual Short16b_t GetLastPayloadFlag() const; 00054 //------------------------------------------------------------------------------ 00055 00060 virtual const PXXISourceID& GetSourceID(); 00061 //------------------------------------------------------------------------------ 00062 00067 virtual const PXXIUTCTime &GetFirstTimeUTC(); 00068 //------------------------------------------------------------------------------ 00069 00074 virtual const PXXIUTCTime &GetLastTimeUTC(); 00075 //------------------------------------------------------------------------------ 00076 00080 virtual void WriteProperties(); 00081 //------------------------------------------------------------------------------ 00082 00083 private: 00084 00095 virtual Int32b_t ReadData(); 00096 //------------------------------------------------------------------------------ 00097 00098 private: 00099 00100 Int32b_t fIUID_; // unique id for this request 00101 Short16b_t fSPayloadNumber_; // the number of this payload within the uid 00102 Short16b_t fSLastPayloadFlag_; // 1 if this the last payload for this uid 00103 PXXSourceID4B fTSourceID_; // ID of the Source 00104 PXXUTCTime8B fTFirstTimeUTC_; // start of the time window 00105 PXXUTCTime8B fTLastTimeUTC_; // last of the time window 00106 00107 ClassDef(PXXReadoutDataRecord, 0) // interface to HitPayload 00108 00109 }; 00110 00111 #ifdef __USEROOT__ // compile with ROOT 00112 typedef PXXReadoutDataRecord* PXXReadoutDataRecordPtr; 00113 #else // compile with IceTray 00114 typedef shared_ptr<PXXReadoutDataRecord> PXXReadoutDataRecordPtr; 00115 #endif 00116 00117 #endif // PXXReadoutDataRecord_H