11 #ifndef SIMULATION_CORESOFTWARE_SIMULATION_G4SIMULATION_PHHEPMC_PHHEPMCGENHELPER_H_
12 #define SIMULATION_CORESOFTWARE_SIMULATION_G4SIMULATION_PHHEPMC_PHHEPMCGENHELPER_H_
26 #include <gsl/gsl_rng.h>
72 _reuse_vertex_embedding_id = src_embedding_id;
101 _geneventmap = geneventmap;
109 double smear(
const double position,
const double width,
VTXFUNC dist)
const;
122 double _vertex_width_x;
123 double _vertex_width_y;
124 double _vertex_width_z;
125 double _vertex_width_t;
136 int _reuse_vertex_embedding_id;
PHHepMCGenEventMap is collection of HEPMC events input into this simulation map of embedding ID -> PH...
void set_reuse_vertex(int src_embedding_id)
reuse vertex from another PHHepMCGenEvent with embedding_id = src_embedding_id Additional smearing an...
uniform distribution with half width set via set_vertex_distribution_width()
int get_embedding_id() const
PHHepMCGenHelper provides service of DST upload of HepMC subevent, vertex assignment and random gener...
PHHepMCGenEvent * insert_event(HepMC::GenEvent *evt)
send HepMC::GenEvent to DST tree. This function takes ownership of evt
PHHepMCGenEventMap * get_geneventmap()
gsl_rng * RandomGenerator
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 move_vertex(PHHepMCGenEvent *genevent)
move vertex according to vertex settings
void set_geneventmap(PHHepMCGenEventMap *geneventmap)
gsl_rng * get_random_generator()
const PHHepMCGenEventMap * get_geneventmap() const
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
normal distribution with sigma width set via set_vertex_distribution_width()
int create_node_tree(PHCompositeNode *topNode)
init interface nodes
void set_embedding_id(int id)
double smear(const double position, const double width, VTXFUNC dist) const
virtual ~PHHepMCGenHelper()