Line data Source code
1 : #ifndef _PhotosEvent_h_included_
2 : #define _PhotosEvent_h_included_
3 :
4 : /**
5 : * @class PhotosEvent
6 : *
7 : * @brief Abstract base class for containing the event information.
8 : *
9 : * PhotosEvent contains virtual methods, which need to be implemented
10 : * by the appropriate interface class to the event record. An object of
11 : * PhotosEvent type should be created by the user and processed
12 : * via the process() method.
13 : *
14 : * @author Nadia Davidson
15 : * @date 16 June 2008
16 : */
17 :
18 : #include <vector>
19 : #include "PhotosBranch.h"
20 : #include "PhotosParticle.h"
21 : using std::vector;
22 :
23 : namespace Photospp
24 : {
25 :
26 0 : class PhotosEvent
27 : {
28 : public:
29 : virtual ~PhotosEvent();
30 :
31 : /** Get an unfiltered list of particles from the event record */
32 : virtual vector<PhotosParticle*> getParticleList() = 0;
33 :
34 : /** Print informations about the event */
35 : virtual void print() = 0;
36 :
37 : /** Process event */
38 : void process();
39 : private:
40 : /** Filter suppressed and invalid particles. */
41 : vector<PhotosParticle *> filterParticles(vector<PhotosParticle *> particles);
42 :
43 : /** branch points which should be given to PHOTOS */
44 : vector<PhotosBranch *> m_branch_points;
45 : };
46 :
47 : } // namespace Photospp
48 : #endif
|