2 #include "HepMC/PythiaWrapper6_4.h"
17 #define PYTHIA6PYDECY pythia6pydecy_
36 decayer.reset(
new Pythia8::Pythia);
39 decayer->settings.flag(
"ProcessLevel:all",
false);
40 decayer->settings.flag(
"PartonLevel:FSRinResonances",
false);
41 decayer->settings.flag(
"ProcessLevel:resonanceDecays",
false);
47 while(pdt.nextId(pid) >
pid){
48 pid = pdt.nextId(pid);
49 pdt.mayDecay(pid,
false);
53 std::cout <<
"WARNING: you are requesting an option which is not available in PythiaDecays::PythiaDecays " << std::endl;
75 Pythia8::Particle py8part( pid , 93, 0, 0, 0, 0, 0, 0,
81 py8part.vProd( particle.
X(), particle.
Y(),
82 particle.
Z(), particle.
T() );
83 decayer->event.append( py8part );
85 int nentries_before =
decayer->event.size();
86 decayer->particleData.mayDecay(pid,
true);
88 decayer->particleData.mayDecay(pid,
false);
89 int nentries_after =
decayer->event.size();
90 if ( nentries_after <= nentries_before )
return theList;
95 for (
int ipart=nentries_before; ipart<nentries_after; ipart++ )
97 Pythia8::Particle& py8daughter =
decayer->event[ipart];
98 theList[ipart-nentries_before].SetXYZT( py8daughter.px(), py8daughter.py(), py8daughter.pz(), py8daughter.e() );
99 theList[ipart-nentries_before].setVertex( py8daughter.xProd(),
102 py8daughter.tProd() );
103 theList[ipart-nentries_before].setID( py8daughter.id() );
104 theList[ipart-nentries_before].setMass( py8daughter.m() );
122 pyjets->
p(1,1) = particle.Px();
123 pyjets->
p(1,2) = particle.Py();
124 pyjets->
p(1,3) = particle.Pz();
const DaughterParticleList & particleDaughtersPy6(ParticlePropagator &particle, CLHEP::HepRandomEngine *)
gen::Pythia6Service * pyservice
int pid() const
get the HEP particle ID number
double mass() const
get the MEASURED mass
DaughterParticleList theList
const DaughterParticleList & particleDaughtersPy8(ParticlePropagator &particle, CLHEP::HepRandomEngine *)
const XYZTLorentzVector & momentum() const
the momentum fourvector
const T & max(const T &a, const T &b)
double Y() const
y of vertex
double Z() const
z of vertex
std::auto_ptr< Pythia8::Pythia > decayer
HepPDT::ParticleData ParticleData
std::unique_ptr< gen::P8RndmEngine > p8RndmEngine
double X() const
x of vertex
double T() const
vertex time
PythiaDecays(std::string program)
std::vector< RawParticle > DaughterParticleList