00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef SimReadoutEvent_SimReadout_H
00016 #define SimReadoutEvent_SimReadout_H 1
00017
00018
00019 #include "Event/Readout.h"
00020 #include "GaudiKernel/boost_allocator.h"
00021 #include <ostream>
00022
00023
00024
00025 namespace DayaBay
00026 {
00027
00028
00029 class SimReadoutHeader;
00030
00031
00041 class SimReadout
00042 {
00043 public:
00044
00046 SimReadout(DayaBay::Readout* readout,
00047 DayaBay::SimReadoutHeader* header) : m_readout(readout),
00048 m_header(header) {}
00049
00051 SimReadout() : m_readout(0),
00052 m_header(0) {}
00053
00055 virtual ~SimReadout();
00056
00058 std::ostream& fillStream(std::ostream& s) const;
00059
00062 const DayaBay::Readout* readout() const;
00063
00066 void setReadout(DayaBay::Readout* value);
00067
00070 const DayaBay::SimReadoutHeader* header() const;
00071
00074 void setHeader(DayaBay::SimReadoutHeader* value);
00075
00076
00077 #ifndef GOD_NOALLOC
00079 static void* operator new ( size_t size )
00080 {
00081 return ( sizeof(SimReadout) == size ?
00082 boost::singleton_pool<SimReadout, sizeof(SimReadout)>::malloc() :
00083 ::operator new(size) );
00084 }
00085
00089 static void* operator new ( size_t size, void* pObj )
00090 {
00091 return ::operator new (size,pObj);
00092 }
00093
00095 static void operator delete ( void* p )
00096 {
00097 boost::singleton_pool<SimReadout, sizeof(SimReadout)>::is_from(p) ?
00098 boost::singleton_pool<SimReadout, sizeof(SimReadout)>::free(p) :
00099 ::operator delete(p);
00100 }
00101
00104 static void operator delete ( void* p, void* pObj )
00105 {
00106 ::operator delete (p, pObj);
00107 }
00108 #endif
00109 protected:
00110
00111 private:
00112
00113 DayaBay::Readout* m_readout;
00114 DayaBay::SimReadoutHeader* m_header;
00115
00116 };
00117
00118 inline std::ostream& operator<< (std::ostream& str, const SimReadout& obj)
00119 {
00120 return obj.fillStream(str);
00121 }
00122
00123 }
00124
00125
00126
00127
00128
00129
00130 #include "SimReadoutHeader.h"
00131
00132
00133 inline DayaBay::SimReadout::~SimReadout()
00134 {
00135
00136 delete m_readout;
00137
00138 }
00139
00140 inline const DayaBay::Readout* DayaBay::SimReadout::readout() const
00141 {
00142 return m_readout;
00143 }
00144
00145 inline void DayaBay::SimReadout::setReadout(DayaBay::Readout* value)
00146 {
00147 m_readout = value;
00148 }
00149
00150 inline const DayaBay::SimReadoutHeader* DayaBay::SimReadout::header() const
00151 {
00152 return m_header;
00153 }
00154
00155 inline void DayaBay::SimReadout::setHeader(DayaBay::SimReadoutHeader* value)
00156 {
00157 m_header = value;
00158 }
00159
00160
00161 #endif