PhotosHEPEVTEvent.h
00001 #ifndef _PhotosHEPEVTEvent_h_included_
00002 #define _PhotosHEPEVTEvent_h_included_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <iostream>
00019 #include "PhotosEvent.h"
00020 #include "PhotosParticle.h"
00021 #include "PhotosHEPEVTParticle.h"
00022
00023 namespace Photospp
00024 {
00025
00026
00027
00028
00029
00030
00031 #ifdef USE_HEPEVT_INTERFACE
00032
00033
00034 const int NMXHEP = 10000;
00035
00036 extern "C" struct {
00037 int nevhep;
00038 int nhep;
00039 int isthep[NMXHEP];
00040 int idhep [NMXHEP];
00041 int jmohep[NMXHEP][2];
00042 int jdahep[NMXHEP][2];
00043 double phep [NMXHEP][5];
00044 double vhep [NMXHEP][4];
00045 } hepevt_;
00046
00047 #endif
00048
00049 class PhotosHEPEVTParticle;
00050
00051 class PhotosHEPEVTEvent : public PhotosEvent {
00052
00053 public:
00054
00055
00056 ~PhotosHEPEVTEvent();
00057
00058
00059 PhotosHEPEVTEvent();
00060
00061
00062 void addParticle(PhotosHEPEVTParticle *p);
00063
00064
00065 PhotosHEPEVTParticle *getParticle(int i);
00066
00067
00068 void setParticle(int i, PhotosHEPEVTParticle *p);
00069
00070
00071 int getParticleCount();
00072
00073
00074 std::vector<PhotosParticle*> getParticleList();
00075
00076
00077 void print();
00078
00079
00080 void clear();
00081
00082 #ifdef USE_HEPEVT_INTERFACE
00083
00084 static void read_event_from_HEPEVT(PhotosHEPEVTEvent *evt);
00085
00086
00087 static void write_event_to_HEPEVT(PhotosHEPEVTEvent *evt);
00088 #endif
00089
00090 private:
00091
00092
00093 std::vector<PhotosHEPEVTParticle*> particle_list;
00094 };
00095
00096 }
00097 #endif
00098