#include <SimHitHeader.h>
Collaboration diagram for DayaBay::SimHitHeader:
Public Types | |
typedef std::map< short int, DayaBay::SimHitCollection * > | hc_map |
The hit collection map. | |
Public Member Functions | |
SimHitHeader (DayaBay::SimHeader *header) | |
Create with SimHeader pointer. | |
SimHitHeader () | |
Default Constructor. | |
~SimHitHeader () | |
Destructor. | |
hc_map & | hitCollection () |
Access hit collection map as non-const. | |
void | addHitCollection (DayaBay::SimHitCollection *hc) |
Add a SimHitCollection. | |
std::vector< short int > | hitDetectors () |
Returns the list of detector IDs with hits in the collection. | |
SimHitCollection * | hitsByDetector (short int detector) |
Returns the hits for the given detector ID. | |
std::ostream & | fillStream (std::ostream &s) const |
Print the header. | |
const DayaBay::SimHeader * | header () const |
Retrieve const Pointer to the SimHeader holding this SimHitHeader. | |
void | setHeader (DayaBay::SimHeader *value) |
Update Pointer to the SimHeader holding this SimHitHeader. | |
const hc_map & | hitCollection () const |
Retrieve const Map from Detector to detected SimHitCollection. | |
Static Public Member Functions | |
static void * | operator new (size_t size) |
operator new | |
static void * | operator new (size_t size, void *pObj) |
placement operator new it is needed by libstdc++ 3.2.3 (e.g. | |
static void | operator delete (void *p) |
operator delete | |
static void | operator delete (void *p, void *pObj) |
placement operator delete not sure if really needed, but it does not harm | |
Private Attributes | |
DayaBay::SimHeader * | m_header |
Pointer to the SimHeader holding this SimHitHeader. | |
hc_map | m_hitCollection |
Map from Detector to detected SimHitCollection. |
Definition at line 42 of file SimHitHeader.h.
typedef std::map<short int,DayaBay::SimHitCollection*> DayaBay::SimHitHeader::hc_map |
DayaBay::SimHitHeader::SimHitHeader | ( | DayaBay::SimHeader * | header | ) | [inline] |
Create with SimHeader pointer.
Definition at line 50 of file SimHitHeader.h.
00050 : m_header(header), 00051 m_hitCollection() {}
DayaBay::SimHitHeader::SimHitHeader | ( | ) | [inline] |
Default Constructor.
Definition at line 54 of file SimHitHeader.h.
00054 : m_header(0), 00055 m_hitCollection() {}
DayaBay::SimHitHeader::~SimHitHeader | ( | ) |
Destructor.
Definition at line 9 of file SimHitHeader.cc.
00010 { 00011 m_header = 0; 00012 hc_map::iterator it, done = m_hitCollection.end(); 00013 // wangzhe 00014 // The original line have memory leak problem 00015 // for (it = m_hitCollection.end(); it != done; ++it) { 00016 for (it = m_hitCollection.begin(); it != done; ++it) { 00017 // wz 00018 delete (it->second); 00019 } 00020 m_hitCollection.clear(); 00021 }
DayaBay::SimHitHeader::hc_map & DayaBay::SimHitHeader::hitCollection | ( | ) |
Access hit collection map as non-const.
Definition at line 46 of file SimHitHeader.cc.
00047 { 00048 return m_hitCollection; 00049 }
void DayaBay::SimHitHeader::addHitCollection | ( | DayaBay::SimHitCollection * | hc | ) |
Add a SimHitCollection.
Definition at line 41 of file SimHitHeader.cc.
00042 { 00043 m_hitCollection[hc->detector().siteDetPackedData()] = hc; 00044 }
std::vector< short int > DayaBay::SimHitHeader::hitDetectors | ( | ) | [inline] |
Returns the list of detector IDs with hits in the collection.
Definition at line 160 of file SimHitHeader.h.
00161 { 00162 00163 hc_map::iterator hcIter, hcEnd = m_hitCollection.end(); 00164 std::vector<short int> detectors; 00165 for(hcIter=m_hitCollection.begin(); hcIter != hcEnd; hcIter++) 00166 detectors.push_back(hcIter->first); 00167 return detectors; 00168 00169 }
DayaBay::SimHitCollection * DayaBay::SimHitHeader::hitsByDetector | ( | short int | detector | ) | [inline] |
Returns the hits for the given detector ID.
Definition at line 171 of file SimHitHeader.h.
00172 { 00173 00174 hc_map::iterator hcIter = m_hitCollection.find(detector); 00175 if(hcIter == m_hitCollection.end()) 00176 return 0; 00177 return hcIter->second; 00178 00179 }
std::ostream & DayaBay::SimHitHeader::fillStream | ( | std::ostream & | s | ) | const |
Print the header.
Definition at line 24 of file SimHitHeader.cc.
00025 { 00026 s << "{ " << "hit collections : " << std::endl; 00027 00028 hc_map::const_iterator it, done = m_hitCollection.end(); 00029 for (it = m_hitCollection.begin(); it != done; ++it) { 00030 DayaBay::Detector d(it->first); 00031 00032 s << Site::AsString(d.site()) << "::" << d.detName() 00033 << " collection: " 00034 << std::endl; 00035 it->second->fillStream(s); 00036 } 00037 s << "}"; 00038 return s; 00039 }
const DayaBay::SimHeader * DayaBay::SimHitHeader::header | ( | ) | const [inline] |
Retrieve const Pointer to the SimHeader holding this SimHitHeader.
Definition at line 145 of file SimHitHeader.h.
00146 { 00147 return m_header; 00148 }
void DayaBay::SimHitHeader::setHeader | ( | DayaBay::SimHeader * | value | ) | [inline] |
Update Pointer to the SimHeader holding this SimHitHeader.
Definition at line 150 of file SimHitHeader.h.
00151 { 00152 m_header = value; 00153 }
const DayaBay::SimHitHeader::hc_map & DayaBay::SimHitHeader::hitCollection | ( | ) | const [inline] |
Retrieve const Map from Detector to detected SimHitCollection.
Definition at line 155 of file SimHitHeader.h.
00156 { 00157 return m_hitCollection; 00158 }
static void* DayaBay::SimHitHeader::operator new | ( | size_t | size | ) | [inline, static] |
operator new
Definition at line 90 of file SimHitHeader.h.
00091 { 00092 return ( sizeof(SimHitHeader) == size ? 00093 boost::singleton_pool<SimHitHeader, sizeof(SimHitHeader)>::malloc() : 00094 ::operator new(size) ); 00095 }
static void* DayaBay::SimHitHeader::operator new | ( | size_t | size, | |
void * | pObj | |||
) | [inline, static] |
placement operator new it is needed by libstdc++ 3.2.3 (e.g.
in std::vector) it is not needed in libstdc++ >= 3.4
Definition at line 100 of file SimHitHeader.h.
static void DayaBay::SimHitHeader::operator delete | ( | void * | p | ) | [inline, static] |
operator delete
Definition at line 106 of file SimHitHeader.h.
00107 { 00108 boost::singleton_pool<SimHitHeader, sizeof(SimHitHeader)>::is_from(p) ? 00109 boost::singleton_pool<SimHitHeader, sizeof(SimHitHeader)>::free(p) : 00110 ::operator delete(p); 00111 }
static void DayaBay::SimHitHeader::operator delete | ( | void * | p, | |
void * | pObj | |||
) | [inline, static] |
placement operator delete not sure if really needed, but it does not harm
Definition at line 115 of file SimHitHeader.h.
00116 { 00117 ::operator delete (p, pObj); 00118 }
hc_map DayaBay::SimHitHeader::m_hitCollection [private] |