2 #include "HepMC/PythiaWrapper6_4.h"
15 #define PYTHIA6PYDECY pythia6pydecy_
31 pythia.reset(
new Pythia8::Pythia);
32 decayer.reset(
new Pythia8::Pythia);
35 pythia->setRndmEnginePtr(RP8);
38 std::cout <<
"WARNING: you are requesting an option which is not available in PythiaDecays::PythiaDecays " << std::endl;
72 Pythia8::Particle py8part( particle.
pid(), 93, 0, 0, 0, 0, 0, 0,
78 py8part.vProd( particle.
X(), particle.
Y(),
79 particle.
Z(), particle.
T() );
80 py8part.tau( (
decayer->particleData).tau0( particle.
pid() ) );
81 decayer->event.append( py8part );
83 int nentries =
decayer->event.size();
86 int nentries1 =
decayer->event.size();
87 if ( nentries1 <= nentries )
return theList;
88 Pythia8::Particle& py8daughter =
decayer->event[nentries];
92 for (
int ipart=nentries+1; ipart<nentries1; ipart++ )
94 py8daughter =
decayer->event[ipart];
95 theList[ipart-nentries-1].SetXYZT( py8daughter.px(), py8daughter.py(), py8daughter.pz(), py8daughter.e() );
96 theList[ipart-nentries-1].setVertex( py8daughter.xProd(),
99 py8daughter.tProd() );
100 theList[ipart-nentries-1].setID( py8daughter.id() );
101 theList[ipart-nentries-1].setMass( py8daughter.m() );
117 pyjets->
p(1,1) = particle.Px();
118 pyjets->
p(1,2) = particle.Py();
119 pyjets->
p(1,3) = particle.Pz();
gen::Pythia6Service * pyservice
int pid() const
get the HEP particle ID number
double mass() const
get the MEASURED mass
DaughterParticleList theList
const XYZTLorentzVector & momentum() const
the momentum fourvector
const T & max(const T &a, const T &b)
const DaughterParticleList & particleDaughtersPy8(ParticlePropagator &particle)
const DaughterParticleList & particleDaughtersPy6(ParticlePropagator &particle)
double Y() const
y of vertex
double Z() const
z of vertex
std::auto_ptr< Pythia8::Pythia > decayer
double X() const
x of vertex
double T() const
vertex time
std::auto_ptr< Pythia8::Pythia > pythia
PythiaDecays(std::string program)
std::vector< RawParticle > DaughterParticleList