CMS 3D CMS Logo

HydjetHadronizer.cc
Go to the documentation of this file.
1 /*
2 
3  ########################
4  # Hydjet1 #
5  # version: 1.9 patch1 #
6  ########################
7 
8  * Interface to the HYDJET generator, produces HepMC events
9  *
10  * Original Author: Camelia Mironov
11  */
12 
13 #include <iostream>
14 #include <cmath>
15 
16 #include "boost/lexical_cast.hpp"
17 
24 
30 
31 #include "HepMC/PythiaWrapper6_4.h"
32 #include "HepMC/GenEvent.h"
33 #include "HepMC/HeavyIon.h"
34 #include "HepMC/SimpleVector.h"
35 
40 
41 using namespace edm;
42 using namespace std;
43 using namespace gen;
44 
45 namespace {
46  int convertStatus(int st) {
47  if (st <= 0)
48  return 0;
49  if (st <= 10)
50  return 1;
51  if (st <= 20)
52  return 2;
53  if (st <= 30)
54  return 3;
55  else
56  return st;
57  }
58 } // namespace
59 
60 const std::vector<std::string> HydjetHadronizer::theSharedResources = {edm::SharedResourceNames::kPythia6,
62 
63 //_____________________________________________________________________
64 HydjetHadronizer::HydjetHadronizer(const ParameterSet& pset)
66  evt(nullptr),
67  pset_(pset),
68  abeamtarget_(pset.getParameter<double>("aBeamTarget")),
69  angularspecselector_(pset.getParameter<int>("angularSpectrumSelector")),
70  bfixed_(pset.getParameter<double>("bFixed")),
71  bmax_(pset.getParameter<double>("bMax")),
72  bmin_(pset.getParameter<double>("bMin")),
73  cflag_(pset.getParameter<int>("cFlag")),
74  embedding_(pset.getParameter<bool>("embeddingMode")),
75  comenergy(pset.getParameter<double>("comEnergy")),
76  doradiativeenloss_(pset.getParameter<bool>("doRadiativeEnLoss")),
77  docollisionalenloss_(pset.getParameter<bool>("doCollisionalEnLoss")),
78  fracsoftmult_(pset.getParameter<double>("fracSoftMultiplicity")),
79  hadfreeztemp_(pset.getParameter<double>("hadronFreezoutTemperature")),
80  hymode_(pset.getParameter<string>("hydjetMode")),
81  maxEventsToPrint_(pset.getUntrackedParameter<int>("maxEventsToPrint", 1)),
82  maxlongy_(pset.getParameter<double>("maxLongitudinalRapidity")),
83  maxtrany_(pset.getParameter<double>("maxTransverseRapidity")),
84  nsub_(0),
85  nhard_(0),
86  nmultiplicity_(pset.getParameter<int>("nMultiplicity")),
87  nsoft_(0),
88  nquarkflavor_(pset.getParameter<int>("qgpNumQuarkFlavor")),
89  pythiaPylistVerbosity_(pset.getUntrackedParameter<int>("pythiaPylistVerbosity", 0)),
90  qgpt0_(pset.getParameter<double>("qgpInitialTemperature")),
91  qgptau0_(pset.getParameter<double>("qgpProperTimeFormation")),
92  phi0_(0.),
93  sinphi0_(0.),
94  cosphi0_(1.),
95  rotate_(pset.getParameter<bool>("rotateEventPlane")),
96  shadowingswitch_(pset.getParameter<int>("shadowingSwitch")),
97  signn_(pset.getParameter<double>("sigmaInelNN")),
98  pythia6Service_(new Pythia6Service(pset)) {
99  // Default constructor
100 
101  // PYLIST Verbosity Level
102  // Valid PYLIST arguments are: 1, 2, 3, 5, 7, 11, 12, 13
103  pythiaPylistVerbosity_ = pset.getUntrackedParameter<int>("pythiaPylistVerbosity", 0);
104  LogDebug("PYLISTverbosity") << "Pythia PYLIST verbosity level = " << pythiaPylistVerbosity_;
105 
106  //Max number of events printed on verbosity level
107  maxEventsToPrint_ = pset.getUntrackedParameter<int>("maxEventsToPrint", 0);
108  LogDebug("Events2Print") << "Number of events to be printed = " << maxEventsToPrint_;
109 
110  if (embedding_)
111  src_ = pset.getParameter<edm::InputTag>("backgroundLabel");
112 }
113 
114 //_____________________________________________________________________
116  // destructor
117  call_pystat(1);
118  delete pythia6Service_;
119 }
120 
121 //_____________________________________________________________________
123 
124 //_____________________________________________________________________
126  // heavy ion record in the final CMSSW Event
127  double npart = hyfpar.npart;
128  int nproj = static_cast<int>(npart / 2);
129  int ntarg = static_cast<int>(npart - nproj);
130 
131  HepMC::HeavyIon* hi = new HepMC::HeavyIon(nsub_, // Ncoll_hard/N of SubEvents
132  nproj, // Npart_proj
133  ntarg, // Npart_targ
134  static_cast<int>(hyfpar.nbcol), // Ncoll
135  0, // spectator_neutrons
136  0, // spectator_protons
137  0, // N_Nwounded_collisions
138  0, // Nwounded_N_collisions
139  0, // Nwounded_Nwounded_collisions
140  hyfpar.bgen * nuclear_radius(), // impact_parameter in [fm]
141  phi0_, // event_plane_angle
142  0, //hypsi3.psi3, // eccentricity
143  hyjpar.sigin // sigma_inel_NN
144  );
145 
146  evt->set_heavy_ion(*hi);
147  delete hi;
148 }
149 
150 //___________________________________________________________________
152  // Build particle object corresponding to index in hyjets (soft+hard)
153 
154  double x0 = hyjets.phj[0][index];
155  double y0 = hyjets.phj[1][index];
156 
157  double x = x0 * cosphi0_ - y0 * sinphi0_;
158  double y = y0 * cosphi0_ + x0 * sinphi0_;
159 
160  HepMC::GenParticle* p = new HepMC::GenParticle(HepMC::FourVector(x, // px
161  y, // py
162  hyjets.phj[2][index], // pz
163  hyjets.phj[3][index]), // E
164  hyjets.khj[1][index], // id
165  convertStatus(hyjets.khj[0][index] // status
166  ));
167 
168  p->suggest_barcode(barcode);
169  return p;
170 }
171 
172 //___________________________________________________________________
173 HepMC::GenVertex* HydjetHadronizer::build_hyjet_vertex(int i, int id) {
174  // build verteces for the hyjets stored events
175 
176  double x0 = hyjets.vhj[0][i];
177  double y0 = hyjets.vhj[1][i];
178  double x = x0 * cosphi0_ - y0 * sinphi0_;
179  double y = y0 * cosphi0_ + x0 * sinphi0_;
180  double z = hyjets.vhj[2][i];
181  double t = hyjets.vhj[4][i];
182 
183  HepMC::GenVertex* vertex = new HepMC::GenVertex(HepMC::FourVector(x, y, z, t), id);
184  return vertex;
185 }
186 
187 //___________________________________________________________________
188 
191 
192  // generate single event
193  if (embedding_) {
194  cflag_ = 0;
195  const edm::Event& e = getEDMEvent();
197  e.getByLabel(src_, input);
198  const HepMC::GenEvent* inev = input->GetEvent();
199  const HepMC::HeavyIon* hi = inev->heavy_ion();
200  if (hi) {
201  bfixed_ = hi->impact_parameter();
202  phi0_ = hi->event_plane_angle();
203  sinphi0_ = sin(phi0_);
204  cosphi0_ = cos(phi0_);
205  } else {
206  LogWarning("EventEmbedding") << "Background event does not have heavy ion record!";
207  }
208  } else if (rotate_)
209  rotateEvtPlane();
210 
211  nsoft_ = 0;
212  nhard_ = 0;
213 
214  edm::LogInfo("HYDJETmode") << "##### HYDJET nhsel = " << hyjpar.nhsel;
215  edm::LogInfo("HYDJETfpart") << "##### HYDJET fpart = " << hyflow.fpart;
216  edm::LogInfo("HYDJETtf") << "##### HYDJET hadron freez-out temp, Tf = " << hyflow.Tf;
217  edm::LogInfo("HYDJETinTemp") << "##### HYDJET: QGP init temperature, T0 =" << pyqpar.T0u;
218  edm::LogInfo("HYDJETinTau") << "##### HYDJET: QGP formation time,tau0 =" << pyqpar.tau0u;
219 
220  // generate a HYDJET event
221  int ntry = 0;
222  while (nsoft_ == 0 && nhard_ == 0) {
223  if (ntry > 100) {
224  edm::LogError("HydjetEmptyEvent") << "##### HYDJET: No Particles generated, Number of tries =" << ntry;
225 
226  // Throw an exception. Use the EventCorruption exception since it maps onto SkipEvent
227  // which is what we want to do here.
228 
229  std::ostringstream sstr;
230  sstr << "HydjetHadronizerProducer: No particles generated after " << ntry << " tries.\n";
231  edm::Exception except(edm::errors::EventCorruption, sstr.str());
232  throw except;
233  } else {
234  HYEVNT();
235  nsoft_ = hyfpar.nhyd;
236  nsub_ = hyjpar.njet;
237  nhard_ = hyfpar.npyt;
238  ++ntry;
239  }
240  }
241 
242  if (hyjpar.nhsel < 3)
243  nsub_++;
244 
245  // event information
247 
248  if (nhard_ > 0 || nsoft_ > 0)
250 
251  evt->set_signal_process_id(pypars.msti[0]); // type of the process
252  evt->set_event_scale(pypars.pari[16]); // Q^2
254 
255  event().reset(evt);
256  return true;
257 }
258 
259 //_____________________________________________________________________
261  // Hard particles. The first nhard_ lines from hyjets array.
262  // Pythia/Pyquen sub-events (sub-collisions) for a given event
263  // Return T/F if success/failure
264  // Create particles from lujet entries, assign them into vertices and
265  // put the vertices in the GenEvent, for each SubEvent
266  // The SubEvent information is kept by storing indeces of main vertices
267  // of subevents as a vector in GenHIEvent.
268 
269  LogDebug("SubEvent") << "Number of sub events " << nsub_;
270  LogDebug("Hydjet") << "Number of hard events " << hyjpar.njet;
271  LogDebug("Hydjet") << "Number of hard particles " << nhard_;
272  LogDebug("Hydjet") << "Number of soft particles " << nsoft_;
273 
274  vector<HepMC::GenVertex*> sub_vertices(nsub_);
275 
276  int ihy = 0;
277  for (int isub = 0; isub < nsub_; isub++) {
278  LogDebug("SubEvent") << "Sub Event ID : " << isub;
279 
280  int sub_up = (isub + 1) * 50000; // Upper limit in mother index, determining the range of Sub-Event
281  vector<HepMC::GenParticle*> particles;
282  vector<int> mother_ids;
283  vector<HepMC::GenVertex*> prods;
284 
285  sub_vertices[isub] = new HepMC::GenVertex(HepMC::FourVector(0, 0, 0, 0), isub);
286  evt->add_vertex(sub_vertices[isub]);
287  if (!evt->signal_process_vertex())
288  evt->set_signal_process_vertex(sub_vertices[isub]);
289 
290  while (ihy < nhard_ + nsoft_ && (hyjets.khj[2][ihy] < sub_up || ihy > nhard_)) {
291  particles.push_back(build_hyjet(ihy, ihy + 1));
292  prods.push_back(build_hyjet_vertex(ihy, isub));
293  mother_ids.push_back(hyjets.khj[2][ihy]);
294  LogDebug("DecayChain") << "Mother index : " << hyjets.khj[2][ihy];
295 
296  ihy++;
297  }
298 
299  //Produce Vertices and add them to the GenEvent. Remember that GenParticles are adopted by
300  //GenVertex and GenVertex is adopted by GenEvent.
301 
302  LogDebug("Hydjet") << "Number of particles in vector " << particles.size();
303 
304  for (unsigned int i = 0; i < particles.size(); i++) {
306 
307  //The Fortran code is modified to preserve mother id info, by seperating the beginning
308  //mother indices of successive subevents by 5000
309  int mid = mother_ids[i] - isub * 50000 - 1;
310  LogDebug("DecayChain") << "Particle " << i;
311  LogDebug("DecayChain") << "Mother's ID " << mid;
312  LogDebug("DecayChain") << "Particle's PDG ID " << part->pdg_id();
313 
314  if (mid <= 0) {
315  sub_vertices[isub]->add_particle_out(part);
316  continue;
317  }
318 
319  if (mid > 0) {
320  HepMC::GenParticle* mother = particles[mid];
321  LogDebug("DecayChain") << "Mother's PDG ID " << mother->pdg_id();
322 
323  HepMC::GenVertex* prod_vertex = mother->end_vertex();
324  if (!prod_vertex) {
325  prod_vertex = prods[i];
326  prod_vertex->add_particle_in(mother);
327  evt->add_vertex(prod_vertex);
328  prods[i] = nullptr; // mark to protect deletion
329  }
330  prod_vertex->add_particle_out(part);
331  }
332  }
333  // cleanup vertices not assigned to evt
334  for (unsigned int i = 0; i < prods.size(); i++) {
335  if (prods[i])
336  delete prods[i];
337  }
338  }
339  return true;
340 }
341 
342 //______________________________________________________________
343 bool HydjetHadronizer::call_hyinit(double energy, double a, int ifb, double bmin, double bmax, double bfix, int nh) {
344  // initialize hydjet
345 
346  pydatr.mrpy[2] = 1;
347  HYINIT(energy, a, ifb, bmin, bmax, bfix, nh);
348  return true;
349 }
350 
351 //______________________________________________________________
353  // set hydjet options
354 
355  // hydjet running mode mode
356  // kHydroOnly --- nhsel=0 jet production off (pure HYDRO event), nhsel=0
357  // kHydroJets --- nhsle=1 jet production on, jet quenching off (HYDRO+njet*PYTHIA events)
358  // kHydroQJet --- nhsel=2 jet production & jet quenching on (HYDRO+njet*PYQUEN events)
359  // kJetsOnly --- nhsel=3 jet production on, jet quenching off, HYDRO off (njet*PYTHIA events)
360  // kQJetsOnly --- nhsel=4 jet production & jet quenching on, HYDRO off (njet*PYQUEN events)
361 
362  if (hymode_ == "kHydroOnly")
363  hyjpar.nhsel = 0;
364  else if (hymode_ == "kHydroJets")
365  hyjpar.nhsel = 1;
366  else if (hymode_ == "kHydroQJets")
367  hyjpar.nhsel = 2;
368  else if (hymode_ == "kJetsOnly")
369  hyjpar.nhsel = 3;
370  else if (hymode_ == "kQJetsOnly")
371  hyjpar.nhsel = 4;
372  else
373  hyjpar.nhsel = 2;
374 
375  // fraction of soft hydro induced multiplicity
376  hyflow.fpart = fracsoftmult_;
377 
378  // hadron freez-out temperature
379  hyflow.Tf = hadfreeztemp_;
380 
381  // maximum longitudinal collective rapidity
382  hyflow.ylfl = maxlongy_;
383 
384  // maximum transverse collective rapidity
385  hyflow.ytfl = maxtrany_;
386 
387  // shadowing on=1, off=0
388  hyjpar.ishad = shadowingswitch_;
389 
390  // set inelastic nucleon-nucleon cross section
391  hyjpar.sigin = signn_;
392 
393  // angular emitted gluon spectrum selection
394  pyqpar.ianglu = angularspecselector_;
395 
396  // number of active quark flavors in qgp
397  pyqpar.nfu = nquarkflavor_;
398 
399  // initial temperature of QGP
400  pyqpar.T0u = qgpt0_;
401 
402  // proper time of QGP formation
403  pyqpar.tau0u = qgptau0_;
404 
405  // type of medium induced partonic energy loss
407  edm::LogInfo("HydjetEnLoss") << "##### Radiative AND Collisional partonic energy loss ON ####";
408  pyqpar.ienglu = 0;
409  } else if (doradiativeenloss_) {
410  edm::LogInfo("HydjetenLoss") << "##### Only RADIATIVE partonic energy loss ON ####";
411  pyqpar.ienglu = 1;
412  } else if (docollisionalenloss_) {
413  edm::LogInfo("HydjetEnLoss") << "##### Only COLLISIONAL partonic energy loss ON ####";
414  pyqpar.ienglu = 2;
415  } else {
416  edm::LogInfo("HydjetEnLoss") << "##### Radiative AND Collisional partonic energy loss ON ####";
417  pyqpar.ienglu = 0;
418  }
419  return true;
420 }
421 
422 //_____________________________________________________________________
423 
427 
428  return true;
429 }
430 
431 //_____________________________________________________________________
432 
435  // pythia6Service_->setGeneralParams();
436 
437  // the input impact parameter (bxx_) is in [fm]; transform in [fm/RA] for hydjet usage
438  const float ra = nuclear_radius();
439  LogInfo("RAScaling") << "Nuclear radius(RA) = " << ra;
440  bmin_ /= ra;
441  bmax_ /= ra;
442  bfixed_ /= ra;
443 
444  // hydjet running options
446  // initialize hydjet
447  LogInfo("HYDJETinAction") << "##### Calling HYINIT(" << comenergy << "," << abeamtarget_ << "," << cflag_ << ","
448  << bmin_ << "," << bmax_ << "," << bfixed_ << "," << nmultiplicity_ << ") ####";
450  return true;
451 }
452 
453 bool HydjetHadronizer::declareStableParticles(const std::vector<int>& _pdg) {
454  std::vector<int> pdg = _pdg;
455  for (size_t i = 0; i < pdg.size(); i++) {
456  int pyCode = pycomp_(pdg[i]);
457  std::ostringstream pyCard;
458  pyCard << "MDCY(" << pyCode << ",1)=0";
459  std::cout << pyCard.str() << std::endl;
460  call_pygive(pyCard.str());
461  }
462  return true;
463 }
464 
465 //________________________________________________________________
467  const double pi = 3.14159265358979;
468  phi0_ = 2. * pi * gen::pyr_(nullptr) - pi;
469  sinphi0_ = sin(phi0_);
470  cosphi0_ = cos(phi0_);
471 }
472 
473 //________________________________________________________________
474 bool HydjetHadronizer::hadronize() { return false; }
475 
476 bool HydjetHadronizer::decay() { return true; }
477 
478 bool HydjetHadronizer::residualDecay() { return true; }
479 
481 
483 
484 const char* HydjetHadronizer::classname() const { return "gen::HydjetHadronizer"; }
gen::HydjetHadronizer::get_particles
bool get_particles(HepMC::GenEvent *evt)
Definition: HydjetHadronizer.cc:260
gen::HydjetHadronizer::cflag_
int cflag_
Definition: HydjetHadronizer.h:78
electrons_cff.bool
bool
Definition: electrons_cff.py:372
mps_fire.i
i
Definition: mps_fire.py:355
input
static const std::string input
Definition: EdmProvDump.cc:48
MessageLogger.h
gen::HydjetHadronizer::add_heavy_ion_rec
void add_heavy_ion_rec(HepMC::GenEvent *evt)
Definition: HydjetHadronizer.cc:125
ReggeGribovPartonMC_AdvancedParameters_cfi.bmin
bmin
Definition: ReggeGribovPartonMC_AdvancedParameters_cfi.py:4
gen::HydjetHadronizer::hadfreeztemp_
double hadfreeztemp_
Definition: HydjetHadronizer.h:91
gen::HydjetHadronizer::rotate_
bool rotate_
Definition: HydjetHadronizer.h:117
gen::HydjetHadronizer::evt
HepMC::GenEvent * evt
Definition: HydjetHadronizer.h:69
gen::HydjetHadronizer::bmin_
double bmin_
Definition: HydjetHadronizer.h:76
gen::pycomp_
int pycomp_(int &)
edm
HLT enums.
Definition: AlignableModifier.h:19
gen::pyr_
double pyr_(int *idummy)
Definition: Pythia6Service.cc:60
gather_cfg.cout
cout
Definition: gather_cfg.py:144
hyfpar
#define hyfpar
Definition: HydjetWrapper.h:51
gen::HydjetHadronizer::src_
edm::InputTag src_
Definition: HydjetHadronizer.h:125
edm::errors::EventCorruption
Definition: EDMException.h:43
edm::LogInfo
Definition: MessageLogger.h:254
pypars
#define pypars
Definition: ExhumeHadronizer.cc:45
gen::FortranInstance::kFortranInstance
static const std::string kFortranInstance
Definition: FortranInstance.h:88
Pythia6Declarations.h
gen::HydjetHadronizer::qgpt0_
double qgpt0_
Definition: HydjetHadronizer.h:109
HydjetWrapper.h
gen::HydjetHadronizer::hadronize
bool hadronize()
Definition: HydjetHadronizer.cc:474
gen::HydjetHadronizer::residualDecay
bool residualDecay()
Definition: HydjetHadronizer.cc:478
HYINIT
#define HYINIT
Definition: HydjetWrapper.h:18
HydjetHadronizer.h
gen::Pythia6Service::setRandomEngine
void setRandomEngine(CLHEP::HepRandomEngine *v)
Definition: Pythia6Service.h:46
edm::Handle
Definition: AssociativeIterator.h:50
gen::BaseHadronizer
Definition: BaseHadronizer.h:46
GenRunInfoProduct.h
ecalTrigSettings_cff.particles
particles
Definition: ecalTrigSettings_cff.py:11
npart
double npart
Definition: HydjetWrapper.h:46
gen::Pythia6Service::setGeneralParams
void setGeneralParams()
Definition: Pythia6Service.cc:157
gen::HydjetHadronizer::sinphi0_
double sinphi0_
Definition: HydjetHadronizer.h:115
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
gen::HydjetHadronizer::nuclear_radius
double nuclear_radius() const
Definition: HydjetHadronizer.h:128
edm::Exception
Definition: EDMException.h:77
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
gen::HydjetHadronizer::nsoft_
int nsoft_
Definition: HydjetHadronizer.h:105
gen::HydjetHadronizer::statistics
void statistics()
Definition: HydjetHadronizer.cc:482
gen::HydjetHadronizer::comenergy
double comenergy
Definition: HydjetHadronizer.h:82
gen::HydjetHadronizer::hydjet_init
bool hydjet_init(const edm::ParameterSet &pset)
Definition: HydjetHadronizer.cc:352
EDMException.h
gen::HydjetHadronizer::embedding_
bool embedding_
Definition: HydjetHadronizer.h:81
part
part
Definition: HCALResponse.h:20
gen::HydjetHadronizer::classname
const char * classname() const
Definition: HydjetHadronizer.cc:484
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
gen::HydjetHadronizer::decay
bool decay()
Definition: HydjetHadronizer.cc:476
gen::p
double p[5][pyjets_maxn]
Definition: Cascade2Hadronizer.cc:74
gen::HydjetHadronizer::maxEventsToPrint_
unsigned int maxEventsToPrint_
Definition: HydjetHadronizer.h:94
gen::HydjetHadronizer::generatePartonsAndHadronize
bool generatePartonsAndHadronize()
Definition: HydjetHadronizer.cc:189
cms::cuda::nh
uint32_t nh
Definition: HistoContainer.h:23
Run.h
gen::FortranInstance::InstanceWrapper
Definition: FortranInstance.h:54
gen::HydjetHadronizer::build_hyjet
HepMC::GenParticle * build_hyjet(int index, int barcode)
Definition: HydjetHadronizer.cc:151
gen::BaseHadronizer::getEDMEvent
edm::Event & getEDMEvent() const
Definition: BaseHadronizer.h:69
gen::HydjetHadronizer::qgptau0_
double qgptau0_
Definition: HydjetHadronizer.h:111
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
SharedResourceNames.h
gen
Definition: PythiaDecays.h:13
OrderedSet.t
t
Definition: OrderedSet.py:90
FortranInstance.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition: MessageLogger.h:141
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
edm::LogError
Definition: MessageLogger.h:183
a
double a
Definition: hdecay.h:119
gen::HydjetHadronizer::pythia6Service_
Pythia6Service * pythia6Service_
Definition: HydjetHadronizer.h:124
GenEventInfoProduct.h
Event.h
hyjets
#define hyjets
Definition: HydjetWrapper.h:80
gen::HydjetHadronizer::~HydjetHadronizer
~HydjetHadronizer() override
Definition: HydjetHadronizer.cc:115
gen::HydjetHadronizer::bmax_
double bmax_
Definition: HydjetHadronizer.h:74
gen::HydjetHadronizer::call_hyinit
bool call_hyinit(double energy, double a, int ifb, double bmin, double bmax, double bfix, int nh)
Definition: HydjetHadronizer.cc:343
ReggeGribovPartonMC_AdvancedParameters_cfi.bmax
bmax
Definition: ReggeGribovPartonMC_AdvancedParameters_cfi.py:5
gen::HydjetHadronizer::pythiaPylistVerbosity_
unsigned int pythiaPylistVerbosity_
Definition: HydjetHadronizer.h:108
gen::HydjetHadronizer::signn_
double signn_
Definition: HydjetHadronizer.h:121
gen::HydjetHadronizer::cosphi0_
double cosphi0_
Definition: HydjetHadronizer.h:116
gen::HydjetHadronizer::fracsoftmult_
double fracsoftmult_
DEFAULT = true.
Definition: HydjetHadronizer.h:85
gen::v
double v[5][pyjets_maxn]
Definition: Cascade2Hadronizer.cc:74
createfilelist.int
int
Definition: createfilelist.py:10
gen::HydjetHadronizer::hymode_
std::string hymode_
Definition: HydjetHadronizer.h:93
hyflow
#define hyflow
Definition: HydjetWrapper.h:40
gen::HydjetHadronizer::doradiativeenloss_
bool doradiativeenloss_
Definition: HydjetHadronizer.h:83
hi
Definition: HiEvtPlaneList.h:38
gen::HydjetHadronizer::build_hyjet_vertex
HepMC::GenVertex * build_hyjet_vertex(int i, int id)
Definition: HydjetHadronizer.cc:173
gen::HydjetHadronizer::maxtrany_
double maxtrany_
Definition: HydjetHadronizer.h:98
GenParticle.GenParticle
GenParticle
Definition: GenParticle.py:18
gen::HydjetHadronizer::declareStableParticles
bool declareStableParticles(const std::vector< int > &)
Definition: HydjetHadronizer.cc:453
std
Definition: JetResolutionObject.h:76
gen::BaseHadronizer::event
std::unique_ptr< HepMC::GenEvent > & event()
Definition: BaseHadronizer.h:86
gen::HydjetHadronizer::nsub_
int nsub_
Definition: HydjetHadronizer.h:101
hyjpar
#define hyjpar
Definition: HydjetWrapper.h:93
gen::HydjetHadronizer::pset_
edm::ParameterSet pset_
Definition: HydjetHadronizer.h:70
gen::HydjetHadronizer::nhard_
int nhard_
Definition: HydjetHadronizer.h:102
gen::HydjetHadronizer::rotateEvtPlane
void rotateEvtPlane()
Definition: HydjetHadronizer.cc:466
GenHIEvent.h
edm::SharedResourceNames::kPythia6
static const std::string kPythia6
Definition: SharedResourceNames.h:26
gen::HydjetHadronizer::phi0_
double phi0_
Definition: HydjetHadronizer.h:114
gen::HydjetHadronizer::maxlongy_
double maxlongy_
Definition: HydjetHadronizer.h:95
pyqpar
#define pyqpar
Definition: HydjetWrapper.h:112
Pythia6Service.h
pdg
Definition: pdg_functions.h:28
gen::HydjetHadronizer::initializeForInternalPartons
bool initializeForInternalPartons()
Definition: HydjetHadronizer.cc:433
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
HYEVNT
#define HYEVNT
Definition: HydjetWrapper.h:25
gen::HydjetHadronizer::doSetRandomEngine
void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
Definition: HydjetHadronizer.cc:122
pi
const Double_t pi
Definition: trackSplitPlot.h:36
gen::Pythia6Service
Definition: Pythia6Service.h:24
gen::HydjetHadronizer::nquarkflavor_
unsigned int nquarkflavor_
Definition: HydjetHadronizer.h:106
gen::HydjetHadronizer::readSettings
bool readSettings(int)
Definition: HydjetHadronizer.cc:424
ParameterSet.h
HepMCProduct.h
gen::HydjetHadronizer::abeamtarget_
double abeamtarget_
Definition: HydjetHadronizer.h:71
gen::HydjetHadronizer::docollisionalenloss_
bool docollisionalenloss_
DEFAULT = true.
Definition: HydjetHadronizer.h:84
edm::Event
Definition: Event.h:73
gen::HydjetHadronizer::angularspecselector_
int angularspecselector_
Definition: HydjetHadronizer.h:72
gen::HydjetHadronizer::nmultiplicity_
int nmultiplicity_
Definition: HydjetHadronizer.h:103
gen::call_pygive
bool call_pygive(const std::string &line)
Definition: ExhumeHadronizer.cc:64
gen::HydjetHadronizer::finalizeEvent
void finalizeEvent()
Definition: HydjetHadronizer.cc:480
edm::InputTag
Definition: InputTag.h:15
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
gen::HydjetHadronizer::bfixed_
double bfixed_
Definition: HydjetHadronizer.h:73
gen::HydjetHadronizer::shadowingswitch_
unsigned int shadowingswitch_
Definition: HydjetHadronizer.h:119
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37