00001 #ifndef PXXReadoutRequestRecord__H__ 00002 #define PXXReadoutRequestRecord__H__ 00003 00010 00011 #include "payloads-unpacker/payloads/PXXVRecord.h" 00012 #include "payloads-unpacker/payloads/PXXIReadoutRequest.h" 00013 #include "payloads-unpacker/payloads/PXXSourceID4B.h" 00014 #include "payloads-unpacker/payloads/PXXReadoutRequestElementRecord.h" 00015 #include <vector> 00016 using namespace std; 00017 00018 class PXXReadoutRequestRecord : public PXXVRecord, public PXXIReadoutRequest 00019 { 00020 public: 00021 00022 SET_LOGGER("PXXReadoutRequestRecord"); 00023 00027 PXXReadoutRequestRecord(); 00028 //------------------------------------------------------------------------------ 00029 00033 virtual ~PXXReadoutRequestRecord(); 00034 //------------------------------------------------------------------------------ 00035 00039 virtual Int32b_t GetTriggerUID() const; 00040 //------------------------------------------------------------------------------ 00041 00045 virtual const PXXISourceID& GetSourceID(); 00046 //------------------------------------------------------------------------------ 00047 00051 virtual Int32b_t GetNumberOfRequestElements() const; 00052 //------------------------------------------------------------------------------ 00053 00059 virtual const vector<PXXIReadoutRequestElementPtr> GetReadoutRequestElements(); 00060 //------------------------------------------------------------------------------ 00061 00065 virtual void WriteProperties(); 00066 //------------------------------------------------------------------------------ 00067 00068 private: 00069 00080 virtual Int32b_t ReadData(); 00081 //------------------------------------------------------------------------------ 00082 00083 private: 00084 00085 Int32b_t fITriggerUID_; // type of the trigger 00086 PXXSourceID4B fTSourceID_; // ID of the Source 00087 Int32b_t fINumberOfRequestElements_; // number of elements 00088 vector<PXXIReadoutRequestElementPtr> fReadoutRequestElements_; // elements 00089 00090 ClassDef(PXXReadoutRequestRecord, 0) // interface to HitPayload 00091 00092 }; 00093 00094 #ifdef __USEROOT__ // compile with ROOT 00095 typedef PXXReadoutRequestRecord* PXXReadoutRequestRecordPtr; 00096 #else // compile with IceTray 00097 typedef shared_ptr<PXXReadoutRequestRecord> PXXReadoutRequestRecordPtr; 00098 #endif 00099 00100 #endif // PXXReadoutRequestRecord_H