10 #include "CLHEP/Random/RandomEngine.h" 12 #include <HepMC/GenCrossSection.h> 13 #include <HepMC/GenEvent.h> 14 #include <HepMC/GenVertex.h> 15 #include <HepMC/GenParticle.h> 16 #include <HepMC/HeavyIon.h> 17 #include <HepMC/PdfInfo.h> 18 #include <HepMC/Units.h> 59 m_BeamMomentum(
pset.getParameter<double>(
"beammomentum")),
60 m_TargetMomentum(
pset.getParameter<double>(
"targetmomentum")),
61 m_BeamID(
pset.getParameter<
int>(
"beamid")),
62 m_TargetID(
pset.getParameter<
int>(
"targetid")),
63 m_HEModel(
pset.getParameter<
int>(
"model")),
64 m_bMin(
pset.getParameter<double>(
"bmin")),
65 m_bMax(
pset.getParameter<double>(
"bmax")),
66 m_ParamFileName(
pset.getUntrackedParameter<
string>(
"paramFileName")),
67 m_SkipNuclFrag(
pset.getParameter<
bool>(
"skipNuclFrag")),
70 m_ImpactParameter(0.),
71 m_IsInitialized(
false) {
76 char dummyName[] =
"dummy";
107 int iout = 0, ievent = 0;
119 LogDebug(
"ReggeGribovPartonMCInterface") <<
"event generated" << endl;
132 switch (
int(
c2evt_.typevt))
161 LogDebug(
"ReggeGribovPartonMCInterface") <<
"Signal ID not recognised for setting HEPEVT" << endl;
163 evt->set_signal_process_id(sig_id);
165 #ifdef HEPMC_HAS_CROSS_SECTION 167 HepMC::GenCrossSection theCrossSection;
168 theCrossSection.set_cross_section(
double(
hadr5_.sigineaa) * 1e9);
169 evt->set_cross_section(theCrossSection);
174 HepMC::HeavyIon ion(
cevt_.kohevt,
187 evt->set_heavy_ion(ion);
223 string path_fnii(
FileInPath(
"GeneratorInterface/ReggeGribovPartonMCInterface/data/epos.initl").
fullPath());
224 string path_fnie(
FileInPath(
"GeneratorInterface/ReggeGribovPartonMCInterface/data/epos.iniev").
fullPath());
225 string path_fnrj(
FileInPath(
"GeneratorInterface/ReggeGribovPartonMCInterface/data/epos.inirj").
fullPath());
226 string path_fncs(
FileInPath(
"GeneratorInterface/ReggeGribovPartonMCInterface/data/epos.inics").
fullPath());
228 if (path_fnii.length() >= 500)
229 LogError(
"ReggeGribovPartonMCInterface") <<
"table path too long" << endl;
231 nfname_.nfnii = path_fnii.length();
232 if (path_fnie.length() >= 500)
233 LogError(
"ReggeGribovPartonMCInterface") <<
"table path too long" << endl;
235 nfname_.nfnie = path_fnie.length();
236 if (path_fnrj.length() >= 500)
237 LogError(
"ReggeGribovPartonMCInterface") <<
"table path too long" << endl;
239 nfname_.nfnrj = path_fnrj.length();
240 if (path_fncs.length() >= 500)
241 LogError(
"ReggeGribovPartonMCInterface") <<
"table path too long" << endl;
243 nfname_.nfncs = path_fncs.length();
245 strcpy(
fname_.fnii, path_fnii.c_str());
246 strcpy(
fname_.fnie, path_fnie.c_str());
247 strcpy(
fname_.fnrj, path_fnrj.c_str());
248 strcpy(
fname_.fncs, path_fncs.c_str());
251 string path_fndat(
FileInPath(
"GeneratorInterface/ReggeGribovPartonMCInterface/data/qgsjet.dat").
fullPath());
252 string path_fnncs(
FileInPath(
"GeneratorInterface/ReggeGribovPartonMCInterface/data/qgsjet.ncs").
fullPath());
254 if (path_fndat.length() >= 500)
255 LogError(
"ReggeGribovPartonMCInterface") <<
"table path too long" << endl;
258 if (path_fnncs.length() >= 500)
259 LogError(
"ReggeGribovPartonMCInterface") <<
"table path too long" << endl;
263 strcpy(
qgsfname_.fndat, path_fndat.c_str());
264 strcpy(
qgsfname_.fnncs, path_fnncs.c_str());
270 string path_fniidat(
FileInPath(
"GeneratorInterface/ReggeGribovPartonMCInterface/data/qgsdat-II-04.lzma").
fullPath());
271 string path_fniincs(
FileInPath(
"GeneratorInterface/ReggeGribovPartonMCInterface/data/sectnu-II-04").
fullPath());
273 if (path_fniidat.length() >= 500)
274 LogError(
"ReggeGribovPartonMCInterface") <<
"table path too long" << endl;
277 if (path_fniincs.length() >= 500)
278 LogError(
"ReggeGribovPartonMCInterface") <<
"table path too long" << endl;
void set_skip_nuclear_fragments(bool b=true)
!!MODIFICATION
const char * classname() const
edm::FileInPath m_ParamFileName
double m_PartEnergy[99990]
~ReggeGribovPartonMCHadronizer() override
Log< level::Error, false > LogError
void crmc_f_(int &, int &, int &, double &, int &, double &, double &, double &, double &, double &, int &)
bool declareStableParticles(const std::vector< int > &)
bool initializeForInternalPartons()
bool generatePartonsAndHadronize()
std::unique_ptr< HepMC::GenEvent > & event()
void set_trust_beam_particles(bool b=true)
void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
static CLHEP::HepRandomEngine * reggeGribovRandomEngine
const std::string & fullPath() const
void crmc_set_f_(int &, int &, double &, double &, int &, int &, int &, int &, int &, const char *, const char *)
bool initializeTablePaths()