@@ -150,8 +150,8 @@ class Pythia8Hadronizer : public Py8InterfaceBase {
150150 std::string LHEInputFileName;
151151 std::shared_ptr<LHAupLesHouches> lhaUP;
152152
153- enum { PP, PPbar, ElectronPositron };
154- int fInitialState ; // pp, ppbar, or e-e+
153+ enum { PP, PPbar, ElectronPositron, HeavyIons };
154+ int fInitialState ; // pp, ppbar, e-e+ or HI
155155
156156 double fBeam1PZ ;
157157 double fBeam2PZ ;
@@ -255,6 +255,15 @@ Pythia8Hadronizer::Pythia8Hadronizer(const edm::ParameterSet ¶ms)
255255 } else {
256256 // probably need to throw on attempt to override ?
257257 }
258+ } else if (params.exists (" HeavyIonInitialState" )) {
259+ if (fInitialState == PP) {
260+ fInitialState = HeavyIons;
261+ edm::LogInfo (" GeneratorInterface|Pythia8Interface" )
262+ << " Pythia8 will be initialized for HEAVY ION collisions. "
263+ << " This is a user-request change from the DEFAULT PROTON-PROTON initial state." ;
264+ } else {
265+ // probably need to throw on attempt to override ?
266+ }
258267 } else if (params.exists (" ElectronProtonInitialState" ) || params.exists (" PositronProtonInitialState" )) {
259268 // throw on unknown initial state !
260269 throw edm::Exception (edm::errors::Configuration, " Pythia8Interface" )
@@ -409,10 +418,12 @@ bool Pythia8Hadronizer::initializeForInternalPartons() {
409418 } else if (fInitialState == ElectronPositron) {
410419 fMasterGen ->settings .mode (" Beams:idA" , 11 );
411420 fMasterGen ->settings .mode (" Beams:idB" , -11 );
421+ } else if (fInitialState == HeavyIons) {
422+ // let user to set up the beam particles
412423 } else {
413424 // throw on unknown initial state !
414425 throw edm::Exception (edm::errors::Configuration, " Pythia8Interface" )
415- << " UNKNOWN INITIAL STATE. \n The allowed initial states are: PP, PPbar, ElectronPositron \n " ;
426+ << " UNKNOWN INITIAL STATE. \n The allowed initial states are: PP, PPbar, ElectronPositron, HeavyIons \n " ;
416427 }
417428 fMasterGen ->settings .parm (" Beams:eCM" , comEnergy);
418429 } else {
0 commit comments