Class Reference for E1039 Core & Analysis Software
PHG4SimpleEventGenerator Class Reference

Event generator to generate a set of particles under a condition of the vertex and the momentum. More...

#include </dev/shm/kenichi/update-github-e1039-doc/e1039-core/simulation/g4main/PHG4SimpleEventGenerator.h>

+ Inheritance diagram for PHG4SimpleEventGenerator:
+ Collaboration diagram for PHG4SimpleEventGenerator:

Public Types

enum  FUNCTION { Uniform , Gaus }
 supported function distributions More...
 
- Public Types inherited from Fun4AllBase
enum  enu_Verbosity {
  VERBOSITY_QUIET = 0 , VERBOSITY_SOME = 1 , VERBOSITY_MORE = 2 , VERBOSITY_EVEN_MORE = 3 ,
  VERBOSITY_A_LOT = 4 , VERBOSITY_MAX = INT_MAX - 10
}
 

Public Member Functions

 PHG4SimpleEventGenerator (const std::string &name="EVTGENERATOR")
 
virtual ~PHG4SimpleEventGenerator ()
 
int InitRun (PHCompositeNode *topNode)
 
int process_event (PHCompositeNode *topNode)
 
int End (PHCompositeNode *topNode)
 Called at the end of all processing. More...
 
void add_particles (const std::string &name, const unsigned int count)
 interface for adding particles by name More...
 
void add_particles (const int pid, const unsigned int count)
 interface for adding particle by pid More...
 
void set_t0 (const double t0)
 set the starting time for the event More...
 
void set_eta_range (const double eta_min, const double eta_max)
 range of randomized eta values More...
 
void set_phi_range (const double phi_min, const double phi_max)
 range of randomized phi values More...
 
void set_pt_range (const double pt_min, const double pt_max, const double pt_gaus_width=0)
 
void set_p_range (const double p_min, const double p_max, const double p_gaus_width=0)
 
void set_vertex_distribution_function (FUNCTION x, FUNCTION y, FUNCTION z)
 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)
 set the mean value of the vertex distribution More...
 
void set_vertex_distribution_width (const double x, const double y, const double z)
 set the width of the vertex distribution function about the mean More...
 
void set_existing_vertex_offset_vector (const double x, const double y, const double z)
 set an offset vector from the existing vertex More...
 
void set_vertex_size_function (FUNCTION r)
 set the distribution function of particles about the vertex More...
 
void set_vertex_size_parameters (const double mean, const double width)
 set the dimensions of the distribution of particles about the vertex More...
 
void set_pxpypz_range (const double x_min, const double x_max, const double y_min, const double y_max, const double z_min, const double z_max)
 
void enableLegacyVtxGen ()
 Enable legacy vertex gen. More...
 
- Public Member Functions inherited from PHG4ParticleGeneratorBase
virtual ~PHG4ParticleGeneratorBase ()
 
virtual void set_name (const std::string &particle="proton")
 
virtual void set_pid (const int pid)
 
virtual void set_mom (const double x, const double y, const double z)
 
virtual void set_vtx (const double x, const double y, const double z)
 
virtual double get_vtx_x () const
 
virtual double get_vtx_y () const
 
virtual double get_vtx_z () const
 
virtual double get_t0 () const
 
virtual void Print (const std::string &what="ALL") const
 
virtual void AddParticle (const std::string &particle, const double x, const double y, const double z)
 
virtual void AddParticle (const int pid, const double x, const double y, const double z)
 
virtual void Embed (const int i=1)
 
virtual int ReuseExistingVertex (PHCompositeNode *topNode)
 
int get_reuse_existing_vertex () const
 
void set_reuse_existing_vertex (const int i=1)
 
void set_seed (const unsigned int iseed)
 
unsigned int get_seed () const
 
- Public Member Functions inherited from SubsysReco
virtual ~SubsysReco ()
 
virtual int EndRun (const int)
 Called at the end of each run. More...
 
virtual int Init (PHCompositeNode *)
 
virtual int Reset (PHCompositeNode *)
 Reset. More...
 
virtual int ResetEvent (PHCompositeNode *)
 Clean up after each event. More...
 
- Public Member Functions inherited from Fun4AllBase
virtual ~Fun4AllBase ()
 
virtual const std::string Name () const
 Returns the name of this module. More...
 
virtual void Name (const std::string &name)
 Sets the name of this module. More...
 
virtual void Verbosity (const int ival)
 Sets the verbosity of this module (0 by default=quiet). More...
 
virtual void Verbosity (enu_Verbosity ival)
 Sets the verbosity of this module (0 by default=quiet). More...
 
virtual int Verbosity () const
 Gets the verbosity of this module. More...
 

Additional Inherited Members

- Protected Member Functions inherited from PHG4ParticleGeneratorBase
 PHG4ParticleGeneratorBase (const std::string &name="GENERATORBASE")
 
int get_pdgcode (const std::string &name) const
 
std::string get_pdgname (const int pdgcode) const
 
double get_mass (const int pdgcode) const
 
void CheckAndCreateParticleVector ()
 
void SetParticleId (PHG4Particle *particle, PHG4InEvent *ineve)
 
- Protected Member Functions inherited from SubsysReco
 SubsysReco (const std::string &name="NONAME")
 
- Protected Member Functions inherited from Fun4AllBase
 Fun4AllBase (const std::string &name="NONAME")
 
- Protected Attributes inherited from PHG4ParticleGeneratorBase
int embedflag
 
int reuse_existing_vertex
 
double vtx_x
 
double vtx_y
 
double vtx_z
 
double t0
 
std::vector< PHG4Particle * > particlelist
 
unsigned int seed
 
gsl_rng * RandomGenerator
 
- Protected Attributes inherited from Fun4AllBase
std::string ThisName
 
int verbosity
 The verbosity level. 0 means not verbose at all. More...
 

Detailed Description

Event generator to generate a set of particles under a condition of the vertex and the momentum.

Definition at line 19 of file PHG4SimpleEventGenerator.h.

Member Enumeration Documentation

◆ FUNCTION

supported function distributions

Enumerator
Uniform 
Gaus 

Definition at line 24 of file PHG4SimpleEventGenerator.h.

Constructor & Destructor Documentation

◆ PHG4SimpleEventGenerator()

PHG4SimpleEventGenerator::PHG4SimpleEventGenerator ( const std::string &  name = "EVTGENERATOR")

Definition at line 30 of file PHG4SimpleEventGenerator.cc.

◆ ~PHG4SimpleEventGenerator()

virtual PHG4SimpleEventGenerator::~PHG4SimpleEventGenerator ( )
inlinevirtual

Definition at line 27 of file PHG4SimpleEventGenerator.h.

Member Function Documentation

◆ add_particles() [1/2]

void PHG4SimpleEventGenerator::add_particles ( const int  pid,
const unsigned int  count 
)

interface for adding particle by pid

Definition at line 79 of file PHG4SimpleEventGenerator.cc.

◆ add_particles() [2/2]

void PHG4SimpleEventGenerator::add_particles ( const std::string &  name,
const unsigned int  count 
)

interface for adding particles by name

Definition at line 74 of file PHG4SimpleEventGenerator.cc.

◆ enableLegacyVtxGen()

void PHG4SimpleEventGenerator::enableLegacyVtxGen ( )
inline

Enable legacy vertex gen.

Definition at line 82 of file PHG4SimpleEventGenerator.h.

◆ End()

int PHG4SimpleEventGenerator::End ( PHCompositeNode )
virtual

Called at the end of all processing.

Reimplemented from SubsysReco.

Definition at line 420 of file PHG4SimpleEventGenerator.cc.

References Fun4AllReturnCodes::EVENT_OK, recoConsts::instance(), and PHFlag::set_IntFlag().

+ Here is the call graph for this function:

◆ InitRun()

int PHG4SimpleEventGenerator::InitRun ( PHCompositeNode )
virtual

Called for first event when run number is known. Typically this is where you may want to fetch data from database, because you know the run number.

Reimplemented from PHG4ParticleGeneratorBase.

Definition at line 183 of file PHG4SimpleEventGenerator.cc.

References Fun4AllReturnCodes::ABORTRUN, PHCompositeNode::addNode(), Fun4AllReturnCodes::EVENT_OK, PHNodeIterator::findFirst(), Gaus, PHG4ParticleGeneratorBase::get_pdgname(), PHG4ParticleGeneratorBase::get_reuse_existing_vertex(), PHG4ParticleGeneratorBase::get_seed(), SQPrimaryVertexGen::InitRun(), recoConsts::instance(), Fun4AllBase::Name(), PHWHERE, recoConsts::set_CharFlag(), PHFlag::set_DoubleFlag(), PHFlag::set_IntFlag(), Uniform, and Fun4AllBase::verbosity.

+ Here is the call graph for this function:

◆ process_event()

◆ set_eta_range()

void PHG4SimpleEventGenerator::set_eta_range ( const double  eta_min,
const double  eta_max 
)

range of randomized eta values

Definition at line 89 of file PHG4SimpleEventGenerator.cc.

◆ set_existing_vertex_offset_vector()

void PHG4SimpleEventGenerator::set_existing_vertex_offset_vector ( const double  x,
const double  y,
const double  z 
)

set an offset vector from the existing vertex

Definition at line 165 of file PHG4SimpleEventGenerator.cc.

◆ set_p_range()

void PHG4SimpleEventGenerator::set_p_range ( const double  p_min,
const double  p_max,
const double  p_gaus_width = 0 
)

range of randomized p values

Parameters
[in]p_gaus_widthif non-zero, further apply a Gauss smearing to the p_min - p_max flat distribution

Definition at line 128 of file PHG4SimpleEventGenerator.cc.

◆ set_phi_range()

void PHG4SimpleEventGenerator::set_phi_range ( const double  phi_min,
const double  phi_max 
)

range of randomized phi values

Definition at line 100 of file PHG4SimpleEventGenerator.cc.

◆ set_pt_range()

void PHG4SimpleEventGenerator::set_pt_range ( const double  pt_min,
const double  pt_max,
const double  pt_gaus_width = 0 
)

range of randomized pt values

Parameters
[in]pt_gaus_widthif non-zero, further apply a Gauss smearing to the pt_min - pt_max flat distribution

Definition at line 111 of file PHG4SimpleEventGenerator.cc.

◆ set_pxpypz_range()

void PHG4SimpleEventGenerator::set_pxpypz_range ( const double  x_min,
const double  x_max,
const double  y_min,
const double  y_max,
const double  z_min,
const double  z_max 
)

Definition at line 428 of file PHG4SimpleEventGenerator.cc.

◆ set_t0()

void PHG4SimpleEventGenerator::set_t0 ( const double  t0)
virtual

set the starting time for the event

Reimplemented from PHG4ParticleGeneratorBase.

Definition at line 84 of file PHG4SimpleEventGenerator.cc.

References PHG4ParticleGeneratorBase::t0.

◆ set_vertex_distribution_function()

void PHG4SimpleEventGenerator::set_vertex_distribution_function ( FUNCTION  x,
FUNCTION  y,
FUNCTION  z 
)

toss a new vertex according to a Uniform or Gaus distribution

Definition at line 144 of file PHG4SimpleEventGenerator.cc.

◆ set_vertex_distribution_mean()

void PHG4SimpleEventGenerator::set_vertex_distribution_mean ( const double  x,
const double  y,
const double  z 
)

set the mean value of the vertex distribution

Definition at line 151 of file PHG4SimpleEventGenerator.cc.

◆ set_vertex_distribution_width()

void PHG4SimpleEventGenerator::set_vertex_distribution_width ( const double  x,
const double  y,
const double  z 
)

set the width of the vertex distribution function about the mean

Definition at line 158 of file PHG4SimpleEventGenerator.cc.

◆ set_vertex_size_function()

void PHG4SimpleEventGenerator::set_vertex_size_function ( FUNCTION  r)

set the distribution function of particles about the vertex

Definition at line 172 of file PHG4SimpleEventGenerator.cc.

◆ set_vertex_size_parameters()

void PHG4SimpleEventGenerator::set_vertex_size_parameters ( const double  mean,
const double  width 
)

set the dimensions of the distribution of particles about the vertex

Definition at line 177 of file PHG4SimpleEventGenerator.cc.


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