00001 00002 // ************************************************************************** 00003 // * * 00004 // * ! ! ! A T T E N T I O N ! ! ! * 00005 // * * 00006 // * This file was created automatically by GaudiObjDesc, please do not * 00007 // * delete it or edit it by hand. * 00008 // * * 00009 // * If you want to change this file, first change the corresponding * 00010 // * xml-file and rerun the tools from GaudiObjDesc (or run make if you * 00011 // * are using it from inside a Gaudi-package). * 00012 // * * 00013 // ************************************************************************** 00014 00015 #ifndef SimReadoutEvent_SimReadoutHeader_H 00016 #define SimReadoutEvent_SimReadoutHeader_H 1 00017 00018 // Include files 00019 #include "Event/HeaderObject.h" 00020 #include "GaudiKernel/boost_allocator.h" 00021 #include <vector> 00022 #include <ostream> 00023 00024 // Forward declarations 00025 00026 namespace DayaBay 00027 { 00028 00029 // Forward declarations 00030 class SimReadout; 00031 00032 00033 // Class ID definition 00034 static const CLID CLID_SimReadoutHeader = 51600; 00035 00036 // Namespace for locations in TDS 00037 namespace SimReadoutHeaderLocation { 00038 static const std::string& Default = "/Event/SimReadout/SimReadoutHeader"; 00039 } 00040 00041 00051 class SimReadoutHeader: public HeaderObject 00052 { 00053 public: 00054 00056 static const std::string& defaultLocation() { return SimReadoutHeaderLocation::Default; } 00057 virtual const std::string& defLoc() const { return SimReadoutHeaderLocation::Default; } 00058 00060 typedef std::vector<DayaBay::SimReadout*> SimReadoutContainer; 00061 00063 SimReadoutHeader() : m_readouts() {} 00064 00066 ~SimReadoutHeader(); 00067 00068 // Retrieve pointer to class definition structure 00069 virtual const CLID& clID() const; 00070 static const CLID& classID(); 00071 00073 std::ostream& fillStream(std::ostream& s) const; 00074 00077 const SimReadoutContainer& readouts() const; 00078 00081 SimReadoutContainer& readouts(); 00082 00085 void setReadouts(const SimReadoutContainer& value); 00086 00087 00088 #ifndef GOD_NOALLOC 00090 static void* operator new ( size_t size ) 00091 { 00092 return ( sizeof(SimReadoutHeader) == size ? 00093 boost::singleton_pool<SimReadoutHeader, sizeof(SimReadoutHeader)>::malloc() : 00094 ::operator new(size) ); 00095 } 00096 00100 static void* operator new ( size_t size, void* pObj ) 00101 { 00102 return ::operator new (size,pObj); 00103 } 00104 00106 static void operator delete ( void* p ) 00107 { 00108 boost::singleton_pool<SimReadoutHeader, sizeof(SimReadoutHeader)>::is_from(p) ? 00109 boost::singleton_pool<SimReadoutHeader, sizeof(SimReadoutHeader)>::free(p) : 00110 ::operator delete(p); 00111 } 00112 00115 static void operator delete ( void* p, void* pObj ) 00116 { 00117 ::operator delete (p, pObj); 00118 } 00119 #endif 00120 protected: 00121 00122 private: 00123 00124 SimReadoutContainer m_readouts; 00125 00126 }; // class SimReadoutHeader 00127 00128 inline std::ostream& operator<< (std::ostream& str, const SimReadoutHeader& obj) 00129 { 00130 return obj.fillStream(str); 00131 } 00132 00133 } // namespace DayaBay; 00134 00135 // ----------------------------------------------------------------------------- 00136 // end of class 00137 // ----------------------------------------------------------------------------- 00138 00139 // Including forward declarations 00140 #include "Event/SimReadout.h" 00141 00142 00143 inline DayaBay::SimReadoutHeader::~SimReadoutHeader() 00144 { 00145 00146 SimReadoutContainer::iterator it, done = m_readouts.end(); 00147 for (it = m_readouts.begin(); it != done; ++it) { 00148 delete *it; 00149 } 00150 m_readouts.clear(); 00151 00152 } 00153 00154 inline const CLID& DayaBay::SimReadoutHeader::clID() const 00155 { 00156 return DayaBay::SimReadoutHeader::classID(); 00157 } 00158 00159 inline const CLID& DayaBay::SimReadoutHeader::classID() 00160 { 00161 return CLID_SimReadoutHeader; 00162 } 00163 00164 inline const DayaBay::SimReadoutHeader::SimReadoutContainer& DayaBay::SimReadoutHeader::readouts() const 00165 { 00166 return m_readouts; 00167 } 00168 00169 inline DayaBay::SimReadoutHeader::SimReadoutContainer& DayaBay::SimReadoutHeader::readouts() 00170 { 00171 return m_readouts; 00172 } 00173 00174 inline void DayaBay::SimReadoutHeader::setReadouts(const SimReadoutContainer& value) 00175 { 00176 m_readouts = value; 00177 } 00178 00179 00180 #endif