7 #ifndef __SQPrimaryParticleGen_H__
8 #define __SQPrimaryParticleGen_H__
11 #include <Pythia8/Pythia.h>
13 #include <LHAPDF/LHAPDF.h>
15 #include <gsl/gsl_rng.h>
20 #include <TGenPhaseSpace.h>
64 int generateJPsi(
const TVector3& vtx,
const double pARatio,
double luminosity);
65 int generatePsip(
const TVector3& vtx,
const double pARatio,
double luminosity);
83 void set_pdfset(
const std::string name) { _pdfset = name; }
93 if (cfg_file) _configFile = cfg_file;
107 double CrossSectionDrellYan(
const double mass,
const double xF,
const double x1,
const double x2,
const double pARatio);
128 Pythia8::Pythia ppGen;
129 Pythia8::Pythia pnGen;
130 Pythia8::Pythia _Pythia;
132 std::string _configFile;
133 int read_config(
const char *cfg_file = 0);
136 TGenPhaseSpace phaseGen;
149 double massMin = 0.22;
150 double massMax = 10.;
157 double cosThetaMin = -1.;
158 double cosThetaMax = 1. ;
159 double zOffsetMin = -1.;
160 double zOffsetMax = 1.;
162 void InsertMuonPair(
const TVector3& vtx);
163 void InsertEventInfo(
const double xsec,
const double weight,
const TVector3& vtx);
165 double _n_gen_acc_evt;
An SQ interface class to hold a list of SQDimuon objects.
An SQ interface class to hold one true or reconstructed dimuon.
An SQ interface class to hold one event header.
An SQ interface class to hold one simulated-event header.
Physics generator imported from E906 software.
void set_pT0DY(const double val)
int InitRun(PHCompositeNode *topNode)
int process_event(PHCompositeNode *topNode)
double CrossSectionDrellYan(const double mass, const double xF, const double x1, const double x2, const double pARatio)
void set_xfRange(const double xmin, const double xmax)
void set_massRange(const double mmin, const double mmax)
void set_pdfset(const std::string name)
bool generateDimuon(double mass, double xF)
Dimuon phase space generator.
void set_pTpowDY(const double val)
int generateJPsi(const TVector3 &vtx, const double pARatio, double luminosity)
SQPrimaryParticleGen(const std::string &name="PrimaryGen")
void set_pTpowJPsi(const double val)
void set_pT0JPsi(const double val)
int generateDrellYan(const TVector3 &vtx, const double pARatio, double luminosity)
Various generators.
int Init(PHCompositeNode *topNode)
int generatePsip(const TVector3 &vtx, const double pARatio, double luminosity)
void set_config_file(const char *cfg_file)
config file for pythia
int generatePythia(const TVector3 &vtx, const double pARatio)
virtual ~SQPrimaryParticleGen()
double CrossSectionDrellYan(const double mass, const double xF, const double pARatio)
int End(PHCompositeNode *topNode)
Called at the end of all processing.
double CrossSectionJPsi(const double xF)
void enableCustomDimuon()
double CrossSectionPsip(const double xF)
Class to generate the event vertex, based on the beam profile and the target+spectrometer materials g...