12 #include <EvtGen/EvtGen.hh>
13 #include <EvtGenBase/EvtParticle.hh>
14 #include <EvtGenBase/EvtVector4R.hh>
15 #include <generators/evtgen/EvtGenFwRandEngine.h>
16 #include <mdst/dataobjects/MCParticleGraph.h>
18 #include <framework/utilities/IOIntercept.h>
43 static EvtGen*
createEvtGen(
const std::string& decayFileName,
bool coherentMixing);
58 int setup(
const std::string& decayFileName,
const std::string& parentParticle,
59 const std::string& userFileName = std::string(
""),
bool coherentMixing =
true);
63 TVector3 pPrimaryVertex,
int inclusiveType,
const std::string& inclusiveParticle);
76 TVector3 pPrimaryVertex,
double timeOffset = 0);
Class to interface EvtGen.
int addParticles2Graph(EvtParticle *particle, MCParticleGraph &graph, TVector3 pPrimaryVertex, MCParticleGraph::GraphParticle *parent, double timeOffset=0)
Convert EvtParticle structure to flat MCParticle list.
void updateGraphParticle(EvtParticle *eParticle, MCParticleGraph::GraphParticle *gParticle, TVector3 pPrimaryVertex, double timeOffset=0)
Copy parameters from EvtParticle to MCParticle.
EvtVector4R m_pinit
Variable needed for initial momentum.
int simulateDecay(MCParticleGraph &graph, MCParticleGraph::GraphParticle &parent)
Simulate a particle decay.
EvtGen * m_Generator
Variable needed for EvtGen generator.
~EvtGenInterface()
Destructor.
int simulateEvent(MCParticleGraph &graph, TLorentzVector pParentParticle, TVector3 pPrimaryVertex, int inclusiveType, const std::string &inclusiveParticle)
Generate a single event.
int setup(const std::string &decayFileName, const std::string &parentParticle, const std::string &userFileName=std::string(""), bool coherentMixing=true)
Setup evtgen with the given decay files
static EvtGenFwRandEngine m_eng
Variable needed for random generator.
EvtParticle * m_parent
Variable needed for parent particle.
static EvtGen * createEvtGen(const std::string &decayFileName, bool coherentMixing)
Create and initialize an EvtGen instance:
EvtId m_ParentParticle
Variable needed for parent particle ID.
bool m_ParentInitialized
Whether parent particle is initialized.
EvtGenInterface()
Constructor.
IOIntercept::OutputToLogMessages m_logCapture
Capture evtgen log and transform into basf2 logging.
Capture stdout and stderr and convert into log messages.
Class to represent Particle data in graph.
Class to build, validate and sort a particle decay chain.
Abstract base class for different kinds of events.