StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
TauolaHEPEVTEvent.h
1 #ifndef _TauolaHEPEVTEvent_h_included_
2 #define _TauolaHEPEVTEvent_h_included_
3 
18 #include <iostream>
19 #include "TauolaEvent.h"
20 #include "TauolaParticle.h"
21 #include "TauolaHEPEVTParticle.h"
22 
23 namespace Tauolapp
24 {
25 
26 // Uncomment this line to use interface to common block HEPEVT
27 // But first be sure about suitable for you value of NMXHEP
28 // and whether phep, vhep should be declared float or double
29 //#define USE_HEPEVT_INTERFACE
30 
31 #ifdef USE_HEPEVT_INTERFACE
32 
33 // Change this value to match HEPEVT size
34 const int NMXHEP = 10000;
35 
36 extern "C" struct {
37  int nevhep; // serial number
38  int nhep; // number of particles
39  int isthep[NMXHEP]; // status code
40  int idhep [NMXHEP]; // particle PDG ID
41  int jmohep[NMXHEP][2]; // parent particles
42  int jdahep[NMXHEP][2]; // childreen particles
43  double phep [NMXHEP][5]; // four-momentum, mass [GeV]
44  double vhep [NMXHEP][4]; // vertex [mm]
45 } hepevt_;
46 
47 #endif
48 
50 
52 
53  public:
54 
57 
60 
63 
66 
68  int getParticleCount();
69 
73  std::vector<TauolaParticle*> findParticles(int pdgID);
74 
78  std::vector<TauolaParticle*> findStableParticles(int pdgID);
79 
81  void print();
82 
84  void clear();
85 
86 #ifdef USE_HEPEVT_INTERFACE
87 
88  static void read_event_from_HEPEVT(TauolaHEPEVTEvent *evt);
89 
91  static void write_event_to_HEPEVT(TauolaHEPEVTEvent *evt);
92 #endif
93 
94  private:
95 
97  std::vector<TauolaHEPEVTParticle*> particle_list;
98 };
99 
100 } // namespace Tauolapp
101 #endif
102 
std::vector< TauolaParticle * > findParticles(int pdgID)
void addParticle(TauolaHEPEVTParticle *p)
TauolaHEPEVTParticle * getParticle(int i)
Single particle of HEPEVT event record.
std::vector< TauolaParticle * > findStableParticles(int pdgID)