EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHHepMCGenHelper Class Reference

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

#include <fun4all_coresoftware/blob/master/generators/phhepmc/PHHepMCGenHelper.h>

+ Inheritance diagram for PHHepMCGenHelper:
+ Collaboration diagram for PHHepMCGenHelper:

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
 
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_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
 
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_*()
 
virtual int create_node_tree (PHCompositeNode *topNode)
 init interface nodes
 
const PHHepMCGenEventget_PHHepMCGenEvent_template () const
 choice of reference version of the PHHepMCGenEvent
 
PHHepMCGenEventinsert_event (HepMC::GenEvent *evt)
 send HepMC::GenEvent to DST tree. This function takes ownership of evt
 
const PHHepMCGenEventMapget_geneventmap () const
 
PHHepMCGenEventMapget_geneventmap ()
 
gsl_rng * get_random_generator ()
 
void set_geneventmap (PHHepMCGenEventMap *geneventmap)
 
void set_beam_direction_theta_phi (const double beamA_theta, const double beamA_phi, const double beamB_theta, const double beamB_phi)
 
void set_beam_angular_divergence_hv (const double beamA_divergence_h, const double beamA_divergence_v, const double beamB_divergence_h, const double beamB_divergence_v)
 
void set_beam_angular_z_coefficient_hv (const double beamA_h, const double beamA_v, const double beamB_h, const double beamB_v)
 
void use_beam_bunch_sim (bool b)
 simulate bunch interaction instead of applying vertex distributions
 
void set_beam_bunch_width (const std::vector< double > &beamA, const std::vector< double > &beamB)
 
void CopySettings (PHHepMCGenHelper &helper)
 
void CopySettings (PHHepMCGenHelper *helper_dest)
 copy setting to helper_dest
 
void CopyHelperSettings (PHHepMCGenHelper *helper_src)
 copy setting from helper_src
 
void Print (const std::string &what="ALL") const
 
void PHHepMCGenHelper_Verbosity (int v)
 
int PHHepMCGenHelper_Verbosity ()
 

Protected Member Functions

void HepMC2Lab_boost_rotation_translation (PHHepMCGenEvent *genevent)
 Record the translation,boost,rotation for HepMC frame to lab frame according to collision settings.
 
void move_vertex (PHHepMCGenEvent *genevent)
 move vertex in translation according to vertex settings
 
std::pair< double, double > generate_vertx_with_bunch_interaction (PHHepMCGenEvent *genevent)
 

Private Member Functions

double smear (const double position, const double width, VTXFUNC dist) const
 
double get_collision_width (unsigned int hv_index)
 

Static Private Member Functions

static CLHEP::Hep3Vector pair2Hep3Vector (const std::pair< double, double > &theta_phi)
 function to convert spherical coordinate to Hep3Vector in x-y-z
 

Private Attributes

gsl_rng * RandomGenerator
 
VTXFUNC _vertex_func_x
 
VTXFUNC _vertex_func_y
 
VTXFUNC _vertex_func_z
 
VTXFUNC _vertex_func_t
 
double _vertex_x
 
double _vertex_y
 
double _vertex_z
 
double _vertex_t
 
double _vertex_width_x
 
double _vertex_width_y
 
double _vertex_width_z
 
double _vertex_width_t
 
std::pair< std::pair< double,
double >, std::pair< double,
double > > 
m_beam_direction_theta_phi
 
std::pair< std::pair< double,
double >, std::pair< double,
double > > 
m_beam_angular_divergence_hv
 
std::pair< std::pair< double,
double >, std::pair< double,
double > > 
m_beam_angular_z_coefficient_hv
 
int _embedding_id
 
bool _reuse_vertex
 whether reuse vertex from another PHHepMCGenEvent
 
int _reuse_vertex_embedding_id
 if reuse_vertex, which embedding_id provide the source vertex. Additional smearing and shift possible with set_vertex_distribution*()
 
PHHepMCGenEventMap_geneventmap
 pointer to the output container
 
int m_verbosity = 0
 verbosity
 
bool m_use_beam_bunch_sim = false
 simulate bunch interaction instead of applying vertex distributions
 
std::pair< std::vector< double >
, std::vector< double > > 
m_beam_bunch_width
 

Detailed Description

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

Definition at line 35 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 35 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 42 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 42 of file PHHepMCGenHelper.h

Constructor & Destructor Documentation

PHHepMCGenHelper::PHHepMCGenHelper ( )

Definition at line 48 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 48 of file PHHepMCGenHelper.cc

References RandomGenerator.

PHHepMCGenHelper::~PHHepMCGenHelper ( )
virtual

Definition at line 71 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 71 of file PHHepMCGenHelper.cc

References RandomGenerator.

Member Function Documentation

void PHHepMCGenHelper::CopyHelperSettings ( PHHepMCGenHelper helper_src)

copy setting from helper_src

Definition at line 624 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 624 of file PHHepMCGenHelper.cc

References CopySettings(), and exit().

Referenced by Fun4All_AnaTutorial_sPHENIX(), Fun4All_AnaTutorial_sPHENIX_Jets(), Fun4All_G4_fsPHENIX(), and Fun4All_G4_sPHENIX().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHHepMCGenHelper::CopySettings ( PHHepMCGenHelper helper)

Definition at line 573 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 573 of file PHHepMCGenHelper.cc

References _vertex_func_t, _vertex_func_x, _vertex_func_y, _vertex_func_z, _vertex_t, _vertex_width_t, _vertex_width_x, _vertex_width_y, _vertex_width_z, _vertex_x, _vertex_y, _vertex_z, m_beam_angular_divergence_hv, m_beam_angular_z_coefficient_hv, m_beam_bunch_width, m_beam_direction_theta_phi, m_use_beam_bunch_sim, set_beam_angular_divergence_hv(), set_beam_angular_z_coefficient_hv(), set_beam_bunch_width(), set_beam_direction_theta_phi(), set_vertex_distribution_function(), set_vertex_distribution_mean(), set_vertex_distribution_width(), and use_beam_bunch_sim().

Referenced by CopyHelperSettings(), and CopySettings().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHHepMCGenHelper::CopySettings ( PHHepMCGenHelper helper_dest)

copy setting to helper_dest

Definition at line 613 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 613 of file PHHepMCGenHelper.cc

References CopySettings(), and exit().

+ Here is the call graph for this function:

int PHHepMCGenHelper::create_node_tree ( PHCompositeNode topNode)
virtual

init interface nodes

Reimplemented in PHPythia8.

Definition at line 77 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 77 of file PHHepMCGenHelper.cc

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

Referenced by PHPythia8::create_node_tree(), ReadEICFiles::CreateNodeTree(), PHPythia6::Init(), PHSartre::Init(), and sHEPGen::Init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

pair< double, double > PHHepMCGenHelper::generate_vertx_with_bunch_interaction ( PHHepMCGenEvent genevent)
protected

generate vertx with bunch interaction according to https://github.com/eic/documents/blob/d06b5597a0a89dcad215bab50fe3eefa17a097a5/reports/general/Note-Simulations-BeamEffects.pdf

Returns
pair of bunch local z position for beam A and beam B

Definition at line 158 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 158 of file PHHepMCGenHelper.cc

References Acts::UnitConstants::cm, Gaus, get_collision_width(), m_beam_bunch_width, m_beam_direction_theta_phi, m_verbosity, Acts::UnitConstants::ns, pair2Hep3Vector(), PHHepMCGenEvent::set_collision_vertex(), and smear().

Referenced by HepMC2Lab_boost_rotation_translation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double PHHepMCGenHelper::get_collision_width ( unsigned int  hv_index)
private

use m_beam_bunch_width to calculate horizontal and vertical collision width

Parameters
[in]hv_index0: horizontal. 1: vertical

use m_beam_bunch_width to calculate horizontal and vertical collision width

Parameters
[in]hv_index0: horizontal. 1: vertical https://github.com/eic/documents/blob/d06b5597a0a89dcad215bab50fe3eefa17a097a5/reports/general/Note-Simulations-BeamEffects.pdf

Definition at line 145 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 145 of file PHHepMCGenHelper.cc

References m_beam_bunch_width.

Referenced by generate_vertx_with_bunch_interaction().

+ Here is the caller 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 63 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 63 of file PHHepMCGenHelper.h

References _embedding_id.

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

+ Here is the caller graph for this function:

const PHHepMCGenEventMap* PHHepMCGenHelper::get_geneventmap ( ) const
inline

Definition at line 88 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 88 of file PHHepMCGenHelper.h

References _geneventmap.

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

+ Here is the caller graph for this function:

PHHepMCGenEventMap* PHHepMCGenHelper::get_geneventmap ( )
inline

Definition at line 93 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 93 of file PHHepMCGenHelper.h

References _geneventmap.

const PHHepMCGenEvent * PHHepMCGenHelper::get_PHHepMCGenEvent_template ( ) const

choice of reference version of the PHHepMCGenEvent

Definition at line 101 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 101 of file PHHepMCGenHelper.cc

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

+ Here is the caller graph for this function:

gsl_rng* PHHepMCGenHelper::get_random_generator ( )
inline

Definition at line 98 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 98 of file PHHepMCGenHelper.h

References RandomGenerator.

Referenced by PHSartre::randomlyReverseBeams().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::HepMC2Lab_boost_rotation_translation ( PHHepMCGenEvent genevent)
protected

Record the translation,boost,rotation for HepMC frame to lab frame according to collision settings.

move vertex in translation,boost,rotation according to vertex settings

if (_reuse_vertex)

Definition at line 256 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 256 of file PHHepMCGenHelper.cc

References _geneventmap, _reuse_vertex, _reuse_vertex_embedding_id, Acts::VectorHelpers::cross(), exit(), Gaus, generate_vertx_with_bunch_interaction(), PHHepMCGenEventMap::get(), PHHepMCGenEvent::get_boost_beta_vector(), PHHepMCGenEvent::get_collision_vertex(), PHHepMCGenEvent::get_rotation_angle(), PHHepMCGenEvent::get_rotation_vector(), PHHepMCGenEvent::identify(), PHHepMCGenEventMap::identify(), m_beam_angular_divergence_hv, m_beam_angular_z_coefficient_hv, m_beam_direction_theta_phi, M_PI, m_use_beam_bunch_sim, m_verbosity, move_vertex(), PHHepMCGenEvent::moveVertex(), pair2Hep3Vector(), Print(), PHHepMCGenEvent::set_boost_beta_vector(), PHHepMCGenEvent::set_rotation_angle(), PHHepMCGenEvent::set_rotation_vector(), and smear().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

Definition at line 110 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 110 of file PHHepMCGenHelper.cc

References _embedding_id, _geneventmap, PHHepMCGenEvent::addEvent(), genevent(), get_PHHepMCGenEvent_template(), HepMC2Lab_boost_rotation_translation(), and PHHepMCGenEventMap::insert_event().

Referenced by Fun4AllOscarInputManager::ConvertFromOscar(), PHPythia6::process_event(), PHSartre::process_event(), ReadEICFiles::process_event(), sHEPGen::process_event(), 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)
protected

move vertex in translation according to vertex settings

Definition at line 123 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 123 of file PHHepMCGenHelper.cc

References _reuse_vertex, _vertex_func_t, _vertex_func_x, _vertex_func_y, _vertex_func_z, _vertex_t, _vertex_width_t, _vertex_width_x, _vertex_width_y, _vertex_width_z, _vertex_x, _vertex_y, _vertex_z, PHHepMCGenEvent::moveVertex(), and smear().

Referenced by HepMC2Lab_boost_rotation_translation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

CLHEP::Hep3Vector PHHepMCGenHelper::pair2Hep3Vector ( const std::pair< double, double > &  theta_phi)
staticprivate

function to convert spherical coordinate to Hep3Vector in x-y-z

Definition at line 244 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 244 of file PHHepMCGenHelper.cc

References cos(), phi, and theta().

Referenced by generate_vertx_with_bunch_interaction(), and HepMC2Lab_boost_rotation_translation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHHepMCGenHelper::PHHepMCGenHelper_Verbosity ( int  v)
inline

Definition at line 169 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 169 of file PHHepMCGenHelper.h

References m_verbosity, and v.

int PHHepMCGenHelper::PHHepMCGenHelper_Verbosity ( )
inline

Definition at line 171 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 171 of file PHHepMCGenHelper.h

References m_verbosity.

void PHHepMCGenHelper::Print ( const std::string &  what = "ALL") const

Definition at line 635 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 635 of file PHHepMCGenHelper.cc

References _vertex_func_t, _vertex_func_x, _vertex_func_y, _vertex_func_z, _vertex_width_t, _vertex_width_x, _vertex_width_y, _vertex_width_z, m_beam_angular_divergence_hv, m_beam_angular_z_coefficient_hv, m_beam_bunch_width, m_beam_direction_theta_phi, and m_use_beam_bunch_sim.

Referenced by HepMC2Lab_boost_rotation_translation(), and Fun4AllHepMCInputManager::Print().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_beam_angular_divergence_hv ( const double  beamA_divergence_h,
const double  beamA_divergence_v,
const double  beamB_divergence_h,
const double  beamB_divergence_v 
)
inline

Beam angle divergence in accelerator beam coordinate.

Parameters
[in]beamA_divergence_hbeamA, horizontal divergence Gaussian Sigma. BeamA is aimed to +z direction in the HepMC event generator's coordinate
[in]beamA_divergence_vbeamA, vertical divergence Gaussian Sigma. BeamA is aimed to +z direction in the HepMC event generator's coordinate
[in]beamB_divergence_hbeamB, horizontal divergence Gaussian Sigma. BeamA is aimed to -z direction in the HepMC event generator's coordinate
[in]beamB_divergence_vbeamB, vertical divergence Gaussian Sigma. BeamA is aimed to -z direction in the HepMC event generator's coordinate

Definition at line 127 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 127 of file PHHepMCGenHelper.h

References m_beam_angular_divergence_hv.

Referenced by Input::ApplyEICBeamParameter(), and CopySettings().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_beam_angular_z_coefficient_hv ( const double  beamA_h,
const double  beamA_v,
const double  beamB_h,
const double  beamB_v 
)
inline

Central beam angle shift as linear function of longitudinal vertex position, d_shift/dz, which is used to represent leading order effect of crab cavity momentum kick on the beam bunch

Parameters
[in]beamA_hbeamA, horizontal angle dh/dz. BeamA is aimed to +z direction in the HepMC event generator's coordinate
[in]beamA_vbeamA, vertical angle dv/dz. BeamA is aimed to +z direction in the HepMC event generator's coordinate
[in]beamB_hbeamB, horizontal angle dh/dz. BeamA is aimed to -z direction in the HepMC event generator's coordinate
[in]beamB_vbeamB, vertical angle dv/dz. BeamA is aimed to -z direction in the HepMC event generator's coordinate

Definition at line 142 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 142 of file PHHepMCGenHelper.h

References m_beam_angular_z_coefficient_hv.

Referenced by Input::ApplyEICBeamParameter(), and CopySettings().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_beam_bunch_width ( const std::vector< double > &  beamA,
const std::vector< double > &  beamB 
)

Beam bunch geometry as 3D Gauss width First element is beamA, in vector of Gaussian Sigma H,V,Longitudinal Second element is beamB, in vector of Gaussian Sigma H,V,Longitudinal

Definition at line 532 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 532 of file PHHepMCGenHelper.cc

References exit(), m_beam_bunch_width, and m_use_beam_bunch_sim.

Referenced by CopySettings().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_beam_direction_theta_phi ( const double  beamA_theta,
const double  beamA_phi,
const double  beamB_theta,
const double  beamB_phi 
)
inline

Beam angle in lab polar coordinate.

Parameters
[in]beamA_thetabeamA, in pair of Theta-Phi. BeamA is aimed to +z direction in the HepMC event generator's coordinate
[in]beamA_phibeamA, in pair of Theta-Phi. BeamA is aimed to +z direction in the HepMC event generator's coordinate
[in]beamB_thetabeamB, in pair of Theta-Phi. BeamA is aimed to -z direction in the HepMC event generator's coordinate
[in]beamB_phibeamB, in pair of Theta-Phi. BeamA is aimed to -z direction in the HepMC event generator's coordinate

Definition at line 113 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 113 of file PHHepMCGenHelper.h

References m_beam_direction_theta_phi.

Referenced by Input::ApplyEICBeamParameter(), Input::ApplysPHENIXBeamParameter(), and CopySettings().

+ 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 69 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 69 of file PHHepMCGenHelper.h

References _embedding_id.

Referenced by doPerformDecay(), Fun4AllHepMCInputManager::Fun4AllHepMCInputManager(), Fun4AllHepMCPileupInputManager::Fun4AllHepMCPileupInputManager(), InputInit(), PHPythia6::PHPythia6(), PHPythia8::PHPythia8(), ReadEICFiles::ReadEICFiles(), and sHEPGen::sHEPGen().

+ Here is the caller graph for this function:

void PHHepMCGenHelper::set_geneventmap ( PHHepMCGenEventMap geneventmap)
inline

Definition at line 103 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 103 of file PHHepMCGenHelper.h

References _geneventmap.

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 72 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 72 of file PHHepMCGenHelper.h

References _reuse_vertex, and _reuse_vertex_embedding_id.

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 482 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 482 of file PHHepMCGenHelper.cc

References _vertex_func_t, _vertex_func_x, _vertex_func_y, _vertex_func_z, exit(), m_use_beam_bunch_sim, t, x, y, and z.

Referenced by Input::ApplyEICBeamParameter(), Input::ApplysPHENIXBeamParameter(), CopySettings(), Fun4All_G4_Babar(), Fun4All_G4_Beast(), Fun4All_G4_CEMC(), Fun4All_G4_Cleo(), Fun4All_G4_EICDetector(), Fun4All_G4_FEMC(), Fun4All_G4_FHCAL(), Fun4All_G4_HCALIN(), Fun4All_G4_HCALOUT(), Fun4All_G4_JLeic(), and Fun4All_G4_sPHENIX().

+ Here is the call graph for this 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 498 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 498 of file PHHepMCGenHelper.cc

References _vertex_t, _vertex_x, _vertex_y, _vertex_z, exit(), m_use_beam_bunch_sim, t, x, y, and z.

Referenced by PHPythia6::beam_vertex_parameters(), sHEPGen::beam_vertex_parameters(), PHSartre::beam_vertex_parameters(), PHPythia8::beam_vertex_parameters(), and CopySettings().

+ Here is the call graph for this function:

+ 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 515 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 515 of file PHHepMCGenHelper.cc

References _vertex_width_t, _vertex_width_x, _vertex_width_y, _vertex_width_z, exit(), m_use_beam_bunch_sim, t, x, y, and z.

Referenced by Input::ApplyEICBeamParameter(), Input::ApplysPHENIXBeamParameter(), PHPythia6::beam_vertex_parameters(), sHEPGen::beam_vertex_parameters(), PHSartre::beam_vertex_parameters(), PHPythia8::beam_vertex_parameters(), CopySettings(), Fun4All_G4_Babar(), Fun4All_G4_Beast(), Fun4All_G4_CEMC(), Fun4All_G4_Cleo(), Fun4All_G4_EICDetector(), Fun4All_G4_FEMC(), Fun4All_G4_FHCAL(), Fun4All_G4_HCALIN(), Fun4All_G4_HCALOUT(), Fun4All_G4_JLeic(), and Fun4All_G4_sPHENIX().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 546 of file PHHepMCGenHelper.cc.

View newest version in sPHENIX GitHub at line 546 of file PHHepMCGenHelper.cc

References exit(), Gaus, Acts::VectorHelpers::position(), RandomGenerator, Uniform, and width().

Referenced by generate_vertx_with_bunch_interaction(), HepMC2Lab_boost_rotation_translation(), and move_vertex().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHHepMCGenHelper::use_beam_bunch_sim ( bool  b)
inline

simulate bunch interaction instead of applying vertex distributions

Definition at line 152 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 152 of file PHHepMCGenHelper.h

References m_use_beam_bunch_sim.

Referenced by CopySettings().

+ Here is the caller graph for this function:

Member Data Documentation

int PHHepMCGenHelper::_embedding_id
private

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 236 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 236 of file PHHepMCGenHelper.h

Referenced by get_embedding_id(), insert_event(), and set_embedding_id().

PHHepMCGenEventMap* PHHepMCGenHelper::_geneventmap
private

pointer to the output container

Definition at line 245 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 245 of file PHHepMCGenHelper.h

Referenced by create_node_tree(), get_geneventmap(), HepMC2Lab_boost_rotation_translation(), insert_event(), and set_geneventmap().

bool PHHepMCGenHelper::_reuse_vertex
private

whether reuse vertex from another PHHepMCGenEvent

Definition at line 239 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 239 of file PHHepMCGenHelper.h

Referenced by HepMC2Lab_boost_rotation_translation(), move_vertex(), and set_reuse_vertex().

int PHHepMCGenHelper::_reuse_vertex_embedding_id
private

if reuse_vertex, which embedding_id provide the source vertex. Additional smearing and shift possible with set_vertex_distribution*()

Definition at line 242 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 242 of file PHHepMCGenHelper.h

Referenced by HepMC2Lab_boost_rotation_translation(), and set_reuse_vertex().

VTXFUNC PHHepMCGenHelper::_vertex_func_t
private

Definition at line 196 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 196 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), Print(), and set_vertex_distribution_function().

VTXFUNC PHHepMCGenHelper::_vertex_func_x
private

Definition at line 193 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 193 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), Print(), and set_vertex_distribution_function().

VTXFUNC PHHepMCGenHelper::_vertex_func_y
private

Definition at line 194 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 194 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), Print(), and set_vertex_distribution_function().

VTXFUNC PHHepMCGenHelper::_vertex_func_z
private

Definition at line 195 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 195 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), Print(), and set_vertex_distribution_function().

double PHHepMCGenHelper::_vertex_t
private

Definition at line 201 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 201 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), and set_vertex_distribution_mean().

double PHHepMCGenHelper::_vertex_width_t
private

Definition at line 206 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 206 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), Print(), and set_vertex_distribution_width().

double PHHepMCGenHelper::_vertex_width_x
private

Definition at line 203 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 203 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), Print(), and set_vertex_distribution_width().

double PHHepMCGenHelper::_vertex_width_y
private

Definition at line 204 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 204 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), Print(), and set_vertex_distribution_width().

double PHHepMCGenHelper::_vertex_width_z
private

Definition at line 205 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 205 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), Print(), and set_vertex_distribution_width().

double PHHepMCGenHelper::_vertex_x
private

Definition at line 198 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 198 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), and set_vertex_distribution_mean().

double PHHepMCGenHelper::_vertex_y
private

Definition at line 199 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 199 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), and set_vertex_distribution_mean().

double PHHepMCGenHelper::_vertex_z
private

Definition at line 200 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 200 of file PHHepMCGenHelper.h

Referenced by CopySettings(), move_vertex(), and set_vertex_distribution_mean().

std::pair<std::pair<double, double>, std::pair<double, double> > PHHepMCGenHelper::m_beam_angular_divergence_hv
private
Initial value:
= {
{0, 0},
{0, 0}
}

Beam angle divergence in accelerator beam coordinate. First element is beamA, in pair of Gaussian Sigma_H Sigma_V. BeamA is aimed to +z direction in the HepMC event generator's coordinate Second element is beamB, in pair of Gaussian Sigma_H Sigma_V. BeamA is aimed to -z direction in the HepMC event generator's coordinate

Definition at line 219 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 219 of file PHHepMCGenHelper.h

Referenced by CopySettings(), HepMC2Lab_boost_rotation_translation(), Print(), and set_beam_angular_divergence_hv().

std::pair<std::pair<double, double>, std::pair<double, double> > PHHepMCGenHelper::m_beam_angular_z_coefficient_hv
private
Initial value:
= {
{0, 0},
{0, 0}
}

Central beam angle shift as linear function of longitudinal vertex position, d_shift/dz, which is used to represent leading order effect of crab cavity momentum kick on the beam bunch First element is beamA, in pair of dh/dz, dv/dz. BeamA is aimed to +z direction in the HepMC event generator's coordinate Second element is beamB, in pair of dh/dz, dv/dz. BeamA is aimed to -z direction in the HepMC event generator's coordinate

Definition at line 228 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 228 of file PHHepMCGenHelper.h

Referenced by CopySettings(), HepMC2Lab_boost_rotation_translation(), Print(), and set_beam_angular_z_coefficient_hv().

std::pair<std::vector<double>, std::vector<double> > PHHepMCGenHelper::m_beam_bunch_width
private
Initial value:
= {
{0, 0, 0},
{0, 0, 0}
}

Beam bunch geometry as 3D Gauss width First element is beamA, in vector of Gaussian Sigma H,V,Longitudinal Second element is beamB, in vector of Gaussian Sigma H,V,Longitudinal

Definition at line 256 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 256 of file PHHepMCGenHelper.h

Referenced by CopySettings(), generate_vertx_with_bunch_interaction(), get_collision_width(), Print(), and set_beam_bunch_width().

std::pair<std::pair<double, double>, std::pair<double, double> > PHHepMCGenHelper::m_beam_direction_theta_phi
private
Initial value:
= {
{0, 0},
{M_PI, 0}
}

Beam angle in lab polar coordinate. First element is beamA, in pair of Theta-Phi. BeamA is aimed to +z direction in the HepMC event generator's coordinate Second element is beamB, in pair of Theta-Phi. BeamA is aimed to -z direction in the HepMC event generator's coordinate

Definition at line 211 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 211 of file PHHepMCGenHelper.h

Referenced by CopySettings(), generate_vertx_with_bunch_interaction(), HepMC2Lab_boost_rotation_translation(), Print(), and set_beam_direction_theta_phi().

bool PHHepMCGenHelper::m_use_beam_bunch_sim = false
private

simulate bunch interaction instead of applying vertex distributions

Definition at line 251 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 251 of file PHHepMCGenHelper.h

Referenced by CopySettings(), HepMC2Lab_boost_rotation_translation(), Print(), set_beam_bunch_width(), set_vertex_distribution_function(), set_vertex_distribution_mean(), set_vertex_distribution_width(), and use_beam_bunch_sim().

int PHHepMCGenHelper::m_verbosity = 0
private

verbosity

Definition at line 248 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 248 of file PHHepMCGenHelper.h

Referenced by generate_vertx_with_bunch_interaction(), HepMC2Lab_boost_rotation_translation(), and PHHepMCGenHelper_Verbosity().

gsl_rng* PHHepMCGenHelper::RandomGenerator
private

Definition at line 186 of file PHHepMCGenHelper.h.

View newest version in sPHENIX GitHub at line 186 of file PHHepMCGenHelper.h

Referenced by get_random_generator(), PHHepMCGenHelper(), smear(), and ~PHHepMCGenHelper().


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