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

In This Package:

SimParticleHistory.cc

Go to the documentation of this file.
00001 #include "Event/SimParticleHistory.h"
00002 #include "Event/SimTrack.h"
00003 #include "Event/SimVertex.h"
00004 
00005 using namespace DayaBay;
00006 
00007 SimParticleHistory::~SimParticleHistory()
00008 {
00009   std::list<SimTrack*>::iterator trackIt;
00010   for(trackIt = m_tracks.begin(); trackIt != m_tracks.end(); ++trackIt) 
00011     delete (*trackIt);
00012   m_tracks.clear();
00013 
00014   std::list<SimVertex*>::iterator vertexIt;
00015   for(vertexIt = m_vertices.begin(); vertexIt != m_vertices.end(); ++vertexIt) 
00016     delete (*vertexIt);
00017   m_vertices.clear();
00018 }
00019 
00020 std::ostream& DayaBay::SimParticleHistory::fillStream(std::ostream& s) const
00021 {
00022     s << "{ " << std::endl;
00023 
00024     s << m_tracks.size() << " tracks:\n";
00025     std::list<SimTrack*>::const_iterator trackIt;
00026     for(trackIt = m_tracks.begin(); trackIt != m_tracks.end(); ++trackIt) {
00027         (*trackIt)->fillStream(s);
00028         s << std::endl;
00029     }
00030 
00031     s << m_vertices.size() << " vertices:\n";
00032     std::list<SimVertex*>::const_iterator vertexIt;
00033     for(vertexIt = m_vertices.begin(); vertexIt != m_vertices.end(); ++vertexIt) {
00034         (*vertexIt)->fillStream(s);
00035         s << std::endl;
00036     }
00037 
00038     s << m_primaryTracks.size() << " primaryTracks:\n"
00039       << "}" << std::endl;
00040     
00041     return s;
00042 }
00043 
00044 
00045 // For most users.
00046 const SimTrackReference SimParticleHistory::track(int trackid) const
00047 {
00048   std::map<int, SimTrackReference>::const_iterator it;
00049   it = m_idToTrack.find(trackid);
00050   if(it == m_idToTrack.end()) {
00051     return SimTrackReference(NULL,-999);
00052   }
00053   return it->second;
00054 } 
00055 
00056 
00057 // For the generators:
00058 void SimParticleHistory::addTrack(SimTrack* t)
00059 {
00060   m_tracks.push_back(t);
00061 }
00062 
00063 void SimParticleHistory::addPrimaryTrack(const SimTrack* t)
00064 {
00065   m_primaryTracks.push_back(t);
00066 }
00067 
00068 void SimParticleHistory::addTrackRef(int id,const DayaBay::SimTrackReference& ref)
00069 {
00070   m_idToTrack[id] = ref;
00071 }
00072 
00073 void SimParticleHistory::addVertex(SimVertex* v)
00074 {
00075   m_vertices.push_back(v);
00076 }
00077 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

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