Class Reference for E1039 Core & Analysis Software
SQPrimaryParticleGen Class Reference

Physics generator imported from E906 software. More...

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

+ Inheritance diagram for SQPrimaryParticleGen:
+ Collaboration diagram for SQPrimaryParticleGen:

Public Member Functions

 SQPrimaryParticleGen (const std::string &name="PrimaryGen")
 
virtual ~SQPrimaryParticleGen ()
 
int Init (PHCompositeNode *topNode)
 
int InitRun (PHCompositeNode *topNode)
 
int End (PHCompositeNode *topNode)
 Called at the end of all processing. More...
 
int process_event (PHCompositeNode *topNode)
 
int generateDrellYan (const TVector3 &vtx, const double pARatio, double luminosity)
 Various generators. More...
 
int generateJPsi (const TVector3 &vtx, const double pARatio, double luminosity)
 
int generatePsip (const TVector3 &vtx, const double pARatio, double luminosity)
 
int generatePythia (const TVector3 &vtx, const double pARatio)
 
bool generateDimuon (double mass, double xF)
 Dimuon phase space generator. More...
 
void enablePythia ()
 
void enableCustomDimuon ()
 
void enableDrellYanGen ()
 
void enableJPsiGen ()
 
void enablePsipGen ()
 
void set_pdfset (const std::string name)
 
void set_pT0DY (const double val)
 
void set_pTpowDY (const double val)
 
void set_pT0JPsi (const double val)
 
void set_pTpowJPsi (const double val)
 
void set_config_file (const char *cfg_file)
 config file for pythia More...
 
void set_xfRange (const double xmin, const double xmax)
 
void set_massRange (const double mmin, const double mmax)
 
double CrossSectionDrellYan (const double mass, const double xF, const double pARatio)
 
double CrossSectionDrellYan (const double mass, const double xF, const double x1, const double x2, const double pARatio)
 
double CrossSectionJPsi (const double xF)
 
double CrossSectionPsip (const double xF)
 
- 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 void set_t0 (const double t)
 
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 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

- 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
}
 
- 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

Physics generator imported from E906 software.

Each event generated by this generator is given its own weight. The event weight is defined as "cross_section(xF, mass) * beam_luminosity(x, y)". You have to count up events with the event weight multiplied, namely fill events to a histogram using the event weight as the weight of added contents.

This generator creates a data node of PHGenIntegral under the RUN node. The node stores the integrated luminosity etc. You can divide the weighted event count by the integrated luminosity to obtain the cross section (per bin). You can then multiply this cross section by an expected integrated luminosity (of spill, week, year, etc.) to obtain the expected count.

Definition at line 48 of file SQPrimaryParticleGen.h.

Constructor & Destructor Documentation

◆ SQPrimaryParticleGen()

SQPrimaryParticleGen::SQPrimaryParticleGen ( const std::string &  name = "PrimaryGen")

◆ ~SQPrimaryParticleGen()

virtual SQPrimaryParticleGen::~SQPrimaryParticleGen ( )
virtual

Member Function Documentation

◆ CrossSectionDrellYan() [1/2]

double SQPrimaryParticleGen::CrossSectionDrellYan ( const double  mass,
const double  xF,
const double  pARatio 
)

◆ CrossSectionDrellYan() [2/2]

double SQPrimaryParticleGen::CrossSectionDrellYan ( const double  mass,
const double  xF,
const double  x1,
const double  x2,
const double  pARatio 
)

◆ CrossSectionJPsi()

double SQPrimaryParticleGen::CrossSectionJPsi ( const double  xF)

◆ CrossSectionPsip()

double SQPrimaryParticleGen::CrossSectionPsip ( const double  xF)

◆ enableCustomDimuon()

void SQPrimaryParticleGen::enableCustomDimuon ( )
inline

Definition at line 78 of file SQPrimaryParticleGen.h.

◆ enableDrellYanGen()

void SQPrimaryParticleGen::enableDrellYanGen ( )
inline

Definition at line 79 of file SQPrimaryParticleGen.h.

◆ enableJPsiGen()

void SQPrimaryParticleGen::enableJPsiGen ( )
inline

Definition at line 80 of file SQPrimaryParticleGen.h.

◆ enablePsipGen()

void SQPrimaryParticleGen::enablePsipGen ( )
inline

Definition at line 81 of file SQPrimaryParticleGen.h.

◆ enablePythia()

void SQPrimaryParticleGen::enablePythia ( )
inline

Definition at line 77 of file SQPrimaryParticleGen.h.

◆ End()

int SQPrimaryParticleGen::End ( PHCompositeNode )
virtual

Called at the end of all processing.

Reimplemented from SubsysReco.

◆ generateDimuon()

bool SQPrimaryParticleGen::generateDimuon ( double  mass,
double  xF 
)

Dimuon phase space generator.

◆ generateDrellYan()

int SQPrimaryParticleGen::generateDrellYan ( const TVector3 &  vtx,
const double  pARatio,
double  luminosity 
)

Various generators.

◆ generateJPsi()

int SQPrimaryParticleGen::generateJPsi ( const TVector3 &  vtx,
const double  pARatio,
double  luminosity 
)

◆ generatePsip()

int SQPrimaryParticleGen::generatePsip ( const TVector3 &  vtx,
const double  pARatio,
double  luminosity 
)

◆ generatePythia()

int SQPrimaryParticleGen::generatePythia ( const TVector3 &  vtx,
const double  pARatio 
)

◆ Init()

int SQPrimaryParticleGen::Init ( PHCompositeNode )
virtual

Called during initialization, i.e. registered via Fun4AllServer::registerSubsystem(). Typically this is where you can book histograms, and e.g. register them to Fun4AllServer (so they can be output to file using Fun4AllServer::dumpHistos() method).

Reimplemented from SubsysReco.

◆ InitRun()

int SQPrimaryParticleGen::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.

◆ process_event()

int SQPrimaryParticleGen::process_event ( PHCompositeNode )
virtual

Called for each event. This is where you do the real work.

Reimplemented from PHG4ParticleGeneratorBase.

◆ set_config_file()

void SQPrimaryParticleGen::set_config_file ( const char *  cfg_file)
inline

config file for pythia

Definition at line 91 of file SQPrimaryParticleGen.h.

◆ set_massRange()

void SQPrimaryParticleGen::set_massRange ( const double  mmin,
const double  mmax 
)
inline

Definition at line 100 of file SQPrimaryParticleGen.h.

◆ set_pdfset()

void SQPrimaryParticleGen::set_pdfset ( const std::string  name)
inline

Definition at line 83 of file SQPrimaryParticleGen.h.

◆ set_pT0DY()

void SQPrimaryParticleGen::set_pT0DY ( const double  val)
inline

Definition at line 85 of file SQPrimaryParticleGen.h.

◆ set_pT0JPsi()

void SQPrimaryParticleGen::set_pT0JPsi ( const double  val)
inline

Definition at line 87 of file SQPrimaryParticleGen.h.

◆ set_pTpowDY()

void SQPrimaryParticleGen::set_pTpowDY ( const double  val)
inline

Definition at line 86 of file SQPrimaryParticleGen.h.

◆ set_pTpowJPsi()

void SQPrimaryParticleGen::set_pTpowJPsi ( const double  val)
inline

Definition at line 88 of file SQPrimaryParticleGen.h.

◆ set_xfRange()

void SQPrimaryParticleGen::set_xfRange ( const double  xmin,
const double  xmax 
)
inline

Definition at line 96 of file SQPrimaryParticleGen.h.


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