TauolaHEPEVTEvent.h
00001 #ifndef _TauolaHEPEVTEvent_h_included_
00002 #define _TauolaHEPEVTEvent_h_included_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <iostream>
00019 #include "TauolaEvent.h"
00020 #include "TauolaParticle.h"
00021 #include "TauolaHEPEVTParticle.h"
00022
00023 namespace Tauolapp
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 TauolaHEPEVTParticle;
00050
00051 class TauolaHEPEVTEvent : public TauolaEvent {
00052
00053 public:
00054
00055
00056 ~TauolaHEPEVTEvent();
00057
00058
00059 TauolaHEPEVTEvent();
00060
00061
00062 void addParticle(TauolaHEPEVTParticle *p);
00063
00064
00065 TauolaHEPEVTParticle *getParticle(int i);
00066
00067
00068 int getParticleCount();
00069
00070
00071
00072
00073 std::vector<TauolaParticle*> findParticles(int pdgID);
00074
00075
00076
00077
00078 std::vector<TauolaParticle*> findStableParticles(int pdgID);
00079
00080
00081 void print();
00082
00083
00084 void clear();
00085
00086 #ifdef USE_HEPEVT_INTERFACE
00087
00088 static void read_event_from_HEPEVT(TauolaHEPEVTEvent *evt);
00089
00090
00091 static void write_event_to_HEPEVT(TauolaHEPEVTEvent *evt);
00092 #endif
00093
00094 private:
00095
00096
00097 std::vector<TauolaHEPEVTParticle*> particle_list;
00098 };
00099
00100 }
00101 #endif
00102