1 #ifndef __PHPYTHIA8_H__
2 #define __PHPYTHIA8_H__
8 #include <Pythia8/Pythia.h>
12 #include <gsl/gsl_rng.h>
38 PHPythia8(
const std::string &name =
"PHPythia8");
48 if (cfg_file) _configFile = cfg_file;
117 int read_config(
const char *cfg_file = 0);
119 double percent_diff(
const double a,
const double b) {
return abs((a - b) / a); }
123 std::vector<PHPy8GenTrigger *> _registeredTriggers;
129 Pythia8::Pythia *_pythia;
132 std::string _configFile;
133 std::vector<std::string> _commands;
136 HepMC::Pythia8ToHepMC *_pythiaToHepMC;
142 bool _save_integrated_luminosity;
int get_embedding_id() const
void set_reuse_vertex(int src_embedding_id)
reuse vertex from another PHHepMCGenEvent with embedding_id = src_embedding_id Additional smearing an...
void set_reuse_vertex(int src_embedding_id)
reuse vertex from another PHHepMCGenEvent with embedding_id = src_embedding_id Additional smearing an...
void process_string(std::string s)
pass commands directly to PYTHIA8
int get_embedding_id() const
PHHepMCGenHelper provides service of DST upload of HepMC subevent, vertex assignment and random gener...
int End(PHCompositeNode *topNode)
Called at the end of all processing.
void set_vertex_distribution_function(PHHepMCGenHelper::VTXFUNC x, PHHepMCGenHelper::VTXFUNC y, PHHepMCGenHelper::VTXFUNC z, PHHepMCGenHelper::VTXFUNC t)
toss a new vertex according to a Uniform or Gaus distribution
void set_config_file(const char *cfg_file)
void set_vertex_distribution_mean(const double x, const double y, const double z, const double t)
set the mean value of the vertex distribution, use PHENIX units of cm, ns
void set_vertex_distribution_function(VTXFUNC x, VTXFUNC y, VTXFUNC z, VTXFUNC t)
toss a new vertex according to a Uniform or Gaus distribution
void set_vertex_distribution_mean(const double x, const double y, const double z, const double t)
set the mean value of the vertex distribution, use PHENIX units of cm, ns
void print_config() const
void save_integrated_luminosity(const bool b)
whether to store the integrated luminosity and other event statistics to the TOP/RUN/PHGenIntegral no...
int Init(PHCompositeNode *topNode)
void set_vertex_distribution_width(const double x, const double y, const double z, const double t)
set the width of the vertex distribution function about the mean, use PHENIX units of cm...
int process_event(PHCompositeNode *topNode)
void register_trigger(PHPy8GenTrigger *theTrigger)
set event selection criteria
void beam_vertex_parameters(double beamX, double beamY, double beamZ, double beamXsigma, double beamYsigma, double beamZsigma)
int ResetEvent(PHCompositeNode *topNode)
Clean up after each event.
void set_vertex_distribution_width(const double x, const double y, const double z, const double t)
set the width of the vertex distribution function about the mean, use PHENIX units of cm...
VTXFUNC
supported function distributions
PHPythia8(const std::string &name="PHPythia8")
void set_embedding_id(int id)
void set_embedding_id(int id)