CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes | Static Private Attributes | Friends
gen::Pythia6Service Class Reference

#include <Pythia6Service.h>

Inheritance diagram for gen::Pythia6Service:
gen::FortranInstance gen::Pythia6ServiceWithCallback gen::Pythia6ServiceWithCallback myPythia6ServiceWithCallback

Public Member Functions

void closePYUPDA ()
 
void closeSLHA ()
 
virtual void enter ()
 
void openPYUPDA (const char *, bool write_file)
 
void openSLHA (const char *)
 
 Pythia6Service ()
 
 Pythia6Service (edm::ParameterSet const &)
 
CLHEP::HepRandomEngine * randomEngine () const
 
void setCSAParams ()
 
void setGeneralParams ()
 
void setPYUPDAParams (bool afterPyinit)
 
void setRandomEngine (CLHEP::HepRandomEngine *v)
 
void setSLHAFromHeader (const std::vector< std::string > &lines)
 
void setSLHAParams ()
 
 ~Pythia6Service ()
 
- Public Member Functions inherited from gen::FortranInstance
void call (void(&fn)())
 
template<typename T >
T call (T(&fn)())
 
template<typename A >
void call (void(&fn)(A), A a)
 
template<typename T , typename A >
T call (T(&fn)(A), A a)
 
template<typename A1 , typename A2 >
void call (void(&fn)(A1, A2), A1 a1, A2 a2)
 
template<typename T , typename A1 , typename A2 >
T call (T(&fn)(A1, A2), A1 a1, A2 a2)
 
 FortranInstance ()
 
virtual void leave ()
 
virtual void upEvnt ()
 
virtual void upInit ()
 
virtual bool upVeto ()
 
virtual ~FortranInstance ()
 

Private Attributes

bool fInitialising
 
std::vector< std::string > fParamCSA
 
std::vector< std::string > fParamGeneral
 
std::vector< std::string > fParamPYUPDA
 
std::vector< std::string > fParamSLHA
 
CLHEP::HepRandomEngine * fRandomEngine
 
int fUnitPYUPDA
 
int fUnitSLHA
 

Static Private Attributes

static Pythia6ServicefPythia6Owner = 0
 

Friends

double gen::pyr_ (int *)
 

Additional Inherited Members

- Static Public Member Functions inherited from gen::FortranInstance
template<typename T >
static TgetInstance ()
 
- Static Public Attributes inherited from gen::FortranInstance
static const std::string kFortranInstance = "FortranInstance"
 

Detailed Description

Definition at line 25 of file Pythia6Service.h.

Constructor & Destructor Documentation

Pythia6Service::Pythia6Service ( )

Definition at line 78 of file Pythia6Service.cc.

79  : fRandomEngine(nullptr), fUnitSLHA(24), fUnitPYUPDA(25)
80 {
81 }
CLHEP::HepRandomEngine * fRandomEngine
Pythia6Service::Pythia6Service ( edm::ParameterSet const &  ps)

Definition at line 83 of file Pythia6Service.cc.

References edm::hlt::Exception, fParamCSA, fParamGeneral, fParamPYUPDA, fParamSLHA, fPythia6Owner, edm::ParameterSet::getParameter(), getDQMSummary::iter, geometryCSVtoXML::line, and groupFilesInBlocks::lines.

84  : fRandomEngine(nullptr), fUnitSLHA(24), fUnitPYUPDA(25)
85 {
86  if (fPythia6Owner)
87  throw cms::Exception("PythiaError") <<
88  "Two Pythia6Service instances claiming Pythia6 ownership." <<
89  std::endl;
90 
91  fPythia6Owner = this;
92 
93 /*
94  ParameterCollector collector(ps.getParameter<edm::ParameterSet>("PythiaParameters"));
95 
96  fParamGeneral.clear();
97  fParamCSA.clear();
98  fParamSLHA.clear();
99 
100  fParamGeneral = std::vector<std::string>(collector.begin(), collector.end());
101  fParamCSA = std::vector<std::string>(collector.begin("CSAParameters"), collector.end());
102  fParamSLHA = std::vector<std::string>(collector.begin("SLHAParameters"), collector.end());
103 */
104 
105 
106  // Set PYTHIA parameters in a single ParameterSet
107  //
108  edm::ParameterSet pythia_params =
109  ps.getParameter<edm::ParameterSet>("PythiaParameters") ;
110 
111  // read and sort Pythia6 cards
112  //
113  std::vector<std::string> setNames =
114  pythia_params.getParameter<std::vector<std::string> >("parameterSets");
115 
116  // std::vector<std::string> paramLines;
117  fParamGeneral.clear();
118  fParamCSA.clear();
119  fParamSLHA.clear();
120  fParamPYUPDA.clear();
121 
122 
123  for(std::vector<std::string>::const_iterator iter = setNames.begin();
124  iter != setNames.end(); ++iter)
125  {
126  std::vector<std::string> lines =
127  pythia_params.getParameter< std::vector<std::string> >(*iter);
128 
129  for(std::vector<std::string>::const_iterator line = lines.begin();
130  line != lines.end(); ++line )
131  {
132  if (line->substr(0, 7) == "MRPY(1)")
133  throw cms::Exception("PythiaError") <<
134  "Attempted to set random number"
135  " using Pythia command 'MRPY(1)'."
136  " Please use the"
137  " RandomNumberGeneratorService." <<
138  std::endl;
139 
140  if ( *iter == "CSAParameters" )
141  {
142  fParamCSA.push_back(*line);
143  }
144  else if ( *iter == "SLHAParameters" )
145  {
146  fParamSLHA.push_back(*line);
147  }
148  else if ( *iter == "PYUPDAParameters" )
149  {
150  fParamPYUPDA.push_back(*line);
151  }
152  else
153  {
154  fParamGeneral.push_back(*line);
155  }
156  }
157  }
158 }
T getParameter(std::string const &) const
std::vector< std::string > fParamPYUPDA
std::vector< std::string > fParamGeneral
static Pythia6Service * fPythia6Owner
CLHEP::HepRandomEngine * fRandomEngine
std::vector< std::string > fParamCSA
std::vector< std::string > fParamSLHA
Pythia6Service::~Pythia6Service ( )

Definition at line 160 of file Pythia6Service.cc.

References fParamCSA, fParamGeneral, fParamPYUPDA, fParamSLHA, and fPythia6Owner.

161 {
162  if (fPythia6Owner == this)
163  fPythia6Owner = 0;
164 
165  fParamGeneral.clear();
166  fParamCSA.clear();
167  fParamSLHA.clear();
168  fParamPYUPDA.clear();
169 }
std::vector< std::string > fParamPYUPDA
std::vector< std::string > fParamGeneral
static Pythia6Service * fPythia6Owner
std::vector< std::string > fParamCSA
std::vector< std::string > fParamSLHA

Member Function Documentation

void Pythia6Service::closePYUPDA ( )

Definition at line 281 of file Pythia6Service.cc.

References fiocls_(), and fUnitPYUPDA.

282 {
283 
285 
286  return;
287 
288 }
void fiocls_(int *unit)
void Pythia6Service::closeSLHA ( )
void Pythia6Service::enter ( )
virtual

Reimplemented from gen::FortranInstance.

Definition at line 171 of file Pythia6Service.cc.

References gen::call_pygive(), gen::FortranInstance::enter(), and fPythia6Owner.

172 {
174 
175  if (!fPythia6Owner) {
176  edm::LogInfo("Generator|Pythia6Interface") <<
177  "gen::Pythia6Service is going to initialise Pythia, as no other "
178  "instace has done so yet, and Pythia service routines have been "
179  "requested by a dummy instance." << std::endl;
180 
181  call_pygive("MSTU(12)=12345");
182  call_pyinit("NONE", "", "", 0.0);
183 
184  fPythia6Owner = this;
185  }
186 }
bool call_pygive(const std::string &line)
virtual void enter()
static Pythia6Service * fPythia6Owner
void Pythia6Service::openPYUPDA ( const char *  file,
bool  write_file 
)

Definition at line 254 of file Pythia6Service.cc.

References call_pyupda(), gather_cfg::cout, fioopn_(), fioopnw_(), and fUnitPYUPDA.

Referenced by setPYUPDAParams().

255 {
256 
257  if (write_file) {
258  std::cout<<"=== WRITING PYUPDA FILE "<<file<<" ==="<<std::endl;
259  fioopnw_( &fUnitPYUPDA, file, strlen(file) );
260  // Write Pythia particle table to this card file.
262  } else {
263  std::cout<<"=== READING PYUPDA FILE "<<file<<" ==="<<std::endl;
264  fioopn_( &fUnitPYUPDA, file, strlen(file) );
265  // Update Pythia particle table with this card file.
267  }
268 
269  return;
270 
271 }
static void call_pyupda(int opt, int iunit)
void fioopn_(int *unit, const char *line, int length)
void fioopnw_(int *unit, const char *line, int length)
tuple cout
Definition: gather_cfg.py:121
void Pythia6Service::openSLHA ( const char *  file)

Definition at line 238 of file Pythia6Service.cc.

References gen::call_pygive(), fioopn_(), and fUnitSLHA.

Referenced by setSLHAFromHeader(), and setSLHAParams().

239 {
240 
241  std::ostringstream pyCard1 ;
242  pyCard1 << "IMSS(21)=" << fUnitSLHA;
243  call_pygive( pyCard1.str() );
244  std::ostringstream pyCard2 ;
245  pyCard2 << "IMSS(22)=" << fUnitSLHA;
246  call_pygive( pyCard2.str() );
247 
248  fioopn_( &fUnitSLHA, file, strlen(file) );
249 
250  return;
251 
252 }
void fioopn_(int *unit, const char *line, int length)
bool call_pygive(const std::string &line)
CLHEP::HepRandomEngine* gen::Pythia6Service::randomEngine ( ) const
inline

Definition at line 47 of file Pythia6Service.h.

References fRandomEngine.

Referenced by gen::Pythia6Gun::produce().

47 { return fRandomEngine; }
CLHEP::HepRandomEngine * fRandomEngine
void Pythia6Service::setCSAParams ( )

Definition at line 204 of file Pythia6Service.cc.

References fParamCSA, i, getDQMSummary::iter, reco_skim_cfg_mod::maxSize, mathSSE::return(), SETCSAPARBUFSIZE, gen::txgive_(), and gen::txgive_init_().

Referenced by gen::Pythia6Gun::beginLuminosityBlock(), gen::Cascade2Hadronizer::initializeForInternalPartons(), gen::Cascade2Hadronizer::readSettings(), gen::PyquenHadronizer::readSettings(), and gen::Pythia6Hadronizer::readSettings().

205 {
206 #define SETCSAPARBUFSIZE 514
207  char buf[SETCSAPARBUFSIZE];
208 
209  txgive_init_();
210  for(std::vector<std::string>::const_iterator iter = fParamCSA.begin();
211  iter != fParamCSA.end(); ++iter)
212  {
213  // Null pad the string should not be needed because it uses
214  // read, which will look for \n, but just in case...
215  for (size_t i = 0; i < SETCSAPARBUFSIZE; ++i)
216  buf[i] = ' ';
217  // Skip empty parameters.
218  if (iter->length() <= 0)
219  continue;
220  // Limit the size of the string to something which fits the buffer.
221  size_t maxSize = iter->length() > (SETCSAPARBUFSIZE-2) ? (SETCSAPARBUFSIZE-2) : iter->length();
222  strncpy(buf, iter->c_str(), maxSize);
223  // Add extra \n if missing, otherwise "read" continues reading.
224  if (buf[maxSize-1] != '\n')
225  {
226  buf[maxSize] = '\n';
227  // Null terminate in case the string is passed back to C.
228  // Not sure that is actually needed.
229  buf[maxSize + 1] = 0;
230  }
231  txgive_(buf, iter->length() );
232  }
233 
234  return ;
235 #undef SETCSAPARBUFSIZE
236 }
int i
Definition: DBlmapReader.cc:9
return((rh^lh)&mask)
tuple maxSize
&#39;/store/data/Commissioning08/BeamHalo/RECO/StuffAlmostToP5_v1/000/061/642/10A0FE34-A67D-DD11-AD05-000...
#define SETCSAPARBUFSIZE
void txgive_init_(void)
std::vector< std::string > fParamCSA
void txgive_(const char *, int)
void Pythia6Service::setGeneralParams ( )

Definition at line 188 of file Pythia6Service.cc.

References gen::call_pygive(), fParamGeneral, getDQMSummary::iter, and mathSSE::return().

Referenced by ParticleReplacerParticleGun::beginJob(), ParticleReplacerZtautau::beginJob(), gen::Pythia6Gun::beginLuminosityBlock(), GenMuonRadiationAlgorithm::compFSR(), gen::Cascade2Hadronizer::initializeForInternalPartons(), gen::Cascade2Hadronizer::readSettings(), gen::PyquenHadronizer::readSettings(), gen::HydjetHadronizer::readSettings(), gen::ExhumeHadronizer::readSettings(), gen::Pythia6Hadronizer::readSettings(), and gen::Hydjet2Hadronizer::readSettings().

189 {
190  // now pass general config cards
191  //
192  for(std::vector<std::string>::const_iterator iter = fParamGeneral.begin();
193  iter != fParamGeneral.end(); ++iter)
194  {
195  if (!call_pygive(*iter))
196  throw cms::Exception("PythiaError")
197  << "Pythia did not accept \""
198  << *iter << "\"." << std::endl;
199  }
200 
201  return ;
202 }
bool call_pygive(const std::string &line)
return((rh^lh)&mask)
std::vector< std::string > fParamGeneral
void Pythia6Service::setPYUPDAParams ( bool  afterPyinit)

Definition at line 331 of file Pythia6Service.cc.

References end, python.connectstrParser::f1, mergeVDriftHistosByStation::file, fParamPYUPDA, edm::FileInPath::fullPath(), getDQMSummary::iter, openPYUPDA(), dqm_diff::start, AlCaHLTBitMon_QueryRunRegistry::string, and groupFilesInBlocks::temp.

Referenced by gen::Pythia6Hadronizer::initializeForExternalPartons(), gen::Cascade2Hadronizer::initializeForInternalPartons(), and gen::Pythia6Hadronizer::initializeForInternalPartons().

332 {
333  std::string shortfile;
334  bool write_file = false;
335  bool usePostPyinit = false;
336 
337  // std::cout<<"=== CALLING setPYUPDAParams === "<<afterPyinit<<" "<<fParamPYUPDA.size()<<std::endl;
338 
339  // This assumes that PYUPDAFILE only appears once ...
340 
341  for (std::vector<std::string>::const_iterator iter = fParamPYUPDA.begin();
342  iter != fParamPYUPDA.end(); iter++ )
343  {
344  // std::cout<<"PYUPDA check "<<*iter<<std::endl;
345  if( iter->find( "PYUPDAFILE", 0 ) != std::string::npos ) {
346  std::string::size_type start = iter->find_first_of( "=" ) + 1;
347  std::string::size_type end = iter->length() - 1;
348  std::string::size_type temp = iter->find_first_of( "'", start );
349  if( temp != std::string::npos ) {
350  start = temp + 1;
351  end = iter->find_last_of( "'" ) - 1;
352  }
353  start = iter->find_first_not_of( " ", start );
354  end = iter->find_last_not_of( " ", end );
355  //std::cout << " start, end = " << start << " " << end << std::endl;
356  shortfile = iter->substr( start, end - start + 1 );
357  } else if ( iter->find( "PYUPDAWRITE", 0 ) != std::string::npos ) {
358  write_file = true;
359  } else if ( iter->find( "PYUPDApostPYINIT", 0 ) != std::string::npos ) {
360  usePostPyinit = true;
361  }
362  }
363 
364  if (!shortfile.empty()) {
366  if (write_file) {
367  file = shortfile;
368  } else {
369  // If reading, get full path to file and require it to exist.
370  FileInPath f1( shortfile );
371  file = f1.fullPath();
372  }
373 
374  if (afterPyinit == usePostPyinit || (write_file && afterPyinit)) {
375  openPYUPDA( file.c_str(), write_file );
376  }
377  }
378 
379  return;
380 }
tuple start
Check for commandline option errors.
Definition: dqm_diff.py:58
uint16_t size_type
std::vector< std::string > fParamPYUPDA
#define end
Definition: vmac.h:37
void openPYUPDA(const char *, bool write_file)
void gen::Pythia6Service::setRandomEngine ( CLHEP::HepRandomEngine *  v)
inline
void Pythia6Service::setSLHAFromHeader ( const std::vector< std::string > &  lines)

Definition at line 382 of file Pythia6Service.cc.

References createPayload::block, gather_cfg::blocks, call_pyslha(), mergeVDriftHistosByStation::file, alignmentValidation::fname, cmsHarvester::index, getDQMSummary::iter, geometryCSVtoXML::line, NULL, openSLHA(), dbtoconf::out, gen::pydat1_, python.multivaluedict::remove(), mathSSE::return(), split, mathSSE::sqrt(), contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, create_public_lumi_plots::transform, estimatePileup_makeJSON::trunc, and relativeConstraints::value.

Referenced by gen::Pythia6Hadronizer::initializeForExternalPartons().

383 {
384 
385  std::set<std::string> blocks;
386  unsigned int model = 0, subModel = 0;
387 
388  const char *fname = std::tmpnam(NULL);
389  std::ofstream file(fname, std::fstream::out | std::fstream::trunc);
391  for(std::vector<std::string>::const_iterator iter = lines.begin();
392  iter != lines.end(); ++iter) {
393  file << *iter;
394 
395  std::string line = *iter;
396  std::transform(line.begin(), line.end(),
397  line.begin(), (int(*)(int))std::toupper);
398  std::string::size_type pos = line.find('#');
399  if (pos != std::string::npos)
400  line.resize(pos);
401 
402  if (line.empty())
403  continue;
404 
405  if (!boost::algorithm::is_space()(line[0])) {
406  std::vector<std::string> tokens;
407  boost::split(tokens, line,
408  boost::algorithm::is_space(),
409  boost::token_compress_on);
410  if (!tokens.size())
411  continue;
412  block.clear();
413  if (tokens.size() < 2)
414  continue;
415  if (tokens[0] == "BLOCK") {
416  block = tokens[1];
417  blocks.insert(block);
418  continue;
419  }
420 
421  if (tokens[0] == "DECAY") {
422  block = "DECAY";
423  blocks.insert(block);
424  }
425  } else if (block == "MODSEL") {
426  std::istringstream ss(line);
427  ss >> model >> subModel;
428  } else if (block == "SMINPUTS") {
429  std::istringstream ss(line);
430  int index;
431  double value;
432  ss >> index >> value;
433  switch(index) {
434  case 1:
435  pydat1_.paru[103 - 1] = 1.0 / value;
436  break;
437  case 2:
438  pydat1_.paru[105 - 1] = value;
439  break;
440  case 4:
441  pydat2_.pmas[0][23 - 1] = value;
442  break;
443  case 6:
444  pydat2_.pmas[0][6 - 1] = value;
445  break;
446  case 7:
447  pydat2_.pmas[0][15 - 1] = value;
448  break;
449  }
450  }
451  }
452  file.close();
453 
454  if (blocks.count("SMINPUTS"))
455  pydat1_.paru[102 - 1] = 0.5 - std::sqrt(0.25 -
456  pydat1_.paru[0] * M_SQRT1_2 *
457  pydat1_.paru[103 - 1] / pydat1_.paru[105 - 1] /
458  (pydat2_.pmas[0][23 - 1] * pydat2_.pmas[0][23 - 1]));
459 
460 /*
461  int unit = 24;
462  fioopn_(&unit, fname, std::strlen(fname));
463  std::remove(fname);
464 
465  call_pygive("IMSS(21)=24");
466  call_pygive("IMSS(22)=24");
467 */
468 
469  openSLHA( fname ) ;
470  std::remove( fname );
471 
472  if (model ||
473  blocks.count("HIGMIX") ||
474  blocks.count("SBOTMIX") ||
475  blocks.count("STOPMIX") ||
476  blocks.count("STAUMIX") ||
477  blocks.count("AMIX") ||
478  blocks.count("NMIX") ||
479  blocks.count("UMIX") ||
480  blocks.count("VMIX"))
481  call_pyslha(1);
482  if (model ||
483  blocks.count("QNUMBERS") ||
484  blocks.count("PARTICLE") ||
485  blocks.count("MINPAR") ||
486  blocks.count("EXTPAR") ||
487  blocks.count("SMINPUTS") ||
488  blocks.count("SMINPUTS"))
489  call_pyslha(0);
490  if (blocks.count("MASS"))
491  call_pyslha(5, 0);
492  if (blocks.count("DECAY"))
493  call_pyslha(2);
494 
495  return ;
496 
497 }
#define NULL
Definition: scimark2.h:8
uint16_t size_type
return((rh^lh)&mask)
T sqrt(T t)
Definition: SSEVec.h:48
static int call_pyslha(int mupda, int kforig=0)
struct gen::@508 pydat1_
tuple out
Definition: dbtoconf.py:99
void openSLHA(const char *)
list blocks
Definition: gather_cfg.py:90
string fname
main script
double split
Definition: MVATrainer.cc:139
void Pythia6Service::setSLHAParams ( )

Definition at line 290 of file Pythia6Service.cc.

References end, python.connectstrParser::f1, mergeVDriftHistosByStation::file, fParamSLHA, edm::FileInPath::fullPath(), getDQMSummary::iter, openSLHA(), dqm_diff::start, AlCaHLTBitMon_QueryRunRegistry::string, and groupFilesInBlocks::temp.

Referenced by gen::Pythia6Gun::beginLuminosityBlock(), gen::Cascade2Hadronizer::initializeForInternalPartons(), gen::Cascade2Hadronizer::readSettings(), and gen::Pythia6Hadronizer::readSettings().

291 {
292  for (std::vector<std::string>::const_iterator iter = fParamSLHA.begin();
293  iter != fParamSLHA.end(); iter++ )
294  {
295 
296  if( iter->find( "SLHAFILE", 0 ) == std::string::npos ) continue;
297  std::string::size_type start = iter->find_first_of( "=" ) + 1;
298  std::string::size_type end = iter->length() - 1;
299  std::string::size_type temp = iter->find_first_of( "'", start );
300  if( temp != std::string::npos ) {
301  start = temp + 1;
302  end = iter->find_last_of( "'" ) - 1;
303  }
304  start = iter->find_first_not_of( " ", start );
305  end = iter->find_last_not_of( " ", end );
306  //std::cout << " start, end = " << start << " " << end << std::endl;
307  std::string shortfile = iter->substr( start, end - start + 1 );
308  FileInPath f1( shortfile );
309  std::string file = f1.fullPath();
310 
311 /*
312  //
313  // override what might have be given via the external config
314  //
315  std::ostringstream pyCard ;
316  pyCard << "IMSS(21)=" << fUnitSLHA;
317  call_pygive( pyCard.str() );
318  pyCard << "IMSS(22)=" << fUnitSLHA;
319  call_pygive( pyCard.str() );
320 
321  fioopn_( &fUnitSLHA, file.c_str(), file.length() );
322 */
323 
324  openSLHA( file.c_str() );
325 
326  }
327 
328  return;
329 }
tuple start
Check for commandline option errors.
Definition: dqm_diff.py:58
uint16_t size_type
#define end
Definition: vmac.h:37
void openSLHA(const char *)
std::vector< std::string > fParamSLHA

Friends And Related Function Documentation

double gen::pyr_ ( int *  )
friend

Member Data Documentation

bool gen::Pythia6Service::fInitialising
private

Definition at line 53 of file Pythia6Service.h.

std::vector<std::string> gen::Pythia6Service::fParamCSA
private

Definition at line 58 of file Pythia6Service.h.

Referenced by Pythia6Service(), setCSAParams(), and ~Pythia6Service().

std::vector<std::string> gen::Pythia6Service::fParamGeneral
private

Definition at line 57 of file Pythia6Service.h.

Referenced by Pythia6Service(), setGeneralParams(), and ~Pythia6Service().

std::vector<std::string> gen::Pythia6Service::fParamPYUPDA
private

Definition at line 60 of file Pythia6Service.h.

Referenced by Pythia6Service(), setPYUPDAParams(), and ~Pythia6Service().

std::vector<std::string> gen::Pythia6Service::fParamSLHA
private

Definition at line 59 of file Pythia6Service.h.

Referenced by Pythia6Service(), setSLHAParams(), and ~Pythia6Service().

Pythia6Service * Pythia6Service::fPythia6Owner = 0
staticprivate

Definition at line 64 of file Pythia6Service.h.

Referenced by enter(), Pythia6Service(), and ~Pythia6Service().

CLHEP::HepRandomEngine* gen::Pythia6Service::fRandomEngine
private

Definition at line 55 of file Pythia6Service.h.

Referenced by gen::pyr_(), randomEngine(), and setRandomEngine().

int gen::Pythia6Service::fUnitPYUPDA
private

Definition at line 62 of file Pythia6Service.h.

Referenced by closePYUPDA(), and openPYUPDA().

int gen::Pythia6Service::fUnitSLHA
private

Definition at line 61 of file Pythia6Service.h.

Referenced by closeSLHA(), and openSLHA().