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>
79 int generateJPsi(
const TVector3& vtx,
const double pARatio,
double luminosity);
80 int generatePsip(
const TVector3& vtx,
const double pARatio,
double luminosity);
98 void set_pdfset(
const std::string name) { _pdfset = name; }
108 if (cfg_file) _configFile = cfg_file;
122 double CrossSectionDrellYan(
const double mass,
const double xF,
const double x1,
const double x2,
const double pARatio);
139 Pythia8::Pythia ppGen;
140 Pythia8::Pythia pnGen;
141 Pythia8::Pythia _Pythia;
143 std::string _configFile;
144 int read_config(
const char *cfg_file = 0);
147 TGenPhaseSpace phaseGen;
160 double massMin = 0.22;
161 double massMax = 10.;
168 double cosThetaMin = -1.;
169 double cosThetaMax = 1. ;
170 double zOffsetMin = -1.;
171 double zOffsetMax = 1.;
173 void InsertMuonPair(
const TVector3& vtx);
174 void InsertEventInfo(
const double xsec,
const double weight,
const TVector3& vtx);
176 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...