| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DayaBay::SimHitHeader Class Reference

Header for detector simulation hits. More...

#include <SimHitHeader.h>

Collaboration diagram for DayaBay::SimHitHeader:

[legend]
List of all members.

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_maphitCollection ()
 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.
SimHitCollectionhitsByDetector (short int detector)
 Returns the hits for the given detector ID.
std::ostream & fillStream (std::ostream &s) const
 Print the header.
const DayaBay::SimHeaderheader () 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_maphitCollection () 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::SimHeaderm_header
 Pointer to the SimHeader holding this SimHitHeader.
hc_map m_hitCollection
 Map from Detector to detected SimHitCollection.

Detailed Description

Header for detector simulation hits.

Author:
bv@bnl.gov created Mon Apr 11 03:59:55 2011

Definition at line 42 of file SimHitHeader.h.


Member Typedef Documentation

typedef std::map<short int,DayaBay::SimHitCollection*> DayaBay::SimHitHeader::hc_map

The hit collection map.

Definition at line 47 of file SimHitHeader.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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.

00101     {
00102       return ::operator new (size,pObj);
00103     }

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     }


Member Data Documentation

DayaBay::SimHeader* DayaBay::SimHitHeader::m_header [private]

Pointer to the SimHeader holding this SimHitHeader.

Definition at line 124 of file SimHitHeader.h.

hc_map DayaBay::SimHitHeader::m_hitCollection [private]

Map from Detector to detected SimHitCollection.

Definition at line 125 of file SimHitHeader.h.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:31:30 2011 for SimEvent by doxygen 1.4.7