21 #ifndef EVTPYTHIAENGINE_HH
22 #define EVTPYTHIAENGINE_HH
24 #include "EvtGenModels/EvtAbsExternalGen.hh"
25 #include "EvtGenExternal/EvtPythiaRandom.hh"
27 #include "EvtGenBase/EvtId.hh"
28 #include "EvtGenBase/EvtDecayBase.hh"
29 #include "EvtGenBase/EvtParticle.hh"
30 #include "EvtGenBase/EvtVector4R.hh"
32 #include "Pythia8/Pythia.h"
33 #include "Pythia8/ParticleData.h"
43 EvtPythiaEngine(std::string xmlDir =
"./xmldoc",
44 bool convertPhysCodes =
false,
45 bool useEvtGenRandom =
true);
46 virtual ~EvtPythiaEngine();
50 virtual void initialise();
56 void updateParticleLists();
57 void updatePhysicsParameters();
59 void createPythiaParticle(
EvtId& particleId,
int PDGCode);
60 void updatePythiaDecayTable(
EvtId& particleId,
int aliasInt,
int PDGCode);
61 void storeDaughterInfo(
EvtParticle* theParticle,
int startInt);
63 void clearDaughterVectors();
64 void clearPythiaModeMap();
66 void createDaughterEvtParticles(
EvtParticle* theParent);
77 std::vector<int> _daugPDGVector;
78 std::vector<EvtVector4R> _daugP4Vector;
80 typedef std::map<int, std::vector<int> > PythiaModeMap;
81 PythiaModeMap _pythiaModeMap;
83 bool _convertPhysCodes, _initialised, _useEvtGenRandom;
85 EvtPythiaRandom* _evtgenRandom;
87 std::map<int, int> _addedPDGCodes;