]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGen/EvtGen.hh
Updates EvtGen Code
[u/mrichter/AliRoot.git] / TEvtGen / EvtGen / EvtGen.hh
1 //--------------------------------------------------------------------------
2 //
3 // Environment:
4 //      This software is part of the EvtGen package developed jointly
5 //      for the BaBar and CLEO collaborations.  If you use all or part
6 //      of it, please give an appropriate acknowledgement.
7 //
8 // Copyright Information: See EvtGen/COPYRIGHT
9 //      Copyright (C) 1998      Caltech, UCSB
10 //
11 // Module: EvtGen/EvtGen.hh
12 //
13 // Description:Main class to provide user interface to EvtGen.
14 //
15 // Modification history:
16 //
17 //    RYD     March 24, 1998     Module created
18 //
19 //    DJL     August 10, 1998    Additional Event member function added
20 //
21 //    RYD     December 25, 1999  Any application using EvtGen will need
22 //                               to instantiate an instance of this class
23 //                               and hold on to it untill done generating
24 //                               events. This class will now hold data used
25 //                               for the lifetime of the generator.
26 //    JBack   June 2011          Added HepMC event interface.
27 //
28 //------------------------------------------------------------------------
29
30 #ifndef EVTGEN_HH
31 #define EVTGEN_HH
32
33 #include "EvtGenBase/EvtPDL.hh"
34
35 #include <list>
36
37 class EvtParticle;
38 class EvtRandomEngine;
39 class EvtVector4R;
40 class EvtStdHep;
41 class EvtSpinDensity;
42 class EvtAbsRadCorr;
43 class EvtDecayBase;
44 class EvtHepMCEvent;
45
46 class EvtGen{
47
48 public:
49
50   EvtGen(const char* const decayName,const char* const pdtTableName,
51          EvtRandomEngine* randomEngine=0, EvtAbsRadCorr *isrEngine=0,
52          const std::list<EvtDecayBase*>* extraModels=0,
53          int mixingType = 1, bool useXml = false);
54
55   ~EvtGen();
56
57   void readUDecay(const char* const udecay_name, bool useXml = false);
58
59   EvtHepMCEvent* generateDecay(int PDGid, EvtVector4R refFrameP4,
60                                EvtVector4R translation,
61                                EvtSpinDensity* spinDensity = 0);
62
63   void generateDecay(EvtParticle *p);
64
65 private:
66
67   EvtPDL _pdl;
68   int _mixingType;
69
70 };
71
72
73
74 #endif
75