PhotosEvent.h

00001 #ifndef _PhotosEvent_h_included_
00002 #define _PhotosEvent_h_included_
00003 
00004 /**
00005  * @class PhotosEvent
00006  *
00007  * @brief Abstract base class for containing the event information.
00008  *
00009  * PhotosEvent contains virtual methods, which need to be implemented
00010  * by the appropriate interface class to the event record. An object of
00011  * PhotosEvent type should be created by the user and processed
00012  * via the process() method.
00013  *
00014  * @author Nadia Davidson
00015  * @date 16 June 2008
00016  */
00017 
00018 #include <vector>
00019 #include "PhotosBranch.h"
00020 #include "PhotosParticle.h"
00021 using std::vector;
00022 
00023 namespace Photospp
00024 {
00025 
00026 class PhotosEvent
00027 {
00028 public:
00029         virtual ~PhotosEvent();
00030 
00031         /** Get an unfiltered list of particles from the event record */
00032         virtual vector<PhotosParticle*> getParticleList() = 0;
00033 
00034         /** Print informations about the event */
00035         virtual void print() = 0;
00036 
00037         /** Process event */
00038         void process();
00039 private:
00040         /** Filter suppressed and invalid particles. */
00041         vector<PhotosParticle *> filterParticles(vector<PhotosParticle *> particles);
00042 
00043         /** branch points which should be given to PHOTOS */
00044         vector<PhotosBranch *> m_branch_points;
00045 };
00046 
00047 } // namespace Photospp
00048 #endif
Generated on Sun Oct 20 20:23:56 2013 for C++InterfacetoPHOTOS by  doxygen 1.6.3