Hydjet  2.4
A Monte-Carlo model of jet quenching in ultrarelativistic heavy ion collisions
Hydjet2.h
1 
11 #ifndef HYDJET2_H
12 #define HYDJET2_H
13 
14 #include <TMath.h>
15 #include <TRandom.h>
16 
17 #include <fstream>
18 #include <iostream>
19 #include <vector>
20 
21 #include "InitialParams.h"
22 
23 
24 class Hydjet2 {
25 
26 public:
28  ~Hydjet2();
29 
30  void GenerateEvent(Double_t);
31 
32  //ref-qualified getters
33 
34  std::vector<Int_t> &GetPdg() & { return pdg; }
35  std::vector<Int_t> &GetMpdg() & { return Mpdg; }
36  std::vector<Int_t> &GetType() & { return type; }
37  std::vector<Int_t> &GetPythiaStatus() & { return pythiaStatus; }
38  std::vector<Double_t> &GetPx() & { return Px; }
39  std::vector<Double_t> &GetPy() & { return Py; }
40  std::vector<Double_t> &GetPz() & { return Pz; }
41  std::vector<Double_t> &GetE() & { return E; }
42  std::vector<Double_t> &GetX() & { return X; }
43  std::vector<Double_t> &GetY() & { return Y; }
44  std::vector<Double_t> &GetZ() & { return Z; }
45  std::vector<Double_t> &GetT() & { return T; }
46  std::vector<Int_t> &GetIndex() & { return Index; }
47  std::vector<Int_t> &GetMotherIndex() & { return MotherIndex; }
48  std::vector<Int_t> &GetNDaughters() & { return NDaughters; }
49  std::vector<Int_t> &GetFirstDaughterIndex() & { return FirstDaughterIndex; }
50  std::vector<Int_t> &GetLastDaughterIndex() & { return LastDaughterIndex; }
51  std::vector<Int_t> &GetiJet() & { return iJet; }
52  std::vector<Int_t> &GetFinal() & { return ifFinal; }
53  Int_t &GetNtot() & { return Ntot; }
54  Int_t &GetNpyt() & { return Npyt; }
55  Int_t &GetNhyd() & { return Nhyd; }
56  Int_t &GetNjet() & { return Njet; }
57  Int_t &GetNbcol() & { return Nbcol; }
58  Int_t &GetNpart() & { return Npart; }
59  Double_t &GetBgen() & { return Bgen; }
60  Double_t &GetSigin() & { return Sigin; }
61  Double_t &GetSigjet() & { return Sigjet; }
62  Double_t &GetPsiv3() & { return v3psi; }
63  Int_t &GetNev() & { return Nev; }
64  Bool_t &IsEmpty() & { return emptyEvent; }
65  std::vector<Int_t> &GetVersion() & {return Version; }
66 
67  std::vector<Int_t> GetPdg() && { return std::move(pdg); }
68  std::vector<Int_t> GetMpdg() && { return std::move(Mpdg); }
69  std::vector<Int_t> GetType() && { return std::move(type); }
70  std::vector<Int_t> GetPythiaStatus() && { return std::move(pythiaStatus); }
71  std::vector<Double_t> GetPx() && { return std::move(Px); }
72  std::vector<Double_t> GetPy() && { return std::move(Py); }
73  std::vector<Double_t> GetPz() && { return std::move(Pz); }
74  std::vector<Double_t> GetE() && { return std::move(E); }
75  std::vector<Double_t> GetX() && { return std::move(X); }
76  std::vector<Double_t> GetY() && { return std::move(Y); }
77  std::vector<Double_t> GetZ() && { return std::move(Z); }
78  std::vector<Double_t> GetT() && { return std::move(T); }
79  std::vector<Int_t> GetIndex() && { return std::move(Index); }
80  std::vector<Int_t> GetMotherIndex() && { return std::move(MotherIndex); }
81  std::vector<Int_t> GetNDaughters() && { return std::move(NDaughters); }
82  std::vector<Int_t> GetFirstDaughterIndex() && { return std::move(FirstDaughterIndex); }
83  std::vector<Int_t> GetLastDaughterIndex() && { return std::move(LastDaughterIndex); }
84  std::vector<Int_t> GetiJet() && { return std::move(iJet); }
85  std::vector<Int_t> GetFinal() && { return std::move(ifFinal); }
86  Int_t GetNtot() && { return std::move(Ntot); }
87  Int_t GetNpyt() && { return std::move(Npyt); }
88  Int_t GetNhyd() && { return std::move(Nhyd); }
89  Int_t GetNjet() && { return std::move(Njet); }
90  Int_t GetNbcol() && { return std::move(Nbcol); }
91  Int_t GetNpart() && { return std::move(Npart); }
92  Double_t GetBgen() && { return std::move(Bgen); }
93  Double_t GetSigin() && { return std::move(Sigin); }
94  Double_t GetSigjet() && { return std::move(Sigjet); }
95  Double_t GetPsiv3() && { return std::move(v3psi); }
96  Int_t GetNev() && { return std::move(Nev); }
97  Bool_t IsEmpty() && { return std::move(emptyEvent); }
98  std::vector<Int_t> GetVersion() && {return std::move(Version); }
99 
100 private:
101  int cm = 1, va, vb, vc;
102 
103  std::vector<Int_t> Version = std::vector<Int_t>{0, 0, 0};
104  clock_t start;
105  Bool_t emptyEvent=false;
107  Int_t Nev = 0;
108 
111  Int_t Ntot = 0, Npyt = 0, Nhyd = 0;
112 
114  Int_t Njet = 0, Nbcol = 0, Npart = 0;
115 
117  Double_t Bgen, Sigin, Sigjet, v3psi;
118 
119  //define hadron characteristic vectors
120  std::vector<Int_t> pdg;
121  std::vector<Int_t> Mpdg;
122  std::vector<Int_t> type;
123  std::vector<Int_t> pythiaStatus;
124  std::vector<Double_t> Px;
125  std::vector<Double_t> Py;
126  std::vector<Double_t> Pz;
127  std::vector<Double_t> E;
128  std::vector<Double_t> X;
129  std::vector<Double_t> Y;
130  std::vector<Double_t> Z;
131  std::vector<Double_t> T;
132  std::vector<Int_t> Index;
133  std::vector<Int_t> MotherIndex;
134  std::vector<Int_t> NDaughters;
135  std::vector<Int_t> FirstDaughterIndex;
136  std::vector<Int_t> LastDaughterIndex;
137  std::vector<Int_t> iJet;
138  std::vector<Int_t> ifFinal;
139 };
140 #endif
Hydjet2 main class.
Definition: Hydjet2.h:24
Double_t GetSigin() &&
Getter (rvalue) for output information: total inelastic NN cross section at given "fSqrtS" (in mb)
Definition: Hydjet2.h:93
std::vector< Int_t > & GetNDaughters() &
Getter (lvalue) for output information: number of daughters.
Definition: Hydjet2.h:48
std::vector< Int_t > GetVersion() &&
Getter (rvalue) for output information: version information.
Definition: Hydjet2.h:98
std::vector< Int_t > & GetFinal() &
Getter (lvalue) for output information: if the partical is final(=0 no, this particle has decayed; 1=...
Definition: Hydjet2.h:52
std::vector< Int_t > GetFirstDaughterIndex() &&
Getter (rvalue) for output information: first daughter index.
Definition: Hydjet2.h:82
Bool_t & IsEmpty() &
Getter (lvalue) for output information: if true - the event is empty.
Definition: Hydjet2.h:64
Double_t GetPsiv3() &&
Getter (rvalue) for output information: angle for third Fourier harmonic of azimuthal particle distri...
Definition: Hydjet2.h:95
std::vector< Double_t > & GetZ() &
Getter (lvalue) for output information: z-hadron coordinate component,[fm].
Definition: Hydjet2.h:44
std::vector< Int_t > GetPythiaStatus() &&
Getter (rvalue) for output information: pythia status code.
Definition: Hydjet2.h:70
std::vector< Double_t > GetPx() &&
Getter (rvalue) for output information: x-hadron momentum component,[GeV/c].
Definition: Hydjet2.h:71
Int_t & GetNjet() &
Getter (lvalue) for output information: generated number of hard parton-parton scatterings with pt>fP...
Definition: Hydjet2.h:56
std::vector< Double_t > GetT() &&
Getter (rvalue) for output information: hadron time,[fm/c].
Definition: Hydjet2.h:78
Double_t & GetPsiv3() &
Getter (lvalue) for output information: angle for third Fourier harmonic of azimuthal particle distri...
Definition: Hydjet2.h:62
std::vector< Double_t > GetX() &&
Getter (rvalue) for output information: x-hadron coordinate component,[fm].
Definition: Hydjet2.h:75
std::vector< Int_t > GetFinal() &&
Getter (rvalue) for output information: if the partical is final(=0 no, this particle has decayed; 1=...
Definition: Hydjet2.h:85
std::vector< Double_t > GetE() &&
Getter (rvalue) for output information: hadron total energy,[GeV].
Definition: Hydjet2.h:74
std::vector< Int_t > & GetiJet() &
Getter (lvalue) for output information: subevent number (0 - for hydro, number of origin jet for othe...
Definition: Hydjet2.h:51
void GenerateEvent(Double_t)
Generate one event.
std::vector< Double_t > & GetE() &
Getter (lvalue) for output information: hadron total energy,[GeV].
Definition: Hydjet2.h:41
std::vector< Int_t > & GetPdg() &
Getter (lvalue) for output information: pdg encodings.
Definition: Hydjet2.h:34
Bool_t IsEmpty() &&
Getter (rvalue) for output information: if true - the event is empty.
Definition: Hydjet2.h:97
std::vector< Double_t > & GetY() &
Getter (lvalue) for output information: y-hadron coordinate component,[fm].
Definition: Hydjet2.h:43
Hydjet2(InitialParamsHydjet_t)
Constructor of Hydjet2 with input parameters structure (InitialParams.h) as input parameter.
Double_t GetBgen() &&
Getter (rvalue) for output information: generated value of impact parameter in units of nucleus radiu...
Definition: Hydjet2.h:92
Double_t & GetSigin() &
Getter (lvalue) for output information: total inelastic NN cross section at given "fSqrtS" (in mb)
Definition: Hydjet2.h:60
std::vector< Double_t > & GetPx() &
Getter (lvalue) for output information: x-hadron momentum component,[GeV/c].
Definition: Hydjet2.h:38
std::vector< Double_t > GetPz() &&
Getter (rvalue) for output information: z-hadron momentum component,[GeV/c].
Definition: Hydjet2.h:73
std::vector< Int_t > GetMotherIndex() &&
Getter (rvalue) for output information: mother index.
Definition: Hydjet2.h:80
std::vector< Double_t > GetY() &&
Getter (rvalue) for output information: y-hadron coordinate component,[fm].
Definition: Hydjet2.h:76
std::vector< Int_t > & GetMotherIndex() &
Getter (lvalue) for output information: mother index.
Definition: Hydjet2.h:47
Double_t & GetSigjet() &
Getter (lvalue) for output information: hard scattering NN cross section at given "fSqrtS" & "fPtmin"...
Definition: Hydjet2.h:61
Int_t GetNpart() &&
Getter (rvalue) for output information: mean number of nucleons-participants at given "Bgen".
Definition: Hydjet2.h:91
Int_t & GetNbcol() &
Getter (lvalue) for output information: mean number of binary NN sub-collisions at given "Bgen".
Definition: Hydjet2.h:57
std::vector< Int_t > GetType() &&
Getter (rvalue) for output information: type of particle (0-from hydro or decays, 1 -from jets)
Definition: Hydjet2.h:69
std::vector< Int_t > & GetType() &
Getter (lvalue) for output information: type of particle (0-from hydro or decays, 1 -from jets)
Definition: Hydjet2.h:36
std::vector< Int_t > GetIndex() &&
Getter (rvalue) for output information: particle index in the secondaries tree.
Definition: Hydjet2.h:79
std::vector< Int_t > & GetPythiaStatus() &
Getter (lvalue) for output information: pythia status code.
Definition: Hydjet2.h:37
Int_t GetNpyt() &&
Getter (rvalue) for output information: generated multiplicity of "hard" jet-induced particles.
Definition: Hydjet2.h:87
Int_t & GetNev() &
Getter (lvalue) for output information: requested number of events.
Definition: Hydjet2.h:63
Int_t GetNev() &&
Getter (rvalue) for output information: requested number of events.
Definition: Hydjet2.h:96
Int_t & GetNpyt() &
Getter (lvalue) for output information: generated multiplicity of "hard" jet-induced particles.
Definition: Hydjet2.h:54
std::vector< Int_t > & GetFirstDaughterIndex() &
Getter (lvalue) for output information: first daughter index.
Definition: Hydjet2.h:49
std::vector< Int_t > GetNDaughters() &&
Getter (rvalue) for output information: number of daughters.
Definition: Hydjet2.h:81
std::vector< Int_t > GetMpdg() &&
Getter (rvalue) for output information: pdg encodings for mother hadrons.
Definition: Hydjet2.h:68
Int_t GetNjet() &&
Getter (rvalue) for output information: generated number of hard parton-parton scatterings with pt>fP...
Definition: Hydjet2.h:89
Double_t GetSigjet() &&
Getter (rvalue) for output information: hard scattering NN cross section at given "fSqrtS" & & "fPtmi...
Definition: Hydjet2.h:94
std::vector< Int_t > & GetLastDaughterIndex() &
Getter (lvalue) for output information: last daughter index.
Definition: Hydjet2.h:50
std::vector< Int_t > GetiJet() &&
Getter (rvalue) for output information: subevent number (0 - for hydro, number of origin jet for othe...
Definition: Hydjet2.h:84
std::vector< Int_t > & GetMpdg() &
Getter (lvalue) for output information: pdg encodings for mother hadrons.
Definition: Hydjet2.h:35
std::vector< Double_t > & GetX() &
Getter (lvalue) for output information: x-hadron coordinate component,[fm].
Definition: Hydjet2.h:42
std::vector< Double_t > & GetT() &
Getter (lvalue) for output information: hadron time,[fm/c].
Definition: Hydjet2.h:45
std::vector< Int_t > GetPdg() &&
Getter (rvalue) for output information: pdg encodings.
Definition: Hydjet2.h:67
std::vector< Int_t > GetLastDaughterIndex() &&
Getter (rvalue) for output information: last daughter index.
Definition: Hydjet2.h:83
Int_t GetNtot() &&
Getter (rvalue) for output information: generated value of total event multiplicity (Ntot=Nhyd+Npyt)
Definition: Hydjet2.h:86
Int_t & GetNtot() &
Getter (lvalue) for output information: generated value of total event multiplicity (Ntot=Nhyd+Npyt)
Definition: Hydjet2.h:53
std::vector< Int_t > & GetVersion() &
Getter (lvalue) for output information: version information.
Definition: Hydjet2.h:65
Int_t GetNhyd() &&
Getter (rvalue) for output information: generated multiplicity of "soft" hydro-induced particles.
Definition: Hydjet2.h:88
Int_t & GetNhyd() &
Getter (lvalue) for output information: generated multiplicity of "soft" hydro-induced particles.
Definition: Hydjet2.h:55
Int_t & GetNpart() &
Getter (lvalue) for output information: mean number of nucleons-participants at given "Bgen".
Definition: Hydjet2.h:58
std::vector< Int_t > & GetIndex() &
Getter (lvalue) for output information: particle index in the secondaries tree.
Definition: Hydjet2.h:46
Int_t GetNbcol() &&
Getter (rvalue) for output information: mean number of binary NN sub-collisions at given "Bgen".
Definition: Hydjet2.h:90
std::vector< Double_t > & GetPy() &
Getter (lvalue) for output information: y-hadron momentum component,[GeV/c].
Definition: Hydjet2.h:39
std::vector< Double_t > GetZ() &&
Getter (rvalue) for output information: z-hadron coordinate component,[fm].
Definition: Hydjet2.h:77
std::vector< Double_t > & GetPz() &
Getter (lvalue) for output information: z-hadron momentum component,[GeV/c].
Definition: Hydjet2.h:40
std::vector< Double_t > GetPy() &&
Getter (rvalue) for output information: y-hadron momentum component,[GeV/c].
Definition: Hydjet2.h:72
Double_t & GetBgen() &
Getter (lvalue) for output information: generated value of impact parameter in units of nucleus radiu...
Definition: Hydjet2.h:59
Structure of input parameters.
Definition: InitialParams.h:4