00001 #ifndef __PXXEventPayload__H__ 00002 #define __PXXEventPayload__H__ 00003 00011 00012 #include "payloads-unpacker/payloads/PXXIEventPayload.h" 00013 #include "payloads-unpacker/payloads/PXXVCompositePayload.h" 00014 #include "payloads-unpacker/payloads/PXXEventPayloadRecord.h" 00015 #include <vector> 00016 using namespace std; 00017 00018 class PXXEventPayload : public PXXVCompositePayload, public PXXIEventPayload 00019 { 00020 public: 00021 00022 SET_LOGGER("PXXEventPayload"); 00023 00027 PXXEventPayload(const PXXPayloadEnvelope &envelope); 00028 //------------------------------------------------------------------------------ 00029 00033 virtual ~PXXEventPayload(); 00034 //------------------------------------------------------------------------------ 00035 00039 virtual Int32b_t GetTriggerType() const; 00040 //------------------------------------------------------------------------------ 00041 00045 virtual Int32b_t GetTriggerConfigID() const; 00046 //------------------------------------------------------------------------------ 00047 00052 virtual const PXXISourceID& GetSourceID(); 00053 //------------------------------------------------------------------------------ 00054 00059 virtual const PXXIUTCTime &GetFirstTimeUTC(); 00060 //------------------------------------------------------------------------------ 00061 00066 virtual const PXXIUTCTime &GetLastTimeUTC(); 00067 //------------------------------------------------------------------------------ 00068 00075 virtual Int32b_t GetEventType() const; 00076 //------------------------------------------------------------------------------ 00077 00085 virtual Int32b_t GetEventConfigID() const; 00086 //------------------------------------------------------------------------------ 00087 00095 virtual Int32b_t GetRunNumber() const; 00096 //------------------------------------------------------------------------------ 00097 00103 virtual Int32b_t GetEventUID() const; 00104 //------------------------------------------------------------------------------ 00105 00112 virtual const PXXITriggerRequestPayload &GetTriggerRequestPayload() const; 00113 //------------------------------------------------------------------------------ 00114 00122 virtual const vector<PXXIReadoutDataPayloadPtr> GetReadoutDataPayloadPtrs() const; 00123 //------------------------------------------------------------------------------ 00124 00128 virtual void WriteProperties(); 00129 //------------------------------------------------------------------------------ 00130 00131 private: 00132 00141 virtual Int32b_t ReadData(); 00142 //------------------------------------------------------------------------------ 00143 00144 private: 00145 00149 PXXEventPayload(){} 00150 //------------------------------------------------------------------------------ 00151 00152 private: 00153 00154 PXXEventPayloadRecord fTEventPayloadRecord_; // Event record 00155 00156 ClassDef(PXXEventPayload, 0) // interface of payloads 00157 00158 }; 00159 00160 #ifdef __USEROOT__ // compile with ROOT 00161 typedef PXXEventPayload* PXXEventPayloadPtr; 00162 #else // compile with IceTray 00163 typedef shared_ptr<PXXEventPayload> PXXEventPayloadPtr; 00164 #endif 00165 00166 #endif // PXXIPAYLOAD_H