/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef EVENTREADOUTFORMAT_EVENTREADOUT_H 00002 #define EVENTREADOUTFORMAT_EVENTREADOUT_H 00003 00004 /* 00005 * EventReadout.h 00006 * EventReadoutFormat 00007 * 00008 * Created by Simon Patton on 7/19/10. 00009 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 #include <vector> 00013 00014 #include "EventReadoutFormat/EventBuffer.h" 00015 00016 namespace DybDaq { 00017 class CbltTraits; 00018 class EventHeader; 00019 class FadcReadout; 00020 class FeeReadout; 00021 class LtbReadout; 00022 class FecReadout; 00023 class RtmReadout; 00024 class RomData; 00025 class RomFragment; 00026 } 00027 00028 #include "DaqReadoutFormat/DaqContainer.h" 00029 00030 namespace DybDaq { 00031 00032 class EventReadout : public DaqContainer { 00033 00034 public: 00035 00036 typedef std::vector<const RomFragment*> RomFragmentPtrList; 00037 00041 EventReadout(const EventReadout& rhs); 00042 00046 EventReadout(const unsigned int site, 00047 const unsigned int detector, 00048 const unsigned int run, 00049 const unsigned int event, 00050 const unsigned int dataType, 00051 const bool rawCblt, 00052 const bool triggerMismatch, 00053 const bool invalidData, 00054 const bool rpcSortDisabled, 00055 const bool dataSortTimeout, 00056 const EventTraits& traits); 00057 00061 EventReadout(const unsigned int site, 00062 const unsigned int detector, 00063 const unsigned int run, 00064 const unsigned int event, 00065 const unsigned int dataType, 00066 const bool rawCblt, 00067 const bool triggerMismatch, 00068 const bool invalidData, 00069 const bool rpcSortDisabled, 00070 const bool dataSortTimeout, 00071 const CbltTraits& cbltTraits, 00072 const EventTraits& traits); 00073 00077 EventReadout(const ByteBuffer& byteBuffer); 00078 00082 virtual ~EventReadout(); 00083 00087 virtual const DaqTraits& daqTraits() const; 00088 00092 const EventHeader& header() const; 00093 00097 const RomFragmentPtrList& romFragments() const; 00098 00102 bool containsPmtFragments() const; 00103 00107 bool containsRpcFragments() const; 00108 00112 virtual unsigned int bufferSize() const; 00113 00114 void addReadout(const FadcReadout* readout, 00115 const unsigned int slot); 00116 00117 void addReadout(const FeeReadout* readout, 00118 const unsigned int slot); 00119 00120 void addReadout(const LtbReadout* readout, 00121 const unsigned int slot); 00122 00123 void addReadout(const FecReadout* readout, 00124 const unsigned int slot); 00125 00126 void addReadout(const RtmReadout* readout, 00127 const unsigned int slot); 00128 00129 00130 protected: 00131 00135 virtual unsigned int gatherComponents(OutputBufferList& outputBuffers) const; 00136 00140 virtual unsigned int inspectComponents(DaqBuffer::Bytes& inspectors) const; 00141 00145 virtual void expanded(const unsigned int size); 00146 00147 private: 00148 00152 EventReadout(); 00153 00157 EventReadout& operator=(const EventReadout& rhs); 00158 00159 void addReadout(const RomData* readout, 00160 const unsigned int slot, 00161 const unsigned int moduleType); 00162 00166 const RomFragment& add(const RomFragment* fragment); 00167 00171 mutable EventHeader* m_header; 00172 00176 mutable std::vector<const RomFragment*>* m_fragments; 00177 00181 const CbltTraits* m_cbltTraits; 00182 00183 }; 00184 00185 } 00186 00187 #endif // EVENTREADOUTFORMAT_EVENTREADOUT_H