Class Reference for E1039 Core & Analysis Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PHHepMCGenHelper Class Reference

PHHepMCGenHelper provides service of DST upload of HepMC subevent, vertex assignment and random generator. More...

#include </dev/shm/kenichi/update-github-e1039-doc/e1039-core/generators/phhepmc/PHHepMCGenHelper.h>

Public Types

enum  VTXFUNC { Uniform, Gaus }
 supported function distributions More...
 

Public Member Functions

 PHHepMCGenHelper ()
 
virtual ~PHHepMCGenHelper ()
 
void set_vertex_distribution_function (VTXFUNC x, VTXFUNC y, VTXFUNC z, VTXFUNC t)
 toss a new vertex according to a Uniform or Gaus distribution More...
 
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 More...
 
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, ns More...
 
int get_embedding_id () const
 
void set_embedding_id (int id)
 
void set_reuse_vertex (int src_embedding_id)
 reuse vertex from another PHHepMCGenEvent with embedding_id = src_embedding_id Additional smearing and shift possible with set_vertex_distribution_*() More...
 
int create_node_tree (PHCompositeNode *topNode)
 init interface nodes More...
 
PHHepMCGenEventinsert_event (HepMC::GenEvent *evt)
 send HepMC::GenEvent to DST tree. This function takes ownership of evt More...
 
void move_vertex (PHHepMCGenEvent *genevent)
 move vertex according to vertex settings More...
 
const PHHepMCGenEventMapget_geneventmap () const
 
PHHepMCGenEventMapget_geneventmap ()
 
gsl_rng * get_random_generator ()
 
void set_geneventmap (PHHepMCGenEventMap *geneventmap)
 

Protected Member Functions

double smear (const double position, const double width, VTXFUNC dist) const
 

Protected Attributes

gsl_rng * RandomGenerator
 

Detailed Description

PHHepMCGenHelper provides service of DST upload of HepMC subevent, vertex assignment and random generator.

Definition at line 32 of file PHHepMCGenHelper.h.

Member Enumeration Documentation

supported function distributions

Enumerator
Uniform 

uniform distribution with half width set via set_vertex_distribution_width()

Gaus 

normal distribution with sigma width set via set_vertex_distribution_width()

Definition at line 39 of file PHHepMCGenHelper.h.

Constructor & Destructor Documentation

PHHepMCGenHelper::PHHepMCGenHelper ( )

Definition at line 35 of file PHHepMCGenHelper.cc.

References RandomGenerator.

PHHepMCGenHelper::~PHHepMCGenHelper ( )
virtual

Definition at line 59 of file PHHepMCGenHelper.cc.

References RandomGenerator.

Member Function Documentation

int PHHepMCGenHelper::create_node_tree ( PHCompositeNode topNode)

init interface nodes

Definition at line 65 of file PHHepMCGenHelper.cc.

References Fun4AllReturnCodes::ABORTRUN, Fun4AllReturnCodes::EVENT_OK, PHNodeIterator::findFirst(), and PHWHERE.

+ Here is the call graph for this function:

int PHHepMCGenHelper::get_embedding_id ( ) const
inline

embedding ID for the event positive ID is the embedded event of interest, e.g. jetty event from pythia negative IDs are backgrounds, .e.g out of time pile up collisions Usually, ID = 0 means the primary Au+Au collision background

Definition at line 60 of file PHHepMCGenHelper.h.

Referenced by Fun4AllOscarInputManager::ConvertFromOscar(), Fun4AllOscarInputManager::get_embedding_id(), Fun4AllHepMCInputManager::get_embedding_id(), PHPythia8::get_embedding_id(), Fun4AllHepMCPileupInputManager::run(), and Fun4AllHepMCInputManager::run().

+ Here is the caller graph for this function:

const PHHepMCGenEventMap* PHHepMCGenHelper::get_geneventmap ( ) const
inline

Definition at line 85 of file PHHepMCGenHelper.h.

Referenced by Fun4AllOscarInputManager::ConvertFromOscar(), Fun4AllHepMCPileupInputManager::run(), and Fun4AllHepMCInputManager::run().

+ Here is the caller graph for this function:

PHHepMCGenEventMap* PHHepMCGenHelper::get_geneventmap ( )
inline

Definition at line 90 of file PHHepMCGenHelper.h.

gsl_rng* PHHepMCGenHelper::get_random_generator ( )
inline

Definition at line 96 of file PHHepMCGenHelper.h.

References RandomGenerator.

PHHepMCGenEvent * PHHepMCGenHelper::insert_event ( HepMC::GenEvent *  evt)

send HepMC::GenEvent to DST tree. This function takes ownership of evt

Definition at line 89 of file PHHepMCGenHelper.cc.

References PHHepMCGenEvent::addEvent(), PHHepMCGenEventMap::insert_event(), and move_vertex().

Referenced by Fun4AllOscarInputManager::ConvertFromOscar(), PHPythia8::process_event(), and Fun4AllHepMCInputManager::run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHHepMCGenHelper::move_vertex ( PHHepMCGenEvent genevent)

move vertex according to vertex settings

Definition at line 102 of file PHHepMCGenHelper.cc.

References PHHepMCGenEventMap::get(), PHHepMCGenEvent::get_collision_vertex(), PHHepMCGenEventMap::identify(), PHHepMCGenEvent::moveVertex(), and smear().

Referenced by insert_event(), and Fun4AllHepMCPileupInputManager::run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_embedding_id ( int  id)
inline

embedding ID for the event positive ID is the embedded event of interest, e.g. jetty event from pythia negative IDs are backgrounds, .e.g out of time pile up collisions Usually, ID = 0 means the primary Au+Au collision background

Definition at line 66 of file PHHepMCGenHelper.h.

Referenced by Fun4AllHepMCPileupInputManager::Fun4AllHepMCPileupInputManager(), PHPythia8::PHPythia8(), Fun4AllOscarInputManager::set_embedding_id(), Fun4AllHepMCInputManager::set_embedding_id(), and PHPythia8::set_embedding_id().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_geneventmap ( PHHepMCGenEventMap geneventmap)
inline

Definition at line 99 of file PHHepMCGenHelper.h.

Referenced by Fun4AllHepMCInputManager::Fun4AllHepMCInputManager(), and Fun4AllOscarInputManager::Fun4AllOscarInputManager().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_reuse_vertex ( int  src_embedding_id)
inline

reuse vertex from another PHHepMCGenEvent with embedding_id = src_embedding_id Additional smearing and shift possible with set_vertex_distribution_*()

Definition at line 69 of file PHHepMCGenHelper.h.

Referenced by Fun4AllOscarInputManager::set_reuse_vertex(), Fun4AllHepMCInputManager::set_reuse_vertex(), and PHPythia8::set_reuse_vertex().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_vertex_distribution_function ( VTXFUNC  x,
VTXFUNC  y,
VTXFUNC  z,
VTXFUNC  t 
)

toss a new vertex according to a Uniform or Gaus distribution

Definition at line 137 of file PHHepMCGenHelper.cc.

Referenced by Fun4AllHepMCPileupInputManager::Fun4AllHepMCPileupInputManager(), Fun4AllOscarInputManager::set_vertex_distribution_function(), Fun4AllHepMCInputManager::set_vertex_distribution_function(), and PHPythia8::set_vertex_distribution_function().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::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

Definition at line 146 of file PHHepMCGenHelper.cc.

Referenced by Fun4AllHepMCPileupInputManager::Fun4AllHepMCPileupInputManager(), Fun4AllOscarInputManager::set_vertex_distribution_mean(), Fun4AllHepMCInputManager::set_vertex_distribution_mean(), and PHPythia8::set_vertex_distribution_mean().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::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, ns

Definition at line 155 of file PHHepMCGenHelper.cc.

Referenced by Fun4AllHepMCPileupInputManager::Fun4AllHepMCPileupInputManager(), Fun4AllOscarInputManager::set_vertex_distribution_width(), Fun4AllHepMCInputManager::set_vertex_distribution_width(), and PHPythia8::set_vertex_distribution_width().

+ Here is the caller graph for this function:

double PHHepMCGenHelper::smear ( const double  position,
const double  width,
VTXFUNC  dist 
) const
protected

Definition at line 164 of file PHHepMCGenHelper.cc.

References Gaus, RandomGenerator, and Uniform.

Referenced by move_vertex().

+ Here is the caller graph for this function:

Member Data Documentation

gsl_rng* PHHepMCGenHelper::RandomGenerator
protected

The documentation for this class was generated from the following files: