ATLAS Offline Software
Hydjet_i.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // -------------------------------------------------------------
6 // Generators/Hydjet.cxx Description: Allows the user
7 // to generate Hydjet events and store the result in the
8 // Transient Store.
9 //
10 // AuthorList:
11 // Andrzej Olszewski: Initial Code February 2007
12 //
13 // m_hyipar used only for stoing precalculated AW nad RA
14 
15 #include "Hydjet_i/Hydjet_i.h"
16 
17 #include "GaudiKernel/MsgStream.h"
18 
19 #include "CxxUtils/StringParse.h"
20 
21 #include "AtlasHepMC/GenEvent.h"
22 #include "AtlasHepMC/GenVertex.h"
23 #include "AtlasHepMC/GenParticle.h"
24 
25 #include <stdlib.h>
26 
27 #include "CLHEP/Random/RandFlat.h"
28 #include "CLHEP/Vector/LorentzVector.h"
29 
30 // calls to fortran routines
31 extern "C"
32 {
33  void luedit_(int*);
34 
35  void hyinit_(double*, double*, int*, double*, double*, double*, int*);
36 
37  void hyevnt_();
38 }
39 
40 Hydjet::Hydjet(const std::string& name,
41  ISvcLocator* pSvcLocator): GenModule(name,pSvcLocator)
42 {
43  declareProperty("Initialize", m_InitializeVector);
44 }
45 
47 {
48 
50  // Initialisation of input parameters
51  //
52  ATH_MSG_INFO( "===> March 13 2008 HYDJET INTERFACE VERSION. \n" );
53  ATH_MSG_INFO( "===> HYDJET INITIALISING. \n" );
54 
55  // Set the users' initialisation parameters choices
57 
58  /*
59  std::cout << " PRINTING HYFLOW " << std::endl;
60  std::cout << "ytfl,ylfl,tf,fpart" << ", "
61  << m_hyflow.ytfl() << ", " << m_hyflow.ylfl() << ", "
62  << m_hyflow.tf() << ", " << m_hyflow.fpart()
63  << std::endl;
64  std::cout << " PRINTING HYJPAR " << std::endl;
65  std::cout << "ptmin,sigin,sigjet,nhsel,ishad,njet" << ", "
66  << m_hyjpar.ptmin() << ", " << m_hyjpar.sigin() << ", "
67  << m_hyjpar.sigjet() << ", " << m_hyjpar.nhsel() << ", "
68  << m_hyjpar.ishad() << ", " << m_hyjpar.njet()
69  << std::endl;
70  std::cout << " PRINTING PYQPAR " << std::endl;
71  std::cout << "ienglu,ianglu,t0,tau0,nf" << ", "
72  << m_pyqpar.ienglu() << ", " << m_pyqpar.ianglu() << ", "
73  << m_pyqpar.t0() << ", " << m_pyqpar.tau0() << ", "
74  << m_pyqpar.nf() << std::endl;
75  */
76 
78 
79  /*
80  std::cout << " PRINTING MSTU " << std::endl;
81  for (int i = 1; i <= m_pydat1.lenMstu(); ++i)
82  std::cout << i << ":" << m_pydat1.mstu(i) << ", ";
83  std::cout << std::endl;
84  std::cout << " PRINTING PARU " << std::endl;
85  for (int i = 1; i <= m_pydat1.lenParu(); ++i)
86  std::cout << i << ":" << m_pydat1.paru(i) << ", ";
87  std::cout << std::endl;
88  std::cout << " PRINTING MSTJ " << std::endl;
89  for (int i = 1; i <= m_pydat1.lenMstj(); ++i)
90  std::cout << i << ":" << m_pydat1.mstj(i) << ", ";
91  std::cout << std::endl;
92  std::cout << " PRINTING PARJ " << std::endl;
93  for (int i = 1; i <= m_pydat1.lenParj(); ++i)
94  std::cout << i << ":" << m_pydat1.parj(i) << ", ";
95  std::cout << std::endl;
96 
97  std::cout << " PRINTING MSTP " << std::endl;
98  for (int i = 1; i <= m_pypars.lenMstp(); ++i)
99  std::cout << i << ":" << m_pypars.mstp(i) << ", ";
100  std::cout << std::endl;
101  std::cout << " PRINTING PARP " << std::endl;
102  for (int i = 1; i <= m_pypars.lenParp(); ++i)
103  std::cout << i << ":" << m_pypars.parp(i) << ", ";
104  std::cout << std::endl;
105  std::cout << " PRINTING MSTI " << std::endl;
106  for (int i = 1; i <= m_pypars.lenMsti(); ++i)
107  std::cout << i << ":" << m_pypars.msti(i) << ", ";
108  std::cout << std::endl;
109  std::cout << " PRINTING PARI " << std::endl;
110  for (int i = 1; i <= m_pypars.lenPari(); ++i)
111  std::cout << i << ":" << m_pypars.pari(i) << ", ";
112  std::cout << std::endl;
113 
114  std::cout << " PRINTING PYSUBS " << std::endl;
115  std::cout << "msel,mselpd" << ", "
116  << m_pysubs.msel() << ", " << m_pysubs.mselpd() << std::endl;
117  std::cout << " PRINTING MSUB " << std::endl;
118  for (int i = 1; i <= m_pysubs.lenMsub(); ++i)
119  std::cout << i << ":" << m_pysubs.msub(i) << ", ";
120  std::cout << std::endl;
121  std::cout << " PRINTING KFIN " << std::endl;
122  for (int i = 1; i <= m_pysubs.leniKfin(); ++i)
123  for (int j = 1; j <= m_pysubs.lenjKfin(); ++j)
124  std::cout << i << ":" << j << ":" << m_pysubs.kfin(i,j) << ", ";
125  std::cout << std::endl;
126  std::cout << " PRINTING CKIN " << std::endl;
127  for (int i = 1; i <= m_pysubs.lenCkin(); ++i)
128  std::cout << i << ":" << m_pysubs.ckin(i) << ", ";
129  std::cout << std::endl;
130  */
131 
132  return StatusCode::SUCCESS;
133 }
134 
136 {
137  ATH_MSG_INFO( " HYDJET generating. \n" );
138 
139  // Generate event
140  hyevnt_();
141 
142  // Remove unstable particles and partons
143  int luedit_init = 2;
144  luedit_(&luedit_init);
145 
146  // update event counter
147  ++m_events;
148 
149  /*
150  std::cout << " PRINTING HYIPAR " << std::endl;
151  std::cout << "bminh,bmaxh,AW,RA,npar0,nbco0,Apb,Rpb,np,init,ipr" << ", "
152  << m_hyipar.bminh() << ", " << m_hyipar.bmaxh() << ", "
153  << m_hyipar.AW() << ", " << m_hyipar.RA() << ", "
154  << m_hyipar.npar0() << ", " << m_hyipar.nbco0() << ", "
155  << m_hyipar.Apb() << ", " << m_hyipar.Rpb() << ", "
156  << m_hyipar.np() << ", " << m_hyipar.init() << ", "
157  << m_hyipar.ipr() << std::endl;
158  std::cout << " PRINTING HYFPAR " << std::endl;
159  std::cout << "bgen,nbcol,npart,npyt,nhyd" << ", "
160  << m_hyfpar.bgen() << ", " << m_hyfpar.nbcol() << ", "
161  << m_hyfpar.npart() << ", " << m_hyfpar.npyt() << ", "
162  << m_hyfpar.nhyd() << std::endl;
163  */
164 
165  // store hijing event parameters
166  // -----------------------------
167  ATH_MSG_DEBUG( "New HijingEventParams" );
168  int np = (int) round(m_hyfpar.npart()/2);
169  int nt = (int) round(m_hyfpar.npart()/2);
170  int n0 = (int) round(m_hyfpar.nbcol());
171  int n01 = -1;
172  int n10 = -1;
173  int n11 = -1;
174  int natt = m_hyfpar.nhyd() + m_hyfpar.npyt();
175  int jatt = m_hyjpar.njet();
176  float b = m_hyfpar.bgen() * m_hyipar.RA();
177  float bphi = 0;
178 
180  event_params = std::make_unique<HijingEventParams>(np, nt, n0, n01, n10, n11, natt, jatt, b, bphi);
181 
182  ATH_MSG_INFO( "\n=================================================\n"
183  << " HYDJET event description: \n"
184  << " b = " << b << " fm \n"
185  << " # total participants = " << m_hyfpar.npart() << "\n"
186  << " # collisions = " << m_hyfpar.nbcol() << "\n"
187  << " # jets = " << m_hyjpar.njet() << "\n"
188  << " # pythia particles = " << m_hyfpar.npyt() << "\n"
189  << " # hydro particles = " << m_hyfpar.nhyd() << "\n"
190  << "=================================================\n" );
191 
192  ATH_MSG_DEBUG( " HIJING generating done. \n" );
193  return StatusCode::SUCCESS;
194 }
195 
198 {
199  ATH_MSG_INFO( " HIJING Ending. \n" );
200  return StatusCode::SUCCESS;
201 }
202 
204 Hydjet::fillEvt(HepMC::GenEvent* evt)
205 {
206  ATH_MSG_INFO( " HYDJET Filing. \n" );
207 
208  // Set the event number
209  evt->set_event_number( m_events );
210 
211  // Set the random generator seeds
212  // evt->set_random_states(m_seeds);
213 
214  // Set the generator id
215  HepMC::set_signal_process_id(evt,100000000 + int(m_a));
216 
217  // Create the event vertex
219  evt->add_vertex( v1 );
220 
221  double eproj = m_e/2.0;
222  int proj_id = (int) m_a;
223  v1->add_particle_in( HepMC::newGenParticlePtr( HepMC::FourVector(0., 0., eproj, eproj), proj_id, 101 ) );
224 
225  double etarg = m_e/2.0;
226  int targ_id = (int) m_a;
227  v1->add_particle_in( HepMC::newGenParticlePtr( HepMC::FourVector(0., 0., -etarg, etarg), targ_id, 102 ) );
228 
229  // Loop on all final particles and
230  // put them all as outgoing from the event vertex
231  for (int i = 1; i <= m_lujets.n(); ++i)
232  {
233  v1->add_particle_out( HepMC::newGenParticlePtr(
234  HepMC::FourVector(m_lujets.p(i, 1), m_lujets.p(i, 2),
235  m_lujets.p(i, 3), m_lujets.p(i, 4)), m_lujets.k(i, 2), 1 ) );
236  }
237 
238  // Set the generator id
239  HepMC::set_signal_process_id(evt,100000000 + int(m_a));
240 
241  // Convert cm->mm and GeV->MeV
242  //
243  GeVToMeV(evt);
244 
245  return StatusCode::SUCCESS;
246 }
247 
248 void
250 {
251  m_e = 5520.0;
252  m_a = 208;
253 
254  // copy of HYDJET calculations
255  m_hyipar.AW() = m_a;
256  m_hyipar.RA() = 1.15 * std::pow(m_a,0.333333);
257 
258  m_ifb = 1;
259  m_bmin = 0;
260  m_bmax = 1;
261  m_bfix = 0;
262  m_nh = 20000;
263 
264  // set hydro parameters
265  // nhsel=0 - hydro (no jets), nhsel=1 - hydro + pythia jets,
266  // nhsel=2 - hydro + pyquen jets, nhsel=3 - pythia jets (no hydro),
267  // nhsel=4 - pyquen jets (no hydro)
268  m_hyjpar.nhsel()=2; // flag to include hard scatterings
269  m_hyjpar.ishad()=1; // flag to include "nuclear shadowing"
270  m_hyflow.ylfl()=4.; // maximum longitudinal flow rapidity
271  m_hyflow.ytfl()=1.5; // maximum transverse flow rapidity
272  m_hyflow.tf()=0.1; // freeze-out temperature in GeV
273  m_hyflow.fpart()=1.; // fraction of soft multiplicity proportional
274  // # of nucleons-participants
275 
276  // set quenching parameters
277  // ienglu=0 - radiative and collisional loss,
278  // ienglu=1 - only radiative loss, ienglu=2 - only collisional loss;
279  // ianglu=0 - small-angular radiation, ianglu=1 - wide angular radiation,
280  // inanglu=2 - collinear radiation
281  m_pyqpar.ienglu()=0; // radiative and collisional loss
282  m_pyqpar.ianglu()=0; // radiative and collisional loss
283  m_pyqpar.t0()=0; // initial QGP temperature
284  m_pyqpar.tau0()=0.1; // proper time of QGP formation
285  m_pyqpar.nf()=0; // number of active quark flavours in QGP
286 
287  // set input PYTHIA parameters
288  m_pysubs.msel()=1; // QCD-dijet production
289  m_hyjpar.ptmin()=10.;
290  // hydjet recommendation
291  m_pysubs.ckin(3)=m_hyjpar.ptmin();// minimum pt in initial hard sub-process
292  m_pypars.mstp(51)=7; // CTEQ5M pdf
293  m_pypars.mstp(81)=0; // pp multiple scattering off
294  m_pydat1.mstu(21)=1; // avoid stopping run
295  m_pydat1.paru(14)=1.; // tolerance parameter to adjust fragmentation
296 
297  // Set user Initialization parameters
299  {
300  ATH_MSG_INFO( " Command is: " << *i );
301  StringParse mystring(*i);
302  std::string myparam = mystring.piece<std::string>(1);
303  if (myparam == "e")
304  {
305  m_e = mystring.piece<double>(2);
306  }
307  else if (myparam == "a")
308  {
309  m_a = mystring.piece<int>(2);
310  }
311  else if (myparam == "ifb")
312  {
313  m_ifb = mystring.piece<int>(2);
314  }
315  else if (myparam == "bmin")
316  {
317  m_bmin = mystring.piece<double>(2);
318  m_bmin /= m_hyipar.RA();
319  }
320  else if (myparam == "bmax")
321  {
322  m_bmax = mystring.piece<double>(2);
323  m_bmax /= m_hyipar.RA();
324  }
325  else if (myparam == "bfix")
326  {
327  m_bfix = mystring.piece<double>(2);
328  m_bfix /= m_hyipar.RA();
329  }
330  else if (myparam == "nh")
331  {
332  m_nh = mystring.piece<int>(2);
333  }
334  else if (myparam == "nseed")
335  {
336  m_ludatr.mrlu(1) = mystring.piece<int>(2);
337  }
338  else if (myparam == "ytfl")
339  {
340  m_hyflow.ytfl() = mystring.piece<double>(2);
341  }
342  else if (myparam == "ylfl")
343  {
344  m_hyflow.ylfl() = mystring.piece<double>(2);
345  }
346  else if (myparam == "tf")
347  {
348  m_hyflow.tf() = mystring.piece<double>(2);
349  }
350  else if (myparam == "fpart")
351  {
352  m_hyflow.fpart() = mystring.piece<double>(2);
353  }
354  else if (myparam == "nhsel")
355  {
356  m_hyjpar.nhsel() = mystring.piece<int>(2);
357  }
358  else if (myparam == "ishad")
359  {
360  m_hyjpar.ishad() = mystring.piece<int>(2);
361  }
362  else if (myparam == "ptmin")
363  {
364  m_hyjpar.ptmin() = mystring.piece<double>(2);
365  // hydjet recommendation
366  m_pysubs.ckin(3) = mystring.piece<double>(2);
367  }
368  else if (myparam == "ienglu")
369  {
370  m_pyqpar.ienglu() = mystring.piece<int>(2);
371  }
372  else if (myparam == "ianglu")
373  {
374  m_pyqpar.ianglu() = mystring.piece<int>(2);
375  }
376  else if (myparam == "t0")
377  {
378  m_pyqpar.t0() = mystring.piece<double>(2);
379  }
380  else if (myparam == "tau0")
381  {
382  m_pyqpar.tau0() = mystring.piece<double>(2);
383  }
384  else if (myparam == "nf")
385  {
386  m_pyqpar.nf() = mystring.piece<int>(2);
387  }
388  else if (myparam == "mstu")
389  {
390  int myelem = mystring.piece<int>(2);
391  m_pydat1.mstu(myelem) = mystring.piece<int>(3);
392  }
393  else if (myparam == "paru")
394  {
395  int myelem = mystring.piece<int>(2);
396  m_pydat1.paru(myelem) = mystring.piece<double>(3);
397  }
398  else if (myparam == "mstj")
399  {
400  int myelem = mystring.piece<int>(2);
401  m_pydat1.mstj(myelem) = mystring.piece<int>(3);
402  }
403  else if (myparam == "parj")
404  {
405  int myelem = mystring.piece<int>(2);
406  m_pydat1.parj(myelem) = mystring.piece<double>(3);
407  }
408  else if (myparam == "msel")
409  {
410  m_pysubs.msel() = mystring.piece<int>(2);
411  }
412  else if (myparam == "mselpd")
413  {
414  m_pysubs.mselpd() = mystring.piece<int>(2);
415  }
416  else if (myparam == "msub")
417  {
418  int myelem = mystring.piece<int>(2);
419  m_pysubs.msub(myelem) = mystring.piece<int>(3);
420  }
421  else if (myparam == "kfin")
422  {
423  int myelem1 = mystring.piece<int>(2);
424  int myelem2 = mystring.piece<int>(3);
425  m_pysubs.kfin(myelem1,myelem2) = mystring.piece<int>(4);
426  }
427  else if (myparam == "ckin")
428  {
429  int myelem = mystring.piece<int>(2);
430  m_pysubs.ckin(myelem) = mystring.piece<double>(3);
431  }
432  else if (myparam == "mstp")
433  {
434  int myelem = mystring.piece<int>(2);
435  m_pypars.mstp(myelem) = mystring.piece<int>(3);
436  }
437  else if (myparam == "parp")
438  {
439  int myelem = mystring.piece<int>(2);
440  m_pypars.parp(myelem) = mystring.piece<double>(3);
441  }
442  else if (myparam == "msti")
443  {
444  int myelem = mystring.piece<int>(2);
445  m_pypars.msti(myelem) = mystring.piece<int>(3);
446  }
447  else if (myparam == "pari")
448  {
449  int myelem = mystring.piece<int>(2);
450  m_pypars.pari(myelem) = mystring.piece<double>(3);
451  }
452  else
453  {
454  ATH_MSG_ERROR( " ERROR in HIJING INITIALIZATION PARAMETERS " << myparam
455  << " is an invalid parameter !" );
456  }
457  }
458 }
HepMC::GenVertexPtr
HepMC::GenVertex * GenVertexPtr
Definition: GenVertex.h:59
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
HyFlow::fpart
double & fpart(void)
Definition: HyFlow.h:84
Hydjet::m_ludatr
LuDatr m_ludatr
Definition: Hydjet_i.h:89
StringParse
Utility object for parsing a string into tokens and returning them as a variety of types.
Definition: StringParse.h:33
PyDat1::mstu
int & mstu(int n)
Definition: PyDat1.h:77
GenEvent.h
PyPars::mstp
int & mstp(int n)
Definition: PyPars.h:77
HyjPar::njet
int & njet(void)
Definition: HyjPar.h:102
Hydjet::m_bmin
double m_bmin
Definition: Hydjet_i.h:60
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
HyjPar::ptmin
double & ptmin(void)
Definition: HyjPar.h:67
GenBase::GeVToMeV
void GeVToMeV(HepMC::GenEvent *evt)
Scale event energies/momenta by x 1000.
Definition: GenBase.cxx:58
Hydjet::callGenerator
virtual StatusCode callGenerator()
For calling the generator on each iteration of the event loop.
Definition: Hydjet_i.cxx:135
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
PyPars::msti
int & msti(int n)
Definition: PyPars.h:93
LuJets::n
int & n(void)
Definition: LuJets.h:84
Hydjet::m_InitializeVector
CommandVector m_InitializeVector
Definition: Hydjet_i.h:72
GenVertex.h
StringParse.h
MuonGM::round
float round(const float toRound, const unsigned int decimals)
Definition: Mdt.cxx:27
HyfPar::nhyd
int & nhyd(void)
Definition: HyfPar.h:93
PySubs::kfin
int & kfin(int i, int j)
Definition: PySubs.h:101
HyfPar::bgen
double & bgen(void)
Definition: HyfPar.h:65
PyqPar::tau0
double & tau0(void)
Definition: PyqPar.h:72
PySubs::mselpd
int & mselpd(void)
Definition: PySubs.h:86
PyPars::parp
double & parp(int n)
Definition: PyPars.h:85
PySubs::ckin
double & ckin(int n)
Definition: PySubs.h:111
Hydjet::set_user_params
void set_user_params(void)
Definition: Hydjet_i.cxx:249
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
HyfPar::nbcol
double & nbcol(void)
Definition: HyfPar.h:72
Hydjet::m_a
double m_a
Definition: Hydjet_i.h:58
PlotPulseshapeFromCool.np
np
Definition: PlotPulseshapeFromCool.py:64
Hydjet_i.h
PyPars::pari
double & pari(int n)
Definition: PyPars.h:101
GenParticle.h
HyjPar::ishad
int & ishad(void)
Definition: HyjPar.h:95
Hydjet::m_pypars
PyPars m_pypars
Definition: Hydjet_i.h:81
GenModule
Base class for common behaviour of generator interfaces.
Definition: GenModule.h:39
Hydjet::m_bmax
double m_bmax
Definition: Hydjet_i.h:61
StringParse::piece
T piece(size_t num) const
Templated function to get the num'th token as any numeric type.
Definition: StringParse.h:44
Hydjet::m_bfix
double m_bfix
Definition: Hydjet_i.h:62
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
HepMC::newGenVertexPtr
GenVertexPtr newGenVertexPtr(const HepMC::FourVector &pos=HepMC::FourVector(0.0, 0.0, 0.0, 0.0), const int i=0)
Definition: GenVertex.h:64
lumiFormat.i
int i
Definition: lumiFormat.py:85
Hydjet::m_pydat1
PyDat1 m_pydat1
Definition: Hydjet_i.h:83
Hydjet::m_hyjpar
HyjPar m_hyjpar
Definition: Hydjet_i.h:76
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Hydjet::m_pysubs
PySubs m_pysubs
Definition: Hydjet_i.h:82
HyiPar::AW
double & AW(void)
Definition: HyiPar.h:89
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Hydjet::m_nh
int m_nh
Definition: Hydjet_i.h:63
PySubs::msel
int & msel(void)
Definition: PySubs.h:79
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
luedit_
void luedit_(int *)
PyDat1::parj
double & parj(int n)
Definition: PyDat1.h:101
PyqPar::ienglu
int & ienglu(void)
Definition: PyqPar.h:86
Hydjet::m_pyqpar
PyqPar m_pyqpar
Definition: Hydjet_i.h:86
Hydjet::Hydjet
Hydjet(const std::string &name, ISvcLocator *pSvcLocator)
Definition: Hydjet_i.cxx:40
Hydjet::m_lujets
LuJets m_lujets
Definition: Hydjet_i.h:92
HyjPar::nhsel
int & nhsel(void)
Definition: HyjPar.h:88
Hydjet::m_hyfpar
HyfPar m_hyfpar
Definition: Hydjet_i.h:77
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
HyFlow::tf
double & tf(void)
Definition: HyFlow.h:77
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
hyinit_
void hyinit_(double *, double *, int *, double *, double *, double *, int *)
Hydjet::m_hyipar
HyiPar m_hyipar
Definition: Hydjet_i.h:75
LuJets::p
float & p(int i, int j)
Definition: LuJets.h:101
Hydjet::genInitialize
virtual StatusCode genInitialize()
For initializing the generator, if required.
Definition: Hydjet_i.cxx:46
PyDat1::mstj
int & mstj(int n)
Definition: PyDat1.h:93
LuDatr::mrlu
int & mrlu(int n)
Definition: LuDatr.h:69
SG::WriteHandle< HijingEventParams >
HepMC::newGenParticlePtr
GenParticlePtr newGenParticlePtr(const HepMC::FourVector &mom=HepMC::FourVector(0.0, 0.0, 0.0, 0.0), int pid=0, int status=0)
Definition: GenParticle.h:39
PySubs::msub
int & msub(int n)
Definition: PySubs.h:93
Hydjet::m_hyflow
HyFlow m_hyflow
Definition: Hydjet_i.h:78
HyiPar::RA
double & RA(void)
Definition: HyiPar.h:96
Hydjet::fillEvt
virtual StatusCode fillEvt(HepMC::GenEvent *evt)
For filling the HepMC event object.
Definition: Hydjet_i.cxx:204
hyevnt_
void hyevnt_()
HyFlow::ytfl
double & ytfl(void)
Definition: HyFlow.h:63
HyfPar::npart
double & npart(void)
Definition: HyfPar.h:79
Hydjet::genFinalize
virtual StatusCode genFinalize()
For finalising the generator, if required.
Definition: Hydjet_i.cxx:197
HyfPar::npyt
int & npyt(void)
Definition: HyfPar.h:86
PyqPar::ianglu
int & ianglu(void)
Definition: PyqPar.h:93
Hydjet::m_event_paramsKey
SG::WriteHandleKey< HijingEventParams > m_event_paramsKey
Definition: Hydjet_i.h:97
beamspotnt.nt
def nt
Definition: bin/beamspotnt.py:1063
HepMC::set_signal_process_id
void set_signal_process_id(GenEvent *e, const int i)
Definition: GenEvent.h:641
LuJets::k
int & k(int i, int j)
Definition: LuJets.h:91
HyFlow::ylfl
double & ylfl(void)
Definition: HyFlow.h:70
Hydjet::m_ifb
int m_ifb
Definition: Hydjet_i.h:59
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
Hydjet::m_e
double m_e
Definition: Hydjet_i.h:57
PyqPar::t0
double & t0(void)
Definition: PyqPar.h:65
PyDat1::paru
double & paru(int n)
Definition: PyDat1.h:85
Hydjet::m_events
int m_events
Definition: Hydjet_i.h:69
PyqPar::nf
int & nf(void)
Definition: PyqPar.h:79