CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
gen::HydjetHadronizer Class Reference

#include <HydjetHadronizer.h>

Inheritance diagram for gen::HydjetHadronizer:
gen::BaseHadronizer

Public Member Functions

const char * classname () const
 
bool decay ()
 
bool declareSpecialSettings (const std::vector< std::string > &)
 
bool declareStableParticles (const std::vector< int > &)
 
void finalizeEvent ()
 
bool generatePartonsAndHadronize ()
 
bool hadronize ()
 
 HydjetHadronizer (const edm::ParameterSet &, edm::ConsumesCollector &&)
 
bool initializeForExternalPartons ()
 
bool initializeForInternalPartons ()
 
bool readSettings (int)
 
bool residualDecay ()
 
void statistics ()
 
 ~HydjetHadronizer () override
 
- Public Member Functions inherited from gen::BaseHadronizer
 BaseHadronizer (edm::ParameterSet const &ps)
 
void cleanLHE ()
 
void generateLHE (edm::LuminosityBlock const &lumi, CLHEP::HepRandomEngine *rengine, unsigned int ncpu)
 
edm::EventgetEDMEvent () const
 
std::unique_ptr< HepMC::GenEventgetGenEvent ()
 
std::unique_ptr< GenEventInfoProductgetGenEventInfo ()
 
virtual std::unique_ptr< GenLumiInfoHeadergetGenLumiInfoHeader () const
 
GenRunInfoProductgetGenRunInfo ()
 
std::unique_ptr< lhef::LHEEventgetLHEEvent ()
 
const std::shared_ptr< lhef::LHERunInfo > & getLHERunInfo () const
 
const std::string & gridpackPath () const
 
int randomIndex () const
 
const std::string & randomInitConfigDescription () const
 
void randomizeIndex (edm::LuminosityBlock const &lumi, CLHEP::HepRandomEngine *rengine)
 
void resetEvent (std::unique_ptr< HepMC::GenEvent > event)
 
void resetEventInfo (std::unique_ptr< GenEventInfoProduct > eventInfo)
 
virtual bool select (HepMC::GenEvent *) const
 
void setEDMEvent (edm::Event &event)
 
void setLHEEvent (std::unique_ptr< lhef::LHEEvent > event)
 
void setLHERunInfo (std::unique_ptr< lhef::LHERunInfo > runInfo)
 
void setRandomEngine (CLHEP::HepRandomEngine *v)
 
std::vector< std::string > const & sharedResources () const
 
virtual ~BaseHadronizer () noexcept(false)
 

Private Member Functions

void add_heavy_ion_rec (HepMC::GenEvent *evt)
 
HepMC::GenParticle * build_hyjet (int index, int barcode)
 
HepMC::GenVertex * build_hyjet_vertex (int i, int id)
 
bool call_hyinit (double energy, double a, int ifb, double bmin, double bmax, double bfix, int nh)
 
void doSetRandomEngine (CLHEP::HepRandomEngine *v) override
 
std::vector< std::string > const & doSharedResources () const override
 
bool get_particles (HepMC::GenEvent *evt)
 
bool hydjet_init (const edm::ParameterSet &pset)
 
double nuclear_radius () const
 
void rotateEvtPlane ()
 

Private Attributes

double abeamtarget_
 beam/target atomic mass number More...
 
int angularspecselector_
 angular emitted gluon spectrum selection More...
 
double bfixed_
 fixed impact param (fm); valid only if cflag_=0 More...
 
double bmax_
 
double bmin_
 
int cflag_
 
double comenergy
 collision energy More...
 
double cosphi0_
 
bool docollisionalenloss_
 DEFAULT = true. More...
 
bool doradiativeenloss_
 DEFAULT = true. More...
 
bool embedding_
 Switch for embedding mode. More...
 
HepMC::GenEventevt
 
double fracsoftmult_
 
HepMC::FourVector * fVertex_
 Event signal vertex. More...
 
double hadfreeztemp_
 
std::string hymode_
 Hydjet running mode. More...
 
unsigned int maxEventsToPrint_
 Events to print if verbosity. More...
 
double maxlongy_
 
double maxtrany_
 
int nhard_
 multiplicity of PYTHIA(+PYQUEN)-induced particles in event More...
 
int nmultiplicity_
 
unsigned int nquarkflavor_
 
int nsoft_
 multiplicity of HYDRO-induced particles in event More...
 
int nsub_
 number of sub-events More...
 
double phi0_
 Event plane angle. More...
 
edm::ParameterSet pset_
 
Pythia6Servicepythia6Service_
 
unsigned int pythiaPylistVerbosity_
 pythia verbosity; def=1 More...
 
double qgpt0_
 
double qgptau0_
 
bool rotate_
 Switch to rotate event plane. More...
 
unsigned int shadowingswitch_
 
std::vector< double > signalVtx_
 Pset double vector to set event signal vertex. More...
 
double signn_
 
double sinphi0_
 
edm::EDGetTokenT< CrossingFrame< edm::HepMCProduct > > src_
 

Static Private Attributes

static const std::vector< std::string > theSharedResources
 

Additional Inherited Members

- Protected Member Functions inherited from gen::BaseHadronizer
std::unique_ptr< HepMC::GenEvent > & event ()
 
std::unique_ptr< GenEventInfoProduct > & eventInfo ()
 
lhef::LHEEventlheEvent ()
 
lhef::LHERunInfolheRunInfo ()
 
GenRunInfoProductrunInfo ()
 
- Protected Attributes inherited from gen::BaseHadronizer
std::string lheFile_
 
int randomIndex_
 

Detailed Description

Definition at line 41 of file HydjetHadronizer.h.

Constructor & Destructor Documentation

◆ HydjetHadronizer()

HydjetHadronizer::HydjetHadronizer ( const edm::ParameterSet pset,
edm::ConsumesCollector &&  iC 
)

Definition at line 59 of file HydjetHadronizer.cc.

61  evt(nullptr),
62  pset_(pset),
63  abeamtarget_(pset.getParameter<double>("aBeamTarget")),
64  angularspecselector_(pset.getParameter<int>("angularSpectrumSelector")),
65  bfixed_(pset.getParameter<double>("bFixed")),
66  bmax_(pset.getParameter<double>("bMax")),
67  bmin_(pset.getParameter<double>("bMin")),
68  cflag_(pset.getParameter<int>("cFlag")),
69  embedding_(pset.getParameter<bool>("embeddingMode")),
70  comenergy(pset.getParameter<double>("comEnergy")),
71  doradiativeenloss_(pset.getParameter<bool>("doRadiativeEnLoss")),
72  docollisionalenloss_(pset.getParameter<bool>("doCollisionalEnLoss")),
73  fracsoftmult_(pset.getParameter<double>("fracSoftMultiplicity")),
74  hadfreeztemp_(pset.getParameter<double>("hadronFreezoutTemperature")),
75  hymode_(pset.getParameter<string>("hydjetMode")),
76  maxEventsToPrint_(pset.getUntrackedParameter<int>("maxEventsToPrint", 1)),
77  maxlongy_(pset.getParameter<double>("maxLongitudinalRapidity")),
78  maxtrany_(pset.getParameter<double>("maxTransverseRapidity")),
79  nsub_(0),
80  nhard_(0),
81  nmultiplicity_(pset.getParameter<int>("nMultiplicity")),
82  nsoft_(0),
83  nquarkflavor_(pset.getParameter<int>("qgpNumQuarkFlavor")),
84  pythiaPylistVerbosity_(pset.getUntrackedParameter<int>("pythiaPylistVerbosity", 0)),
85  qgpt0_(pset.getParameter<double>("qgpInitialTemperature")),
86  qgptau0_(pset.getParameter<double>("qgpProperTimeFormation")),
87  phi0_(0.),
88  sinphi0_(0.),
89  cosphi0_(1.),
90  rotate_(pset.getParameter<bool>("rotateEventPlane")),
91  shadowingswitch_(pset.getParameter<int>("shadowingSwitch")),
92  signn_(pset.getParameter<double>("sigmaInelNN")),
93  fVertex_(nullptr),
95  // Default constructor
96 
97  if (pset.exists("signalVtx"))
98  signalVtx_ = pset.getUntrackedParameter<std::vector<double> >("signalVtx");
99 
100  if (signalVtx_.size() == 4) {
101  if (!fVertex_)
102  fVertex_ = new HepMC::FourVector();
103  LogDebug("EventSignalVertex") << "Setting event signal vertex "
104  << " x = " << signalVtx_.at(0) << " y = " << signalVtx_.at(1)
105  << " z= " << signalVtx_.at(2) << " t = " << signalVtx_.at(3) << endl;
106  fVertex_->set(signalVtx_.at(0), signalVtx_.at(1), signalVtx_.at(2), signalVtx_.at(3));
107  }
108 
109  // PYLIST Verbosity Level
110  // Valid PYLIST arguments are: 1, 2, 3, 5, 7, 11, 12, 13
111  pythiaPylistVerbosity_ = pset.getUntrackedParameter<int>("pythiaPylistVerbosity", 0);
112  LogDebug("PYLISTverbosity") << "Pythia PYLIST verbosity level = " << pythiaPylistVerbosity_;
113 
114  //Max number of events printed on verbosity level
115  maxEventsToPrint_ = pset.getUntrackedParameter<int>("maxEventsToPrint", 0);
116  LogDebug("Events2Print") << "Number of events to be printed = " << maxEventsToPrint_;
117 
118  if (embedding_) {
119  cflag_ = 0;
121  pset.getUntrackedParameter<edm::InputTag>("backgroundLabel", edm::InputTag("mix", "generatorSmeared")));
122  }
123 
124  int cm = 1, va, vb, vc;
125  HYJVER(cm, va, vb, vc);
126  HepMC::HEPEVT_Wrapper::set_max_number_entries(4000);
127 }

References cflag_, embedding_, fVertex_, HYJVER, HLT_FULL_cff::InputTag, LogDebug, maxEventsToPrint_, muonDTDigis_cfi::pset, pythiaPylistVerbosity_, signalVtx_, and src_.

◆ ~HydjetHadronizer()

HydjetHadronizer::~HydjetHadronizer ( )
override

Definition at line 130 of file HydjetHadronizer.cc.

130  {
131  // destructor
132  call_pystat(1);
133  delete pythia6Service_;
134 }

References pythia6Service_.

Member Function Documentation

◆ add_heavy_ion_rec()

void HydjetHadronizer::add_heavy_ion_rec ( HepMC::GenEvent evt)
private

Definition at line 140 of file HydjetHadronizer.cc.

140  {
141  // heavy ion record in the final CMSSW Event
142  double npart = hyfpar.npart;
143  int nproj = static_cast<int>(npart / 2);
144  int ntarg = static_cast<int>(npart - nproj);
145 
146  HepMC::HeavyIon* hi = new HepMC::HeavyIon(nsub_, // Ncoll_hard/N of SubEvents
147  nproj, // Npart_proj
148  ntarg, // Npart_targ
149  static_cast<int>(hyfpar.nbcol), // Ncoll
150  0, // spectator_neutrons
151  0, // spectator_protons
152  0, // N_Nwounded_collisions
153  0, // Nwounded_N_collisions
154  0, // Nwounded_Nwounded_collisions
155  hyfpar.bgen * nuclear_radius(), // impact_parameter in [fm]
156  phi0_, // event_plane_angle
157  0, //hypsi3.psi3, // eccentricity
158  hyjpar.sigin // sigma_inel_NN
159  );
160 
161  evt->set_heavy_ion(*hi);
162  delete hi;
163 }

References evt, hyfpar, hyjpar, npart, nsub_, nuclear_radius(), and phi0_.

Referenced by generatePartonsAndHadronize().

◆ build_hyjet()

HepMC::GenParticle * HydjetHadronizer::build_hyjet ( int  index,
int  barcode 
)
private

Definition at line 166 of file HydjetHadronizer.cc.

166  {
167  // Build particle object corresponding to index in hyjets (soft+hard)
168  double x0 = hyjets.phj[0][index];
169  double y0 = hyjets.phj[1][index];
170 
171  double x = x0 * cosphi0_ - y0 * sinphi0_;
172  double y = y0 * cosphi0_ + x0 * sinphi0_;
173 
174  HepMC::GenParticle* p = new HepMC::GenParticle(HepMC::FourVector(x, // px
175  y, // py
176  hyjets.phj[2][index], // pz
177  hyjets.phj[3][index]), // E
178  hyjets.khj[1][index], // id
179  convertStatus(hyjets.khj[0][index] // status
180  ));
181 
182  p->suggest_barcode(barcode);
183  return p;
184 }

References cosphi0_, GenParticle::GenParticle, hyjets, gen::p, and sinphi0_.

Referenced by get_particles().

◆ build_hyjet_vertex()

HepMC::GenVertex * HydjetHadronizer::build_hyjet_vertex ( int  i,
int  id 
)
private

Definition at line 187 of file HydjetHadronizer.cc.

187  {
188  // build verteces for the hyjets stored events
189  double x0 = hyjets.vhj[0][i];
190  double y0 = hyjets.vhj[1][i];
191  double x = x0 * cosphi0_ - y0 * sinphi0_;
192  double y = y0 * cosphi0_ + x0 * sinphi0_;
193  double z = hyjets.vhj[2][i];
194  double t = hyjets.vhj[4][i];
195 
196  HepMC::GenVertex* vertex = new HepMC::GenVertex(HepMC::FourVector(x, y, z, t), id);
197  return vertex;
198 }

References cosphi0_, hyjets, mps_fire::i, sinphi0_, submitPVValidationJobs::t, and bphysicsOniaDQM_cfi::vertex.

Referenced by get_particles().

◆ call_hyinit()

bool HydjetHadronizer::call_hyinit ( double  energy,
double  a,
int  ifb,
double  bmin,
double  bmax,
double  bfix,
int  nh 
)
private

Definition at line 417 of file HydjetHadronizer.cc.

417  {
418  // initialize hydjet
419 
420  pydatr.mrpy[2] = 1;
421  HYINIT(energy, a, ifb, bmin, bmax, bfix, nh);
422  return true;
423 }

References a, ReggeGribovPartonMC_AdvancedParameters_cfi::bmax, ReggeGribovPartonMC_AdvancedParameters_cfi::bmin, HCALHighEnergyHPDFilter_cfi::energy, HYINIT, and cms::cuda::nh.

Referenced by initializeForInternalPartons().

◆ classname()

const char * HydjetHadronizer::classname ( ) const

Definition at line 558 of file HydjetHadronizer.cc.

558 { return "gen::HydjetHadronizer"; }

◆ decay()

bool HydjetHadronizer::decay ( )

Definition at line 550 of file HydjetHadronizer.cc.

550 { return true; }

◆ declareSpecialSettings()

bool gen::HydjetHadronizer::declareSpecialSettings ( const std::vector< std::string > &  )
inline

Definition at line 54 of file HydjetHadronizer.h.

54 { return true; }

◆ declareStableParticles()

bool HydjetHadronizer::declareStableParticles ( const std::vector< int > &  _pdg)

Definition at line 527 of file HydjetHadronizer.cc.

527  {
528  std::vector<int> pdg = _pdg;
529  for (size_t i = 0; i < pdg.size(); i++) {
530  int pyCode = pycomp_(pdg[i]);
531  std::ostringstream pyCard;
532  pyCard << "MDCY(" << pyCode << ",1)=0";
533  std::cout << pyCard.str() << std::endl;
534  call_pygive(pyCard.str());
535  }
536  return true;
537 }

References gen::call_pygive(), gather_cfg::cout, mps_fire::i, and gen::pycomp_().

◆ doSetRandomEngine()

void HydjetHadronizer::doSetRandomEngine ( CLHEP::HepRandomEngine *  v)
overrideprivatevirtual

Reimplemented from gen::BaseHadronizer.

Definition at line 137 of file HydjetHadronizer.cc.

References pythia6Service_, gen::Pythia6Service::setRandomEngine(), and gen::v.

◆ doSharedResources()

std::vector<std::string> const& gen::HydjetHadronizer::doSharedResources ( ) const
inlineoverrideprivatevirtual

Reimplemented from gen::BaseHadronizer.

Definition at line 62 of file HydjetHadronizer.h.

62 { return theSharedResources; }

References theSharedResources.

◆ finalizeEvent()

void HydjetHadronizer::finalizeEvent ( )

Definition at line 554 of file HydjetHadronizer.cc.

554 {}

◆ generatePartonsAndHadronize()

bool HydjetHadronizer::generatePartonsAndHadronize ( )

Definition at line 202 of file HydjetHadronizer.cc.

202  {
203  Pythia6Service::InstanceWrapper guard(pythia6Service_);
204 
205  // generate single event
206  if (embedding_) {
207  const edm::Event& e = getEDMEvent();
208  HepMC::GenVertex* genvtx = nullptr;
209  const HepMC::GenEvent* inev = nullptr;
211  e.getByToken(src_, cf);
213  if (mix.size() < 1) {
214  throw cms::Exception("MatchVtx") << "Mixing has " << mix.size() << " sub-events, should have been at least 1"
215  << endl;
216  }
217  const HepMCProduct& bkg = mix.getObject(0);
218  if (!(bkg.isVtxGenApplied())) {
219  throw cms::Exception("MatchVtx") << "Input background does not have smeared vertex!" << endl;
220  } else {
221  inev = bkg.GetEvent();
222  }
223 
224  genvtx = inev->signal_process_vertex();
225 
226  if (!genvtx)
227  throw cms::Exception("MatchVtx") << "Input background does not have signal process vertex!" << endl;
228 
229  double aX, aY, aZ, aT;
230 
231  aX = genvtx->position().x();
232  aY = genvtx->position().y();
233  aZ = genvtx->position().z();
234  aT = genvtx->position().t();
235 
236  if (!fVertex_) {
237  fVertex_ = new HepMC::FourVector();
238  }
239  LogInfo("MatchVtx") << " setting vertex "
240  << " aX " << aX << " aY " << aY << " aZ " << aZ << " aT " << aT << endl;
241  fVertex_->set(aX, aY, aZ, aT);
242 
243  const HepMC::HeavyIon* hi = inev->heavy_ion();
244 
245  if (hi) {
246  bfixed_ = (hi->impact_parameter()) / nuclear_radius();
247  phi0_ = hi->event_plane_angle();
248  sinphi0_ = sin(phi0_);
249  cosphi0_ = cos(phi0_);
250  } else {
251  LogWarning("EventEmbedding") << "Background event does not have heavy ion record!";
252  }
253 
254  } else if (rotate_)
255  rotateEvtPlane();
256 
257  nsoft_ = 0;
258  nhard_ = 0;
259 
260  edm::LogInfo("HYDJETmode") << "##### HYDJET nhsel = " << hyjpar.nhsel;
261  edm::LogInfo("HYDJETfpart") << "##### HYDJET fpart = " << hyflow.fpart;
262  edm::LogInfo("HYDJETtf") << "##### HYDJET hadron freez-out temp, Tf = " << hyflow.Tf;
263  edm::LogInfo("HYDJETinTemp") << "##### HYDJET: QGP init temperature, T0 =" << pyqpar.T0u;
264  edm::LogInfo("HYDJETinTau") << "##### HYDJET: QGP formation time,tau0 =" << pyqpar.tau0u;
265 
266  int ntry = 0;
267  while (nsoft_ == 0 && nhard_ == 0) {
268  if (ntry > 100) {
269  edm::LogError("HydjetEmptyEvent") << "##### HYDJET: No Particles generated, Number of tries =" << ntry;
270 
271  // Throw an exception. Use the EventCorruption exception since it maps onto SkipEvent
272  // which is what we want to do here.
273 
274  std::ostringstream sstr;
275  sstr << "HydjetHadronizerProducer: No particles generated after " << ntry << " tries.\n";
276  edm::Exception except(edm::errors::EventCorruption, sstr.str());
277  throw except;
278  } else {
279  HYEVNT(bfixed_);
280  nsoft_ = hyfpar.nhyd;
281  nsub_ = hyjpar.njet;
282  nhard_ = hyfpar.npyt;
283  ++ntry;
284  }
285  }
286 
287  if (hyjpar.nhsel < 3)
288  nsub_++;
289 
290  // event information
292 
293  if (nhard_ > 0 || nsoft_ > 0)
295 
296  evt->set_signal_process_id(pypars.msti[0]); // type of the process
297  evt->set_event_scale(pypars.pari[16]); // Q^2
299 
300  if (fVertex_) {
301  // generate new vertex & apply the shift
302 
303  // Copy the HepMC::GenEvent
304  std::unique_ptr<edm::HepMCProduct> HepMCEvt(new edm::HepMCProduct(evt));
305 
306  HepMCEvt->applyVtxGen(fVertex_);
307  evt = new HepMC::GenEvent((*HepMCEvt->GetEvent()));
308  }
309 
310  HepMC::HEPEVT_Wrapper::check_hepevt_consistency();
311  LogDebug("HEPEVT_info") << "Ev numb: " << HepMC::HEPEVT_Wrapper::event_number()
312  << " Entries number: " << HepMC::HEPEVT_Wrapper::number_entries() << " Max. entries "
313  << HepMC::HEPEVT_Wrapper::max_number_entries() << std::endl;
314 
315  event().reset(evt);
316  return true;
317 }

References add_heavy_ion_rec(), bfixed_, funct::cos(), cosphi0_, MillePedeFileConverter_cfg::e, embedding_, gen::BaseHadronizer::event(), edm::errors::EventCorruption, evt, Exception, fVertex_, get_particles(), gen::BaseHadronizer::getEDMEvent(), edm::HepMCProduct::GetEvent(), HYEVNT, hyflow, hyfpar, hyjpar, edm::HepMCProduct::isVtxGenApplied(), LogDebug, GeneratorMix_cff::mix, nhard_, nsoft_, nsub_, nuclear_radius(), phi0_, edm::Handle< T >::product(), pypars, pyqpar, pythia6Service_, rotate_, rotateEvtPlane(), funct::sin(), sinphi0_, and src_.

◆ get_particles()

bool HydjetHadronizer::get_particles ( HepMC::GenEvent evt)
private

Definition at line 320 of file HydjetHadronizer.cc.

320  {
321  // Hard particles. The first nhard_ lines from hyjets array.
322  // Pythia/Pyquen sub-events (sub-collisions) for a given event
323  // Return T/F if success/failure
324  // Create particles from lujet entries, assign them into vertices and
325  // put the vertices in the GenEvent, for each SubEvent
326  // The SubEvent information is kept by storing indeces of main vertices
327  // of subevents as a vector in GenHIEvent.
328 
329  LogDebug("SubEvent") << " Number of sub events " << nsub_;
330  LogDebug("Hydjet") << " Number of hard events " << hyjpar.njet;
331  LogDebug("Hydjet") << " Number of hard particles " << nhard_;
332  LogDebug("Hydjet") << " Number of soft particles " << nsoft_;
333  LogDebug("Hydjet") << " nhard_ + nsoft_ = " << nhard_ + nsoft_ << " hyjets.nhj = " << hyjets.nhj << endl;
334 
335  int ihy = 0;
336  int isub = -1;
337  int isub_l = -1;
338  int stab = 0;
339 
340  vector<HepMC::GenParticle*> primary_particle(hyjets.nhj);
341  vector<HepMC::GenParticle*> particle(hyjets.nhj);
342 
343  HepMC::GenVertex* sub_vertices = new HepMC::GenVertex(HepMC::FourVector(0, 0, 0, 0), 0); // just initialization
344 
345  // contain the last index in for each subevent
346  vector<int> index(nsub_);
347 
348  while (ihy < hyjets.nhj) {
349  isub = std::floor((hyjets.khj[2][ihy] / 50000));
350  int hjoffset = isub * 50000;
351 
352  if (isub != isub_l) {
353  sub_vertices = new HepMC::GenVertex(HepMC::FourVector(0, 0, 0, 0), isub);
354  evt->add_vertex(sub_vertices);
355  if (!evt->signal_process_vertex())
356  evt->set_signal_process_vertex(sub_vertices);
357  index[isub] = ihy - 1;
358  isub_l = isub;
359  }
360 
361  if (convertStatus(hyjets.khj[0][ihy]) == 1)
362  stab++;
363  LogDebug("Hydjet_array") << ihy << " MULTin ev.:" << hyjets.nhj << " SubEv.#" << isub << " Part #" << ihy + 1
364  << ", PDG: " << hyjets.khj[1][ihy] << " (st. " << convertStatus(hyjets.khj[0][ihy])
365  << ") mother=" << hyjets.khj[2][ihy] - (isub * 50000) + index[isub] + 1 << " ("
366  << hyjets.khj[2][ihy] << "), childs ("
367  << hyjets.khj[3][ihy] - (isub * 50000) + index[isub] + 1 << "-"
368  << hyjets.khj[4][ihy] - (isub * 50000) + index[isub] + 1 << "), vtx ("
369  << hyjets.vhj[0][ihy] << "," << hyjets.vhj[1][ihy] << "," << hyjets.vhj[2][ihy] << ") "
370  << std::endl;
371 
372  if (hyjets.khj[2][ihy] == 0) {
373  primary_particle[ihy] = build_hyjet(ihy, ihy + 1);
374  sub_vertices->add_particle_out(primary_particle[ihy]);
375  LogDebug("Hydjet_array") << " ---> " << ihy + 1 << std::endl;
376  } else {
377  particle[ihy] = build_hyjet(ihy, ihy + 1);
378  int mid = hyjets.khj[2][ihy] - hjoffset + index[isub];
379  int mid_t = mid;
380  while ((mid < ihy) && (hyjets.khj[1][mid] < 100) && (hyjets.khj[3][mid + 1] - hjoffset + index[isub] == ihy))
381  mid++;
382  if (hyjets.khj[1][mid] < 100)
383  mid = mid_t;
384 
385  HepMC::GenParticle* mother = primary_particle.at(mid);
386  HepMC::GenVertex* prods = build_hyjet_vertex(ihy, isub);
387 
388  if (!mother) {
389  mother = particle[mid];
390  primary_particle[mid] = mother;
391  }
392 
393  HepMC::GenVertex* prod_vertex = mother->end_vertex();
394  if (!prod_vertex) {
395  prod_vertex = prods;
396  prod_vertex->add_particle_in(mother);
397  LogDebug("Hydjet_array") << " <--- " << mid + 1 << std::endl;
398  evt->add_vertex(prod_vertex);
399  prods = nullptr;
400  }
401 
402  prod_vertex->add_particle_out(particle[ihy]);
403  LogDebug("Hydjet_array") << " ---" << mid + 1 << "---> " << ihy + 1 << std::endl;
404 
405  if (prods)
406  delete prods;
407  }
408  ihy++;
409  }
410  LogDebug("Hydjet_array") << " MULTin ev.:" << hyjets.nhj << ", last index: " << ihy - 1
411  << ", Sub events: " << isub + 1 << ", stable particles: " << stab << std::endl;
412 
413  return true;
414 }

References build_hyjet(), build_hyjet_vertex(), evt, GenParticle::GenParticle, hyjets, hyjpar, if(), LogDebug, nhard_, nsoft_, and nsub_.

Referenced by generatePartonsAndHadronize().

◆ hadronize()

bool HydjetHadronizer::hadronize ( )

Definition at line 548 of file HydjetHadronizer.cc.

548 { return false; }

◆ hydjet_init()

bool HydjetHadronizer::hydjet_init ( const edm::ParameterSet pset)
private

Definition at line 426 of file HydjetHadronizer.cc.

426  {
427  // set hydjet options
428 
429  // hydjet running mode mode
430  // kHydroOnly --- nhsel=0 jet production off (pure HYDRO event), nhsel=0
431  // kHydroJets --- nhsle=1 jet production on, jet quenching off (HYDRO+njet*PYTHIA events)
432  // kHydroQJet --- nhsel=2 jet production & jet quenching on (HYDRO+njet*PYQUEN events)
433  // kJetsOnly --- nhsel=3 jet production on, jet quenching off, HYDRO off (njet*PYTHIA events)
434  // kQJetsOnly --- nhsel=4 jet production & jet quenching on, HYDRO off (njet*PYQUEN events)
435 
436  if (hymode_ == "kHydroOnly")
437  hyjpar.nhsel = 0;
438  else if (hymode_ == "kHydroJets")
439  hyjpar.nhsel = 1;
440  else if (hymode_ == "kHydroQJets")
441  hyjpar.nhsel = 2;
442  else if (hymode_ == "kJetsOnly")
443  hyjpar.nhsel = 3;
444  else if (hymode_ == "kQJetsOnly")
445  hyjpar.nhsel = 4;
446  else
447  hyjpar.nhsel = 2;
448 
449  // fraction of soft hydro induced multiplicity
450  hyflow.fpart = fracsoftmult_;
451 
452  // hadron freez-out temperature
453  hyflow.Tf = hadfreeztemp_;
454 
455  // maximum longitudinal collective rapidity
456  hyflow.ylfl = maxlongy_;
457 
458  // maximum transverse collective rapidity
459  hyflow.ytfl = maxtrany_;
460 
461  // shadowing on=1, off=0
462  hyjpar.ishad = shadowingswitch_;
463 
464  // set inelastic nucleon-nucleon cross section
465  hyjpar.sigin = signn_;
466 
467  // angular emitted gluon spectrum selection
468  pyqpar.ianglu = angularspecselector_;
469 
470  // number of active quark flavors in qgp
471  pyqpar.nfu = nquarkflavor_;
472 
473  // initial temperature of QGP
474  pyqpar.T0u = qgpt0_;
475 
476  // proper time of QGP formation
477  pyqpar.tau0u = qgptau0_;
478 
479  // type of medium induced partonic energy loss
481  edm::LogInfo("HydjetEnLoss") << "##### Radiative AND Collisional partonic energy loss ON ####";
482  pyqpar.ienglu = 0;
483  } else if (doradiativeenloss_) {
484  edm::LogInfo("HydjetenLoss") << "##### Only RADIATIVE partonic energy loss ON ####";
485  pyqpar.ienglu = 1;
486  } else if (docollisionalenloss_) {
487  edm::LogInfo("HydjetEnLoss") << "##### Only COLLISIONAL partonic energy loss ON ####";
488  pyqpar.ienglu = 2;
489  } else {
490  edm::LogInfo("HydjetEnLoss") << "##### Radiative AND Collisional partonic energy loss ON ####";
491  pyqpar.ienglu = 0;
492  }
493  return true;
494 }

References angularspecselector_, docollisionalenloss_, doradiativeenloss_, fracsoftmult_, hadfreeztemp_, hyflow, hyjpar, hymode_, maxlongy_, maxtrany_, nquarkflavor_, pyqpar, qgpt0_, qgptau0_, shadowingswitch_, and signn_.

Referenced by initializeForInternalPartons().

◆ initializeForExternalPartons()

bool gen::HydjetHadronizer::initializeForExternalPartons ( )

◆ initializeForInternalPartons()

bool HydjetHadronizer::initializeForInternalPartons ( )

Definition at line 507 of file HydjetHadronizer.cc.

507  {
508  Pythia6Service::InstanceWrapper guard(pythia6Service_);
509  // pythia6Service_->setGeneralParams();
510 
511  // the input impact parameter (bxx_) is in [fm]; transform in [fm/RA] for hydjet usage
512  const float ra = nuclear_radius();
513  LogInfo("RAScaling") << "Nuclear radius(RA) = " << ra;
514  bmin_ /= ra;
515  bmax_ /= ra;
516  bfixed_ /= ra;
517 
518  // hydjet running options
520  // initialize hydjet
521  LogInfo("HYDJETinAction") << "##### Calling HYINIT(" << comenergy << "," << abeamtarget_ << "," << cflag_ << ","
522  << bmin_ << "," << bmax_ << "," << bfixed_ << "," << nmultiplicity_ << ") ####";
524  return true;
525 }

References abeamtarget_, bfixed_, bmax_, bmin_, call_hyinit(), cflag_, comenergy, hydjet_init(), nmultiplicity_, nuclear_radius(), pset_, and pythia6Service_.

◆ nuclear_radius()

double HydjetHadronizer::nuclear_radius ( ) const
inlineprivate

Return the nuclear radius derived from the beam/target atomic mass number.

Definition at line 140 of file HydjetHadronizer.h.

140 { return 1.15 * pow((double)abeamtarget_, 1. / 3.); }

References abeamtarget_, and funct::pow().

Referenced by add_heavy_ion_rec(), generatePartonsAndHadronize(), and initializeForInternalPartons().

◆ readSettings()

bool HydjetHadronizer::readSettings ( int  )

Definition at line 498 of file HydjetHadronizer.cc.

498  {
499  Pythia6Service::InstanceWrapper guard(pythia6Service_);
501 
502  return true;
503 }

References pythia6Service_, and gen::Pythia6Service::setGeneralParams().

◆ residualDecay()

bool HydjetHadronizer::residualDecay ( )

Definition at line 552 of file HydjetHadronizer.cc.

552 { return true; }

◆ rotateEvtPlane()

void HydjetHadronizer::rotateEvtPlane ( )
private

Definition at line 540 of file HydjetHadronizer.cc.

540  {
541  const double pi = 3.14159265358979;
542  phi0_ = 2. * pi * gen::pyr_(nullptr) - pi;
543  sinphi0_ = sin(phi0_);
544  cosphi0_ = cos(phi0_);
545 }

References funct::cos(), cosphi0_, phi0_, pi, gen::pyr_(), funct::sin(), and sinphi0_.

Referenced by generatePartonsAndHadronize().

◆ statistics()

void HydjetHadronizer::statistics ( )

Definition at line 556 of file HydjetHadronizer.cc.

556 {}

Member Data Documentation

◆ abeamtarget_

double gen::HydjetHadronizer::abeamtarget_
private

beam/target atomic mass number

Definition at line 77 of file HydjetHadronizer.h.

Referenced by initializeForInternalPartons(), and nuclear_radius().

◆ angularspecselector_

int gen::HydjetHadronizer::angularspecselector_
private

angular emitted gluon spectrum selection

Definition at line 78 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ bfixed_

double gen::HydjetHadronizer::bfixed_
private

fixed impact param (fm); valid only if cflag_=0

Definition at line 79 of file HydjetHadronizer.h.

Referenced by generatePartonsAndHadronize(), and initializeForInternalPartons().

◆ bmax_

double gen::HydjetHadronizer::bmax_
private

max impact param; units of nucl radius

Definition at line 80 of file HydjetHadronizer.h.

Referenced by initializeForInternalPartons().

◆ bmin_

double gen::HydjetHadronizer::bmin_
private

min impact param; units of nucl radius

Definition at line 82 of file HydjetHadronizer.h.

Referenced by initializeForInternalPartons().

◆ cflag_

int gen::HydjetHadronizer::cflag_
private

centrality flag = 0 fixed impact param, <> 0 between bmin and bmax

Definition at line 84 of file HydjetHadronizer.h.

Referenced by HydjetHadronizer(), and initializeForInternalPartons().

◆ comenergy

double gen::HydjetHadronizer::comenergy
private

collision energy

Definition at line 88 of file HydjetHadronizer.h.

Referenced by initializeForInternalPartons().

◆ cosphi0_

double gen::HydjetHadronizer::cosphi0_
private

◆ docollisionalenloss_

bool gen::HydjetHadronizer::docollisionalenloss_
private

DEFAULT = true.

Definition at line 90 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ doradiativeenloss_

bool gen::HydjetHadronizer::doradiativeenloss_
private

DEFAULT = true.

Definition at line 89 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ embedding_

bool gen::HydjetHadronizer::embedding_
private

Switch for embedding mode.

Definition at line 87 of file HydjetHadronizer.h.

Referenced by generatePartonsAndHadronize(), and HydjetHadronizer().

◆ evt

HepMC::GenEvent* gen::HydjetHadronizer::evt
private

◆ fracsoftmult_

double gen::HydjetHadronizer::fracsoftmult_
private

fraction of soft hydro induced hadronic multiplicity proportional to no of nucleon participants (1-fracsoftmult_)— fraction of soft multiplicity proportional to the numebr of nucleon-nucleon binary collisions DEFAULT=1., allowed range [0.01,1]

Definition at line 91 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ fVertex_

HepMC::FourVector* gen::HydjetHadronizer::fVertex_
private

Event signal vertex.

Definition at line 129 of file HydjetHadronizer.h.

Referenced by generatePartonsAndHadronize(), and HydjetHadronizer().

◆ hadfreeztemp_

double gen::HydjetHadronizer::hadfreeztemp_
private

hadron freez-out temperature DEFAULT=0.14MeV, allowed ranges [0.08,0.2]MeV

Definition at line 97 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ hymode_

std::string gen::HydjetHadronizer::hymode_
private

Hydjet running mode.

Definition at line 99 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ maxEventsToPrint_

unsigned int gen::HydjetHadronizer::maxEventsToPrint_
private

Events to print if verbosity.

Definition at line 100 of file HydjetHadronizer.h.

Referenced by HydjetHadronizer().

◆ maxlongy_

double gen::HydjetHadronizer::maxlongy_
private

max longitudinal collective rapidity: controls width of eta-spectra DEFAULT=4, allowed range [0.01,7.0]

Definition at line 101 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ maxtrany_

double gen::HydjetHadronizer::maxtrany_
private

max transverse collective rapidity: controls slope of low-pt spectra DEFAULT=1.5, allowed range [0.01,3.0]

Definition at line 104 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ nhard_

int gen::HydjetHadronizer::nhard_
private

multiplicity of PYTHIA(+PYQUEN)-induced particles in event

Definition at line 108 of file HydjetHadronizer.h.

Referenced by generatePartonsAndHadronize(), and get_particles().

◆ nmultiplicity_

int gen::HydjetHadronizer::nmultiplicity_
private

mean soft multiplicity in central PbPb automatically calculated for other centralitie and beams

Definition at line 109 of file HydjetHadronizer.h.

Referenced by initializeForInternalPartons().

◆ nquarkflavor_

unsigned int gen::HydjetHadronizer::nquarkflavor_
private

number of active quark flavors in qgp DEFAULT=0; allowed values: 0,1,2,3.

Definition at line 112 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ nsoft_

int gen::HydjetHadronizer::nsoft_
private

multiplicity of HYDRO-induced particles in event

Definition at line 111 of file HydjetHadronizer.h.

Referenced by generatePartonsAndHadronize(), and get_particles().

◆ nsub_

int gen::HydjetHadronizer::nsub_
private

number of sub-events

Definition at line 107 of file HydjetHadronizer.h.

Referenced by add_heavy_ion_rec(), generatePartonsAndHadronize(), and get_particles().

◆ phi0_

double gen::HydjetHadronizer::phi0_
private

Event plane angle.

Definition at line 120 of file HydjetHadronizer.h.

Referenced by add_heavy_ion_rec(), generatePartonsAndHadronize(), and rotateEvtPlane().

◆ pset_

edm::ParameterSet gen::HydjetHadronizer::pset_
private

Definition at line 76 of file HydjetHadronizer.h.

Referenced by initializeForInternalPartons().

◆ pythia6Service_

Pythia6Service* gen::HydjetHadronizer::pythia6Service_
private

◆ pythiaPylistVerbosity_

unsigned int gen::HydjetHadronizer::pythiaPylistVerbosity_
private

pythia verbosity; def=1

Definition at line 114 of file HydjetHadronizer.h.

Referenced by HydjetHadronizer().

◆ qgpt0_

double gen::HydjetHadronizer::qgpt0_
private

initial temperature of QGP DEFAULT = 1GeV; allowed range [0.2,2.0]GeV;

Definition at line 115 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ qgptau0_

double gen::HydjetHadronizer::qgptau0_
private

proper time of QGP formation DEFAULT = 0.1 fm/c; allowed range [0.01,10.0]fm/

Definition at line 117 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ rotate_

bool gen::HydjetHadronizer::rotate_
private

Switch to rotate event plane.

Definition at line 123 of file HydjetHadronizer.h.

Referenced by generatePartonsAndHadronize().

◆ shadowingswitch_

unsigned int gen::HydjetHadronizer::shadowingswitch_
private

shadowing switcher 1-ON, 0-OFF

Definition at line 125 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ signalVtx_

std::vector<double> gen::HydjetHadronizer::signalVtx_
private

Pset double vector to set event signal vertex.

Definition at line 130 of file HydjetHadronizer.h.

Referenced by HydjetHadronizer().

◆ signn_

double gen::HydjetHadronizer::signn_
private

inelastic nucleon nucleon cross section [mb] DEFAULT= 58 mb

Definition at line 127 of file HydjetHadronizer.h.

Referenced by hydjet_init().

◆ sinphi0_

double gen::HydjetHadronizer::sinphi0_
private

◆ src_

edm::EDGetTokenT<CrossingFrame<edm::HepMCProduct> > gen::HydjetHadronizer::src_
private

Definition at line 133 of file HydjetHadronizer.h.

Referenced by generatePartonsAndHadronize(), and HydjetHadronizer().

◆ theSharedResources

const std::vector< std::string > HydjetHadronizer::theSharedResources
staticprivate
gen::HydjetHadronizer::get_particles
bool get_particles(HepMC::GenEvent *evt)
Definition: HydjetHadronizer.cc:320
DDAxes::y
gen::HydjetHadronizer::cflag_
int cflag_
Definition: HydjetHadronizer.h:84
mps_fire.i
i
Definition: mps_fire.py:428
edm::Handle::product
T const * product() const
Definition: Handle.h:70
gen::HydjetHadronizer::add_heavy_ion_rec
void add_heavy_ion_rec(HepMC::GenEvent *evt)
Definition: HydjetHadronizer.cc:140
ReggeGribovPartonMC_AdvancedParameters_cfi.bmin
bmin
Definition: ReggeGribovPartonMC_AdvancedParameters_cfi.py:4
gen::HydjetHadronizer::hadfreeztemp_
double hadfreeztemp_
Definition: HydjetHadronizer.h:97
gen::HydjetHadronizer::rotate_
bool rotate_
Switch to rotate event plane.
Definition: HydjetHadronizer.h:123
gen::HydjetHadronizer::evt
HepMC::GenEvent * evt
Definition: HydjetHadronizer.h:75
gen::HydjetHadronizer::bmin_
double bmin_
Definition: HydjetHadronizer.h:82
gen::pycomp_
int pycomp_(int &)
gen::pyr_
double pyr_(int *idummy)
Definition: Pythia6Service.cc:59
gather_cfg.cout
cout
Definition: gather_cfg.py:144
hyfpar
#define hyfpar
Definition: HydjetWrapper.h:51
edm::errors::EventCorruption
Definition: EDMException.h:43
pypars
#define pypars
Definition: ExhumeHadronizer.cc:45
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
gen::FortranInstance::kFortranInstance
static const std::string kFortranInstance
Definition: FortranInstance.h:88
if
if(0==first)
Definition: CAHitNtupletGeneratorKernelsImpl.h:58
gen::HydjetHadronizer::qgpt0_
double qgpt0_
Definition: HydjetHadronizer.h:115
HYINIT
#define HYINIT
Definition: HydjetWrapper.h:13
DDAxes::x
gen::Pythia6Service::setRandomEngine
void setRandomEngine(CLHEP::HepRandomEngine *v)
Definition: Pythia6Service.h:46
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
edm::Handle
Definition: AssociativeIterator.h:50
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
npart
double npart
Definition: HydjetWrapper.h:46
gen::Pythia6Service::setGeneralParams
void setGeneralParams()
Definition: Pythia6Service.cc:156
gen::HydjetHadronizer::sinphi0_
double sinphi0_
Definition: HydjetHadronizer.h:121
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
gen::HydjetHadronizer::nuclear_radius
double nuclear_radius() const
Definition: HydjetHadronizer.h:140
edm::Exception
Definition: EDMException.h:77
HYJVER
#define HYJVER
Definition: HydjetWrapper.h:25
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
gen::HydjetHadronizer::nsoft_
int nsoft_
multiplicity of HYDRO-induced particles in event
Definition: HydjetHadronizer.h:111
gen::HydjetHadronizer::comenergy
double comenergy
collision energy
Definition: HydjetHadronizer.h:88
gen::HydjetHadronizer::hydjet_init
bool hydjet_init(const edm::ParameterSet &pset)
Definition: HydjetHadronizer.cc:426
gen::HydjetHadronizer::embedding_
bool embedding_
Switch for embedding mode.
Definition: HydjetHadronizer.h:87
CrossingFrame
Definition: CrossingFrame.h:37
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
MixCollection
Definition: MixCollection.h:10
gen::p
double p[5][pyjets_maxn]
Definition: Cascade2Hadronizer.cc:76
gen::HydjetHadronizer::maxEventsToPrint_
unsigned int maxEventsToPrint_
Events to print if verbosity.
Definition: HydjetHadronizer.h:100
DDAxes::z
gen::HydjetHadronizer::build_hyjet
HepMC::GenParticle * build_hyjet(int index, int barcode)
Definition: HydjetHadronizer.cc:166
gen::BaseHadronizer::getEDMEvent
edm::Event & getEDMEvent() const
Definition: BaseHadronizer.h:69
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
gen::HydjetHadronizer::qgptau0_
double qgptau0_
Definition: HydjetHadronizer.h:117
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
a
double a
Definition: hdecay.h:119
gen::HydjetHadronizer::pythia6Service_
Pythia6Service * pythia6Service_
Definition: HydjetHadronizer.h:132
hyjets
#define hyjets
Definition: HydjetWrapper.h:80
gen::HydjetHadronizer::bmax_
double bmax_
Definition: HydjetHadronizer.h:80
gen::HydjetHadronizer::call_hyinit
bool call_hyinit(double energy, double a, int ifb, double bmin, double bmax, double bfix, int nh)
Definition: HydjetHadronizer.cc:417
ReggeGribovPartonMC_AdvancedParameters_cfi.bmax
bmax
Definition: ReggeGribovPartonMC_AdvancedParameters_cfi.py:5
gen::HydjetHadronizer::pythiaPylistVerbosity_
unsigned int pythiaPylistVerbosity_
pythia verbosity; def=1
Definition: HydjetHadronizer.h:114
gen::HydjetHadronizer::signn_
double signn_
Definition: HydjetHadronizer.h:127
gen::HydjetHadronizer::cosphi0_
double cosphi0_
Definition: HydjetHadronizer.h:122
gen::HydjetHadronizer::fracsoftmult_
double fracsoftmult_
Definition: HydjetHadronizer.h:91
gen::v
double v[5][pyjets_maxn]
Definition: Cascade2Hadronizer.cc:76
gen::HydjetHadronizer::hymode_
std::string hymode_
Hydjet running mode.
Definition: HydjetHadronizer.h:99
hyflow
#define hyflow
Definition: HydjetWrapper.h:40
edm::HepMCProduct::GetEvent
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:37
edm::HepMCProduct::isVtxGenApplied
bool isVtxGenApplied() const
Definition: HepMCProduct.h:39
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
gen::HydjetHadronizer::doradiativeenloss_
bool doradiativeenloss_
DEFAULT = true.
Definition: HydjetHadronizer.h:89
gen::HydjetHadronizer::signalVtx_
std::vector< double > signalVtx_
Pset double vector to set event signal vertex.
Definition: HydjetHadronizer.h:130
cms::cuda::nh
uint32_t nh
Definition: HistoContainer.h:11
hi
Definition: EPCuts.h:4
gen::HydjetHadronizer::build_hyjet_vertex
HepMC::GenVertex * build_hyjet_vertex(int i, int id)
Definition: HydjetHadronizer.cc:187
gen::HydjetHadronizer::maxtrany_
double maxtrany_
Definition: HydjetHadronizer.h:104
GenParticle.GenParticle
GenParticle
Definition: GenParticle.py:18
gen::HydjetHadronizer::src_
edm::EDGetTokenT< CrossingFrame< edm::HepMCProduct > > src_
Definition: HydjetHadronizer.h:133
gen::BaseHadronizer::event
std::unique_ptr< HepMC::GenEvent > & event()
Definition: BaseHadronizer.h:86
gen::HydjetHadronizer::nsub_
int nsub_
number of sub-events
Definition: HydjetHadronizer.h:107
hyjpar
#define hyjpar
Definition: HydjetWrapper.h:93
gen::HydjetHadronizer::pset_
edm::ParameterSet pset_
Definition: HydjetHadronizer.h:76
gen::BaseHadronizer::BaseHadronizer
BaseHadronizer(edm::ParameterSet const &ps)
Definition: BaseHadronizer.cc:12
gen::HydjetHadronizer::nhard_
int nhard_
multiplicity of PYTHIA(+PYQUEN)-induced particles in event
Definition: HydjetHadronizer.h:108
gen::HydjetHadronizer::rotateEvtPlane
void rotateEvtPlane()
Definition: HydjetHadronizer.cc:540
gen::HydjetHadronizer::theSharedResources
static const std::vector< std::string > theSharedResources
Definition: HydjetHadronizer.h:64
edm::SharedResourceNames::kPythia6
static const std::string kPythia6
Definition: SharedResourceNames.h:26
Exception
Definition: hltDiff.cc:245
gen::HydjetHadronizer::phi0_
double phi0_
Event plane angle.
Definition: HydjetHadronizer.h:120
gen::HydjetHadronizer::maxlongy_
double maxlongy_
Definition: HydjetHadronizer.h:101
pyqpar
#define pyqpar
Definition: HydjetWrapper.h:112
pdg
Definition: pdg_functions.h:28
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
HYEVNT
#define HYEVNT
Definition: HydjetWrapper.h:20
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
pi
const Double_t pi
Definition: trackSplitPlot.h:36
gen::Pythia6Service
Definition: Pythia6Service.h:24
gen::HydjetHadronizer::nquarkflavor_
unsigned int nquarkflavor_
Definition: HydjetHadronizer.h:112
edm::HepMCProduct
Definition: HepMCProduct.h:21
gen::HydjetHadronizer::abeamtarget_
double abeamtarget_
beam/target atomic mass number
Definition: HydjetHadronizer.h:77
gen::HydjetHadronizer::fVertex_
HepMC::FourVector * fVertex_
Event signal vertex.
Definition: HydjetHadronizer.h:129
gen::HydjetHadronizer::docollisionalenloss_
bool docollisionalenloss_
DEFAULT = true.
Definition: HydjetHadronizer.h:90
edm::Event
Definition: Event.h:73
gen::HydjetHadronizer::angularspecselector_
int angularspecselector_
angular emitted gluon spectrum selection
Definition: HydjetHadronizer.h:78
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
gen::HydjetHadronizer::nmultiplicity_
int nmultiplicity_
Definition: HydjetHadronizer.h:109
GeneratorMix_cff.mix
mix
Definition: GeneratorMix_cff.py:6
gen::call_pygive
bool call_pygive(const std::string &line)
Definition: ExhumeHadronizer.cc:64
edm::InputTag
Definition: InputTag.h:15
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
gen::HydjetHadronizer::bfixed_
double bfixed_
fixed impact param (fm); valid only if cflag_=0
Definition: HydjetHadronizer.h:79
gen::HydjetHadronizer::shadowingswitch_
unsigned int shadowingswitch_
Definition: HydjetHadronizer.h:125
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37