+++ /dev/null
-#include "pythiadecayer.h"
-#include "reportingUtils.h"
-#include "starlightconfig.h"
-using namespace Pythia8;
-
-
-
-pythiaDecayer::pythiaDecayer() :
- _pythia(PYTHIA8_SETTINGS_DIR)
-{}
-/*
-pythiaDecayer::pythiaDecayer(const pythiaDecayer &obj) :
- _pythia(obj._pythia)
-{}
-*/
-pythiaDecayer::~pythiaDecayer()
-{}
-/*
-pythiaDecayer& pythiaDecayer::operator=(const pythiaDecayer &other)
-{
- if (this != &other)
- {
- _pythia = other._pythia;
- }
- return *this;
-}
-*/
-void pythiaDecayer::init()
-{
- _pythia.readString("ProcessLevel:all = off");
- _pythia.readString("Standalone:allowResDec = on");
- _pythia.readString("Next:numberShowEvent = 0");
- _pythia.init();
- _pythia.event.reset();
-}
-
-void pythiaDecayer::addParticle(const starlightParticle &p)
-{
-
- Event &pyEvent = _pythia.event;
- int status = 23; // Outgoing particle from the hardest sub-process
- int col = 0;
- int acol = 0;
- int code = p.getPdgCode();
-
- pyEvent.append(code, status, col, acol, p.GetPx(), p.GetPy(), p.GetPz(), p.GetE(), p.M());
-
-}
-
-upcEvent pythiaDecayer::execute()
-{
- upcEvent slEvent;
-
- Event &pyEvent = _pythia.event;
- _pythia.forceTimeShower(1, 2, 100000.0);
-// pyEvent.list();
- if(!_pythia.next())
- {
- printWarn << "Pythia::next() failed" << std::endl;
- return upcEvent();
- }
-
- for(int i = 0; i < pyEvent.size(); ++i)
- {
-
- Particle p = pyEvent[i];
- starlightParticle slPart(p.px(), p.py(), p.pz(), p.e(), p.mass(), p.idAbs()*(p.charge()<0?-1:1), p.charge(),
- p.xProd(), p.yProd(), p.zProd(), p.tProd(),
- p.mother1(), p.mother2(), p.daughter1(), p.daughter2(), p.status());
- slEvent.addParticle(slPart);
- }
- pyEvent.clear();
- pyEvent.reset();
- return slEvent;
-
-}
\ No newline at end of file