00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TESDemoData_TESDemoNeutron_H
00016 #define TESDemoData_TESDemoNeutron_H 1
00017
00018
00019 #include "Context/TimeStamp.h"
00020 #include "Event/TemporalDataObject.h"
00021 #include "Event/TESDemoReadout.h"
00022 #include "GaudiKernel/boost_allocator.h"
00023 #include "GaudiKernel/SmartRef.h"
00024 #include <ostream>
00025
00026
00027
00028 namespace DayaBay
00029 {
00030
00031
00032
00042 class TESDemoNeutron: public TemporalDataObject
00043 {
00044 public:
00045
00047 TESDemoNeutron(const TimeStamp& timeStamp,
00048 const DayaBay::TESDemoReadout* readout);
00049
00051 TESDemoNeutron() : m_timeStamp() {}
00052
00054 virtual ~TESDemoNeutron();
00055
00057 virtual std::ostream& fillStream(std::ostream& s) const;
00058
00060 void setReadout(const SmartRef<DayaBay::TESDemoReadout>& value);
00061
00063 void setReadout(const DayaBay::TESDemoReadout* value);
00064
00067 const TimeStamp& timeStamp() const;
00068
00071 void setTimeStamp(const TimeStamp& value);
00072
00075 const DayaBay::TESDemoReadout* readout() const;
00076
00077
00078 #ifndef GOD_NOALLOC
00080 static void* operator new ( size_t size )
00081 {
00082 return ( sizeof(TESDemoNeutron) == size ?
00083 boost::singleton_pool<TESDemoNeutron, sizeof(TESDemoNeutron)>::malloc() :
00084 ::operator new(size) );
00085 }
00086
00090 static void* operator new ( size_t size, void* pObj )
00091 {
00092 return ::operator new (size,pObj);
00093 }
00094
00096 static void operator delete ( void* p )
00097 {
00098 boost::singleton_pool<TESDemoNeutron, sizeof(TESDemoNeutron)>::is_from(p) ?
00099 boost::singleton_pool<TESDemoNeutron, sizeof(TESDemoNeutron)>::free(p) :
00100 ::operator delete(p);
00101 }
00102
00105 static void operator delete ( void* p, void* pObj )
00106 {
00107 ::operator delete (p, pObj);
00108 }
00109 #endif
00110 protected:
00111
00112 private:
00113
00114 TimeStamp m_timeStamp;
00115 SmartRef<DayaBay::TESDemoReadout> m_readout;
00116
00117 };
00118
00119 inline std::ostream& operator<< (std::ostream& str, const TESDemoNeutron& obj)
00120 {
00121 return obj.fillStream(str);
00122 }
00123
00124 }
00125
00126
00127
00128
00129
00130
00131
00132 inline DayaBay::TESDemoNeutron::TESDemoNeutron(const TimeStamp& timeStamp,
00133 const DayaBay::TESDemoReadout* readout)
00134 {
00135
00136 setTimeStamp(timeStamp);
00137 setReadout(readout);
00138 setEarliest(timeStamp);
00139 setLatest(timeStamp);
00140
00141 }
00142
00143 inline DayaBay::TESDemoNeutron::~TESDemoNeutron()
00144 {
00145
00146
00147 setReadout(0);
00148
00149 }
00150
00151 inline std::ostream& DayaBay::TESDemoNeutron::fillStream(std::ostream& s) const
00152 {
00153 TemporalDataObject::fillStream(s);
00154 s << "{ " << "timeStamp : " << m_timeStamp << std::endl << " }";
00155 return s;
00156 }
00157
00158
00159 inline const TimeStamp& DayaBay::TESDemoNeutron::timeStamp() const
00160 {
00161 return m_timeStamp;
00162 }
00163
00164 inline void DayaBay::TESDemoNeutron::setTimeStamp(const TimeStamp& value)
00165 {
00166 m_timeStamp = value;
00167 }
00168
00169 inline const DayaBay::TESDemoReadout* DayaBay::TESDemoNeutron::readout() const
00170 {
00171 return m_readout;
00172 }
00173
00174
00175 #endif