![]() |
![]() |
#include <ReggeGribovPartonMC.h>
Definition at line 22 of file ReggeGribovPartonMC.h.
ReggeGribovPartonMCHadronizer::ReggeGribovPartonMCHadronizer | ( | const edm::ParameterSet & | pset | ) |
Definition at line 55 of file ReggeGribovPartonMCHadronizer.cc.
References crmc_init_f_(), crmc_set_f_(), Exception, edm::FileInPath::fullPath(), gFlatDistribution_, initializeTablePaths(), edm::Service< T >::isAvailable(), m_BeamID, m_BeamMomentum, m_bMax, m_bMin, m_HEModel, m_ParamFileName, m_TargetID, m_TargetMomentum, and nucl2_.
: BaseHadronizer(pset), pset_(pset), m_BeamMomentum(pset.getParameter<double>("beammomentum")), m_TargetMomentum(pset.getParameter<double>("targetmomentum")), m_BeamID(pset.getParameter<int>("beamid")), m_TargetID(pset.getParameter<int>("targetid")), m_HEModel(pset.getParameter<int>("model")), m_bMin(pset.getParameter<double>("bmin")), m_bMax(pset.getParameter<double>("bmax")), m_ParamFileName(pset.getUntrackedParameter<string>("paramFileName")), m_NEvent(0), m_ImpactParameter(0.) { Service<RandomNumberGenerator> rng; if ( ! rng.isAvailable()) { throw cms::Exception("Configuration") << "ReggeGribovPartonMCHadronizer requires the RandomNumberGeneratorService\n" "which is not present in the configuration file. You must add the service\n" "in the configuration file or remove the modules that require it."; } gFlatDistribution_.reset(new CLHEP::RandFlat(rng->getEngine(), 0., 1.)); int nevet = 1; //needed for CS int noTables = 0; //don't calculate tables int LHEoutput = 0; //no lhe int dummySeed = 123; char dummyName[] = "dummy"; crmc_set_f_(nevet,dummySeed,m_BeamMomentum,m_TargetMomentum,m_BeamID, m_TargetID,m_HEModel,noTables,LHEoutput,dummyName, m_ParamFileName.fullPath().c_str()); //additionally initialise tables initializeTablePaths(); //change impact paramter nucl2_.bminim = float(m_bMin); nucl2_.bmaxim = float(m_bMax); //use set parameters to init models crmc_init_f_(); }
ReggeGribovPartonMCHadronizer::~ReggeGribovPartonMCHadronizer | ( | ) | [virtual] |
Definition at line 102 of file ReggeGribovPartonMCHadronizer.cc.
References gFlatDistribution_.
{ // destructor gFlatDistribution_.reset(); }
gen::ReggeGribovPartonMCHadronizer::ReggeGribovPartonMCHadronizer | ( | const edm::ParameterSet & | ) |
virtual gen::ReggeGribovPartonMCHadronizer::~ReggeGribovPartonMCHadronizer | ( | ) | [virtual] |
const char * ReggeGribovPartonMCHadronizer::classname | ( | ) | const |
Definition at line 209 of file ReggeGribovPartonMCHadronizer.cc.
{ return "gen::ReggeGribovPartonMCHadronizer"; }
bool ReggeGribovPartonMCHadronizer::decay | ( | ) |
Definition at line 191 of file ReggeGribovPartonMCHadronizer.cc.
{ return true; }
bool gen::ReggeGribovPartonMCHadronizer::declareSpecialSettings | ( | const std::vector< std::string > | ) | [inline] |
Definition at line 200 of file ReggeGribovPartonMCHadronizer.h.
{ return true; }
bool ReggeGribovPartonMCHadronizer::declareStableParticles | ( | const std::vector< int > | ) |
Definition at line 214 of file ReggeGribovPartonMCHadronizer.cc.
{ return true; }
void ReggeGribovPartonMCHadronizer::finalizeEvent | ( | ) |
Definition at line 201 of file ReggeGribovPartonMCHadronizer.cc.
{
return;
}
bool ReggeGribovPartonMCHadronizer::generatePartonsAndHadronize | ( | ) |
Definition at line 109 of file ReggeGribovPartonMCHadronizer.cc.
References c2evt_, cevt_, crmc_f_(), alignCSCRings::e, gen::BaseHadronizer::event(), configurableAnalysis::GenParticle, hadr5_, i, LogDebug, m_BeamID, m_ImpactParameter, m_NEvent, m_NParticles, m_PartEnergy, m_PartID, m_PartMass, m_PartPx, m_PartPy, m_PartPz, m_PartStatus, m_TargetID, gen::p, and mathSSE::sqrt().
{ int iout=0,ievent=0; crmc_f_(iout,ievent,m_NParticles,m_ImpactParameter, m_PartID[0],m_PartPx[0],m_PartPy[0],m_PartPz[0], m_PartEnergy[0],m_PartMass[0],m_PartStatus[0]); LogDebug("ReggeGribovPartonMCInterface") << "event generated" << endl; HepMC::GenEvent* evt = new HepMC::GenEvent(); evt->set_event_number(m_NEvent++); int sig_id = -1; switch (int(c2evt_.typevt)) // if negative typevt mini plasma was created by event (except -4) { case 1: sig_id = 101; break; case -1: sig_id = 101; break; case 2: sig_id = 105; break; case -2: sig_id = 105; break; case 3: sig_id = 102; break; case -3: sig_id = 102; break; case 4: sig_id = 103; break; case -4: sig_id = 104; break; default: LogDebug("ReggeGribovPartonMCInterface") << "Signal ID not recognised for setting HEPEVT" << endl; } evt->set_signal_process_id(sig_id); //an integer ID uniquely specifying the signal process (i.e. MSUB in Pythia) //create event structure; HepMC::GenVertex* theVertex = new HepMC::GenVertex(); evt->add_vertex(theVertex); //number of beam particles for(int i = 0; i < m_NParticles; i++) { //consistency check const double e2 = m_PartEnergy[i] * m_PartEnergy[i]; const double pc2 = m_PartPy[i]*m_PartPy[i] + m_PartPx[i]*m_PartPx[i] + m_PartPz[i]*m_PartPz[i]; if (e2 + 1e-9 < pc2 ) LogWarning("ReggeGribovPartonMCInterface") << "momentum off Id:" << m_PartID[i] << "(" << i << ") " << sqrt(fabs(e2 - pc2)) << endl; //add particle. do not delete. not stored as a copy HepMC::GenParticle* p = new HepMC::GenParticle(HepMC::FourVector(m_PartPx[i], m_PartPy[i], m_PartPz[i], m_PartEnergy[i]), m_PartID[i], m_PartStatus[i]); theVertex->add_particle_out(p); } if (m_TargetID + m_BeamID > 2) //other than pp { HepMC::HeavyIon ion(-1, //cevt_.koievt, // FIXME // Number of hard scatterings cevt_.npjevt, // Number of projectile participants cevt_.ntgevt, // Number of target participants cevt_.kolevt, // Number of NN (nucleon-nucleon) collisions cevt_.npnevt + cevt_.ntnevt, // Number of spectator neutrons cevt_.nppevt + cevt_.ntpevt, // Number of spectator protons -1, //c2evt_.ng1evt, //FIXME // Number of N-Nwounded collisions -1, //c2evt_.ng2evt, //FIXME // Number of Nwounded-N collisons -1, //c2evt_.ikoevt, //FIXME // Number of Nwounded-Nwounded collisions cevt_.bimevt, // Impact Parameter(fm) of collision cevt_.phievt, // Azimuthal angle of event plane c2evt_.fglevt, // eccentricity of participating nucleons hadr5_.sigineaa); // nucleon-nucleon inelastic evt->set_heavy_ion(ion); } LogDebug("ReggeGribovPartonMCInterface") << "HepEvt and vertex constructed" << endl; //evt->print(); event().reset(evt); return true; }
bool ReggeGribovPartonMCHadronizer::hadronize | ( | ) |
Definition at line 186 of file ReggeGribovPartonMCHadronizer.cc.
{ return false; }
bool gen::ReggeGribovPartonMCHadronizer::initializeForExternalPartons | ( | ) | [inline] |
Definition at line 197 of file ReggeGribovPartonMCHadronizer.h.
{ return true; }
bool ReggeGribovPartonMCHadronizer::initializeForInternalPartons | ( | ) |
Definition at line 219 of file ReggeGribovPartonMCHadronizer.cc.
{ return true; }
bool ReggeGribovPartonMCHadronizer::initializeTablePaths | ( | ) |
Definition at line 224 of file ReggeGribovPartonMCHadronizer.cc.
References fname_, nfname_, qgsfname_, qgsiifname_, qgsiinfname_, and qgsnfname_.
Referenced by ReggeGribovPartonMCHadronizer().
{ //epos string path_fnii(FileInPath("GeneratorInterface/ReggeGribovPartonMCInterface/data/epos.initl").fullPath()); string path_fnie(FileInPath("GeneratorInterface/ReggeGribovPartonMCInterface/data/epos.iniev").fullPath()); string path_fnrj(FileInPath("GeneratorInterface/ReggeGribovPartonMCInterface/data/epos.inirj").fullPath()); string path_fncs(FileInPath("GeneratorInterface/ReggeGribovPartonMCInterface/data/epos.inics").fullPath()); if (path_fnii.length() >= 500) LogError("ReggeGribovPartonMCInterface") << "table path too long" << endl; else nfname_.nfnii = path_fnii.length(); if (path_fnie.length() >= 500) LogError("ReggeGribovPartonMCInterface") << "table path too long" << endl; else nfname_.nfnie = path_fnie.length(); if (path_fnrj.length() >= 500) LogError("ReggeGribovPartonMCInterface") << "table path too long" << endl; else nfname_.nfnrj = path_fnrj.length(); if (path_fncs.length() >= 500) LogError("ReggeGribovPartonMCInterface") << "table path too long" << endl; else nfname_.nfncs = path_fncs.length(); strcpy(fname_.fnii, path_fnii.c_str()); strcpy(fname_.fnie, path_fnie.c_str()); strcpy(fname_.fnrj, path_fnrj.c_str()); strcpy(fname_.fncs, path_fncs.c_str()); //qgsjet string path_fndat(FileInPath("GeneratorInterface/ReggeGribovPartonMCInterface/data/qgsjet.dat").fullPath()); string path_fnncs(FileInPath("GeneratorInterface/ReggeGribovPartonMCInterface/data/qgsjet.ncs").fullPath()); if (path_fndat.length() >= 500) LogError("ReggeGribovPartonMCInterface") << "table path too long" << endl; else qgsnfname_.nfndat = path_fndat.length(); if (path_fnncs.length() >= 500) LogError("ReggeGribovPartonMCInterface") << "table path too long" << endl; else qgsnfname_.nfnncs = path_fnncs.length(); strcpy(qgsfname_.fndat, path_fndat.c_str()); strcpy(qgsfname_.fnncs, path_fnncs.c_str()); qgsfname_.ifdat=1; //option to overwrite the normal path qgsfname_.ifncs=2; //qgsjetII string path_fniidat(FileInPath("GeneratorInterface/ReggeGribovPartonMCInterface/data/qgsdat-II-04.lzma").fullPath()); string path_fniincs(FileInPath("GeneratorInterface/ReggeGribovPartonMCInterface/data/sectnu-II-04").fullPath()); if (path_fniidat.length() >= 500) LogError("ReggeGribovPartonMCInterface") << "table path too long" << endl; else qgsiinfname_.nfniidat = path_fniidat.length(); if (path_fniincs.length() >= 500) LogError("ReggeGribovPartonMCInterface") << "table path too long" << endl; else qgsiinfname_.nfniincs = path_fniincs.length(); strcpy(qgsiifname_.fniidat, path_fniidat.c_str()); strcpy(qgsiifname_.fniincs, path_fniincs.c_str()); qgsiifname_.ifiidat=1; //option to overwrite the normal path qgsiifname_.ifiincs=2; return true; }
bool gen::ReggeGribovPartonMCHadronizer::readSettings | ( | int | ) | [inline] |
Definition at line 196 of file ReggeGribovPartonMCHadronizer.h.
{ return true; }
bool ReggeGribovPartonMCHadronizer::residualDecay | ( | ) |
Definition at line 196 of file ReggeGribovPartonMCHadronizer.cc.
{ return true; }
void ReggeGribovPartonMCHadronizer::statistics | ( | ) |
Definition at line 205 of file ReggeGribovPartonMCHadronizer.cc.
{
return;
}
int gen::ReggeGribovPartonMCHadronizer::m_BeamID [private] |
Definition at line 211 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize(), and ReggeGribovPartonMCHadronizer().
double gen::ReggeGribovPartonMCHadronizer::m_BeamMomentum [private] |
Definition at line 209 of file ReggeGribovPartonMCHadronizer.h.
Referenced by ReggeGribovPartonMCHadronizer().
double gen::ReggeGribovPartonMCHadronizer::m_bMax [private] |
Definition at line 215 of file ReggeGribovPartonMCHadronizer.h.
Referenced by ReggeGribovPartonMCHadronizer().
double gen::ReggeGribovPartonMCHadronizer::m_bMin [private] |
Definition at line 214 of file ReggeGribovPartonMCHadronizer.h.
Referenced by ReggeGribovPartonMCHadronizer().
int gen::ReggeGribovPartonMCHadronizer::m_HEModel [private] |
Definition at line 213 of file ReggeGribovPartonMCHadronizer.h.
Referenced by ReggeGribovPartonMCHadronizer().
double gen::ReggeGribovPartonMCHadronizer::m_ImpactParameter [private] |
Definition at line 220 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
int gen::ReggeGribovPartonMCHadronizer::m_NEvent [private] |
Definition at line 217 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
int gen::ReggeGribovPartonMCHadronizer::m_NParticles [private] |
Definition at line 219 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
Definition at line 216 of file ReggeGribovPartonMCHadronizer.h.
Referenced by ReggeGribovPartonMCHadronizer().
double gen::ReggeGribovPartonMCHadronizer::m_PartEnergy[99990] [private] |
Definition at line 225 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
int gen::ReggeGribovPartonMCHadronizer::m_PartID[99990] [private] |
Definition at line 221 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
double gen::ReggeGribovPartonMCHadronizer::m_PartMass[99990] [private] |
Definition at line 226 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
double gen::ReggeGribovPartonMCHadronizer::m_PartPx[99990] [private] |
Definition at line 222 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
double gen::ReggeGribovPartonMCHadronizer::m_PartPy[99990] [private] |
Definition at line 223 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
double gen::ReggeGribovPartonMCHadronizer::m_PartPz[99990] [private] |
Definition at line 224 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
int gen::ReggeGribovPartonMCHadronizer::m_PartStatus[99990] [private] |
Definition at line 227 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize().
int gen::ReggeGribovPartonMCHadronizer::m_TargetID [private] |
Definition at line 212 of file ReggeGribovPartonMCHadronizer.h.
Referenced by generatePartonsAndHadronize(), and ReggeGribovPartonMCHadronizer().
double gen::ReggeGribovPartonMCHadronizer::m_TargetMomentum [private] |
Definition at line 210 of file ReggeGribovPartonMCHadronizer.h.
Referenced by ReggeGribovPartonMCHadronizer().
Definition at line 208 of file ReggeGribovPartonMCHadronizer.h.